<div class="form-wrapper" ...attributes>
    <ContentPanel @title={{t "service-rate.fields.details"}} @open={{true}} @wrapperClass="bordered-top">
        <div class="grid grid-cols-1 lg:grid-cols-2 gap-2">
            <InputGroup
                @name={{t "service-rate.fields.service-name"}}
                @value={{@resource.service_name}}
                @helpText={{t "service-rate.fields.service-name-help-text"}}
                @required={{true}}
                @placeholder={{t "service-rate.fields.service-name"}}
                @disabled={{cannot-write @resource}}
            />

            <InputGroup @name={{t "service-rate.fields.service-order-label"}} @helpText={{t "service-rate.fields.service-order-help-text"}} @required={{true}}>
                <div class="fleetbase-model-select fleetbase-power-select ember-model-select">
                    <PowerSelect
                        @options={{this.orderConfigActions.allOrderConfigs}}
                        @selected={{@resource.order_config}}
                        @onChange={{this.selectOrderConfig}}
                        @placeholder={{t "service-rate.fields.select-order-type"}}
                        @triggerClass="form-select form-input"
                        @disabled={{cannot-write @resource}}
                        as |orderConfig|
                    >
                        <div class="text-sm">
                            <div class="font-semibold normalize-in-trigger">{{orderConfig.name}}</div>
                            <div class="hide-from-trigger">{{n-a orderConfig.description}}</div>
                        </div>
                    </PowerSelect>
                </div>
            </InputGroup>

            <InputGroup @name={{t "service-rate.fields.base-fee-label"}} @helpText={{t "service-rate.fields.base-fee-help-text"}} @required={{true}}>
                <MoneyInput
                    class="w-full"
                    @value={{@resource.base_fee}}
                    @currency={{@resource.currency}}
                    @canSelectCurrency={{true}}
                    @onCurrencyChange={{fn (mut @resource.currency)}}
                    @disabled={{cannot-write @resource}}
                />
            </InputGroup>

            <InputGroup @name={{t "service-rate.fields.rate-calculation-label"}} @helpText={{t "service-rate.fields.rate-calculation-help-text"}} @required={{true}}>
                <div class="fleetbase-model-select fleetbase-power-select ember-model-select">
                    <PowerSelect
                        @options={{get-fleet-ops-options "serviceRateCalculationMethods"}}
                        @selected={{find-by "value" @resource.rate_calculation_method (get-fleet-ops-options "serviceRateCalculationMethods")}}
                        @onChange={{this.selectRateCalculationMethod}}
                        @placeholder={{t "service-rate.fields.rate-calculation-placeholder"}}
                        @triggerClass="form-select form-input"
                        @disabled={{cannot-write @resource}}
                        as |status|
                    >
                        <div class="text-sm">
                            <div class="font-semibold normalize-in-trigger">{{status.label}}</div>
                            <div class="hide-from-trigger">{{status.description}}</div>
                        </div>
                    </PowerSelect>
                </div>
            </InputGroup>
        </div>
    </ContentPanel>

    <ContentPanel @title={{t "service-rate.fields.terms"}} @open={{true}} @wrapperClass="bordered-top">
        <div class="space-y-2">
            {{#if @resource.isParcelService}}
                <InputGroup
                    @name={{t "service-rate.fields.estimated-days"}}
                    @type="number"
                    @value={{@resource.estimated_days}}
                    @helpText={{t "service-rate.fields.estimated-days-help-text"}}
                    @required={{true}}
                    @placeholder={{t "service-rate.fields.estimated-days"}}
                    @disabled={{cannot-write @resource}}
                />
            {{/if}}
            <InputGroup
                @name={{t "service-rate.fields.duration-terms-label"}}
                @type="text"
                @value={{@resource.duration_terms}}
                @placeholder={{t "service-rate.fields.duration-terms-placeholder"}}
                @disabled={{cannot-write @resource}}
                @helpText={{t "service-rate.fields.duration-terms-help-text"}}
                @wrapperClass="col-span-2"
            />
        </div>
    </ContentPanel>

    {{#if @resource.isFixedRate}}
        <ContentPanel @title={{t "service-rate.fields.fixed-meter"}} @open={{true}} @wrapperClass="bordered-top" @panelBodyWrapperClass="px-0i">
            <div class="px-2 mb-3">
                <InfoBlock class="mb-2" @text={{t "service-rate.fields.fixed-meter-text"}} @exampleText={{t "service-rate.fields.fixed-meter-example-text"}} />
                <div class="grid grid-cols-1 lg:grid-cols-2 gap-2">
                    <InputGroup
                        @name={{t "service-rate.fields.maximum-distance"}}
                        @type="number"
                        @value={{@resource.max_distance}}
                        @placeholder={{t "service-rate.fields.maximum-distance"}}
                        @disabled={{cannot-write @resource}}
                        @helpText={{t "service-rate.fields.maximum-distance-help-text"}}
                        @required={{true}}
                        min={{1}}
                        {{on "change" this.onMaxDistanceChange}}
                    />
                    <InputGroup @name="Max Distance Unit" @helpText="Select the maximum distance this service rate supports" @required={{true}}>
                        <div class="fleetbase-model-select fleetbase-power-select ember-model-select">
                            <PowerSelect
                                @options={{get-fleet-ops-options "longDistanceUnits"}}
                                @selected={{find-by "value" @resource.max_distance_unit (get-fleet-ops-options "longDistanceUnits")}}
                                @onChange={{set-model-attr @resource "max_distance_unit"}}
                                @placeholder="Max Distance Unit"
                                @triggerClass="form-select form-input"
                                @disabled={{cannot-write @resource}}
                                as |status|
                            >
                                <div class="text-sm">
                                    <div class="font-semibold normalize-in-trigger">{{status.label}}</div>
                                    <div class="hide-from-trigger">{{status.description}}</div>
                                </div>
                            </PowerSelect>
                        </div>
                    </InputGroup>
                </div>
            </div>

            <div class="table-scrolling-height overflow-y-scroll">
                <div class="next-table-wrapper h-auto table-fluid rounded-none">
                    <table class="table table-fixed">
                        <thead>
                            <tr>
                                <th>{{t "service-rate.fields.distance"}}</th>
                                <th>{{t "service-rate.fields.fee"}}</th>
                            </tr>
                        </thead>
                        <tbody>
                            {{#each @resource.rateFees as |rateFee|}}
                                <tr>
                                    <td>{{rateFee.distance}}-{{add rateFee.distance 1}}
                                        {{@resource.max_distance_unit}}
                                    </td>
                                    <td>
                                        <MoneyInput class="w-full" @currency={{@resource.currency}} @value={{rateFee.fee}} disabled={{cannot-write @resource}} />
                                    </td>
                                </tr>
                            {{/each}}
                        </tbody>
                    </table>
                </div>
            </div>
        </ContentPanel>
    {{else if @resource.isPerDrop}}
        <ContentPanel @title={{t "service-rate.fields.per-drop-off-title"}} @open={{true}} @wrapperClass="bordered-top" @panelBodyWrapperClass="px-0i">
            <div class="px-2 mb-3">
                <InfoBlock class="mb-3" @text={{t "service-rate.fields.per-drop-off-text"}} @exampleText={{t "service-rate.fields.per-drop-off-example-text"}} />

                <div>
                    <Button
                        @text={{t "service-rate.fields.add-drop-off-button"}}
                        @icon="plus"
                        @iconPrefix="fas"
                        @permission={{this.abilityPermission}}
                        @onClick={{@resource.addPerDropRateFee}}
                    />
                </div>
            </div>

            <div class="table-scrolling-height overflow-y-scroll">
                <div class="next-table-wrapper h-auto table-fluid rounded-none">
                    <table class="table table-fixed">
                        <thead>
                            <tr>
                                <th class="w-1/5">{{t "service-rate.fields.min-drop"}}</th>
                                <th class="w-1/5">{{t "service-rate.fields.max-drop"}}</th>
                                <th class="w-2/5">{{t "service-rate.fields.fee"}}</th>
                                <th class="w-1/5"></th>
                            </tr>
                        </thead>
                        <tbody>
                            {{#each @resource.rateFees as |rateFee|}}
                                <tr>
                                    <td>
                                        <Input
                                            @type="number"
                                            @value={{rateFee.min}}
                                            placeholder={{t "service-rate.fields.min"}}
                                            disabled={{cannot-write @resource}}
                                            class="form-input w-full"
                                        />
                                    </td>
                                    <td>
                                        <Input
                                            @type="number"
                                            @value={{rateFee.max}}
                                            placeholder={{t "service-rate.fields.max"}}
                                            disabled={{cannot-write @resource}}
                                            class="form-input w-full"
                                        />
                                    </td>
                                    <td>
                                        <MoneyInput class="w-full" @currency={{@resource.currency}} @value={{rateFee.fee}} disabled={{cannot-write @resource}} />
                                    </td>
                                    <td>
                                        <Button @type="danger" @icon="trash" @onClick={{fn @resource.removePerDropFee rateFee}} />
                                    </td>
                                </tr>
                            {{/each}}
                        </tbody>
                    </table>
                </div>
            </div>
        </ContentPanel>
    {{else if @resource.isMultiZoneDistance}}
        <ContentPanel @title="Multi-zone Distance" @open={{true}} @wrapperClass="bordered-top" @panelBodyWrapperClass="px-0i">
            <div class="px-2 mb-3">
                <InfoBlock
                    class="mb-3"
                    @text="Price route distance across multiple service areas or zones. Priority controls overlap: if a route segment matches more than one rule, the highest-priority rule is used. Unmatched distance can use a fallback rule."
                    @exampleText="Main City: 2.50 per km, Remote Area: 3.75 per km, Fallback: 3.75 per km."
                />

                <div class="flex flex-row items-center space-x-2">
                    <Button @text="Add Rule" @icon="plus" @iconPrefix="fas" @onClick={{@resource.addMultiZoneDistanceRule}} />
                    <Button @text="Add Fallback" @icon="route" @iconPrefix="fas" @onClick={{@resource.addMultiZoneDistanceFallbackRule}} />
                </div>
            </div>

            <div class="overflow-x-auto">
                <div class="next-table-wrapper h-auto table-fluid rounded-none">
                    <table class="table table-fixed">
                        <thead>
                            <tr>
                                <th class="w-1/6">Label</th>
                                <th class="w-1/6">Geography Type</th>
                                <th class="w-1/5">Geography</th>
                                <th class="w-1/12">Priority</th>
                                <th class="w-1/6">Rate</th>
                                <th class="w-1/6">Unit</th>
                                <th class="w-12"></th>
                            </tr>
                        </thead>
                        <tbody>
                            {{#each @resource.rateFees as |rateFee|}}
                                <tr>
                                    <td>
                                        <Input @value={{rateFee.label}} placeholder="Rule label" disabled={{cannot-write @resource}} class="form-input w-full" />
                                    </td>
                                    <td>
                                        <div class="fleetbase-model-select fleetbase-power-select ember-model-select">
                                            <PowerSelect
                                                @options={{this.geographyTypes}}
                                                @selected={{find-by "value" rateFee.geography_type this.geographyTypes}}
                                                @onChange={{fn this.selectRuleGeographyType rateFee}}
                                                @placeholder="Geography type"
                                                @triggerClass="form-select form-input"
                                                @disabled={{cannot-write @resource}}
                                                as |type|
                                            >
                                                {{type.label}}
                                            </PowerSelect>
                                        </div>
                                    </td>
                                    <td>
                                        {{#if (eq rateFee.geography_type "zone")}}
                                            <div class="fleetbase-model-select fleetbase-power-select ember-model-select">
                                                <PowerSelect
                                                    @options={{this.zones}}
                                                    @selected={{rateFee.zone}}
                                                    @onChange={{fn this.selectRuleZone rateFee}}
                                                    @placeholder="Select zone"
                                                    @triggerClass="form-select form-input"
                                                    @disabled={{cannot-write @resource}}
                                                    as |zone|
                                                >
                                                    {{zone.name}}
                                                </PowerSelect>
                                            </div>
                                        {{else if (eq rateFee.geography_type "fallback")}}
                                            <div class="text-sm text-gray-500 dark:text-gray-400">Unmatched route distance</div>
                                        {{else}}
                                            <div class="fleetbase-model-select fleetbase-power-select ember-model-select">
                                                <PowerSelect
                                                    @options={{this.serviceAreas}}
                                                    @selected={{rateFee.service_area}}
                                                    @onChange={{fn this.selectRuleServiceArea rateFee}}
                                                    @placeholder="Select service area"
                                                    @triggerClass="form-select form-input"
                                                    @disabled={{cannot-write @resource}}
                                                    as |serviceArea|
                                                >
                                                    {{serviceArea.name}}
                                                </PowerSelect>
                                            </div>
                                        {{/if}}
                                    </td>
                                    <td>
                                        <Input @type="number" @value={{rateFee.priority}} placeholder="0" disabled={{cannot-write @resource}} class="form-input w-full" />
                                    </td>
                                    <td>
                                        <MoneyInput class="w-full" @currency={{@resource.currency}} @value={{rateFee.fee}} disabled={{cannot-write @resource}} />
                                    </td>
                                    <td>
                                        <div class="fleetbase-model-select fleetbase-power-select ember-model-select">
                                            <PowerSelect
                                                @options={{get-fleet-ops-options "distanceUnits"}}
                                                @selected={{find-by "value" rateFee.distance_unit (get-fleet-ops-options "distanceUnits")}}
                                                @onChange={{set-model-attr rateFee "distance_unit"}}
                                                @placeholder="Distance unit"
                                                @triggerClass="form-select form-input"
                                                @disabled={{cannot-write @resource}}
                                                as |unit|
                                            >
                                                {{unit.label}}
                                            </PowerSelect>
                                        </div>
                                    </td>
                                    <td>
                                        <Button @type="danger" @icon="trash" @onClick={{fn @resource.removeMultiZoneDistanceRule rateFee}} />
                                    </td>
                                </tr>
                            {{else}}
                                <tr>
                                    <td colspan="7" class="text-center text-gray-500 italic">No geographic pricing rules defined</td>
                                </tr>
                            {{/each}}
                        </tbody>
                    </table>
                </div>
            </div>
        </ContentPanel>
    {{else if @resource.isPerMeter}}
        <ContentPanel @title={{t "service-rate.fields.per-meter"}} @open={{true}} @wrapperClass="bordered-top">
            <InfoBlock class="mb-5" @text={{t "service-rate.fields.per-meter-text"}} @exampleText={{t "service-rate.fields.per-meter-example-text"}} />

            <div class="grid grid-cols-2 gap-2">
                <InputGroup @name={{t "service-rate.fields.per-meter-rate-fee"}} @helpText={{t "service-rate.fields.per-meter-rate-fee-help-text"}} @required={{true}}>
                    <MoneyInput class="w-full" @currency={{@resource.currency}} @value={{@resource.per_meter_flat_rate_fee}} disabled={{cannot-write @resource}} />
                </InputGroup>

                <InputGroup @name={{t "service-rate.fields.distance-unit"}} @helpText={{t "service-rate.fields.distance-unit-help-text"}} @required={{true}}>
                    <div class="fleetbase-model-select fleetbase-power-select ember-model-select">
                        <PowerSelect
                            @options={{get-fleet-ops-options "distanceUnits"}}
                            @selected={{find-by "value" @resource.per_meter_unit (get-fleet-ops-options "distanceUnits")}}
                            @onChange={{set-model-attr @resource "per_meter_unit"}}
                            @placeholder={{t "service-rate.fields.distance-unit-placeholder"}}
                            @triggerClass="form-select form-input"
                            @disabled={{cannot-write @resource}}
                            as |status|
                        >
                            <div class="text-sm">
                                <div class="font-semibold normalize-in-trigger">{{status.label}}</div>
                                <div class="hide-from-trigger">{{status.description}}</div>
                            </div>
                        </PowerSelect>
                    </div>
                </InputGroup>

                <div class="col-span-2">
                    <InputInfo>
                        <code class="dark:text-gray-100">(
                            {{@resource.per_meter_flat_rate_fee}}
                            * {distance}
                            {{@resource.per_meter_unit}}
                            ) +
                            {{or @resource.base_fee (format-currency 0 @resource.currency)}}</code>
                    </InputInfo>
                </div>
            </div>
        </ContentPanel>
    {{else if @resource.isAlgorithm}}
        <ContentPanel @title={{t "service-rate.fields.custom-algorithm-title"}} @open={{true}} @wrapperClass="bordered-top">
            <InfoBlock class="mb-5">
                Define a custom formula for this service rate using variables wrapped in a single pair of curly braces.

                <div class="block my-4 break-text">
                    <ul class="list-disc space-y-2 pl-16">
                        <li class="leading-5"><code>&#123;distance&#125;</code>, <code>&#123;distance_m&#125;</code>, <code>&#123;distance_km&#125;</code>, <code>&#123;distance_mi&#125;</code>: route distance in meters, kilometers, or miles.</li>
                        <li class="leading-5"><code>&#123;time&#125;</code>, <code>&#123;time_s&#125;</code>, <code>&#123;time_min&#125;</code>: route time in seconds or minutes.</li>
                        <li class="leading-5"><code>&#123;stops&#125;</code>: total service stops including pickup, dropoff, and intermediate waypoints.</li>
                        <li class="leading-5"><code>&#123;waypoints&#125;</code>: intermediate waypoint count only.</li>
                        <li class="leading-5"><code>&#123;parcels&#125;</code>, <code>&#123;entities&#125;</code>: parcel count and total payload entity count.</li>
                        <li class="leading-5"><code>&#123;weight&#125;</code>, <code>&#123;weight_kg&#125;</code>, <code>&#123;weight_g&#125;</code>, <code>&#123;weight_lb&#125;</code>, <code>&#123;weight_oz&#125;</code>, <code>&#123;weight_tonne&#125;</code>, <code>&#123;weight_t&#125;</code>: total entity weight converted across supported units.</li>
                        <li class="leading-5"><code>&#123;base_fee&#125;</code>: the configured base fee for this service rate.</li>
                        <li class="leading-5">Supported functions: <code>max(a,b)</code>, <code>min(a,b)</code>, <code>ceil(x)</code>, <code>floor(x)</code>, <code>round(x)</code>.</li>
                    </ul>
                </div>

                <div class="space-y-3">
                    <div>
                        <h4 class="mb-1 text-sm font-semibold">{{t "service-rate.fields.example"}} 1</h4>
                        <div class="mb-2 text-inherit">Charge by distance in miles after the first 15 miles, plus the base fee.</div>
                        <code class="text-xs font-mono">max(&#123;distance_mi&#125; - 15, 0) * 5 + &#123;base_fee&#125;</code>
                    </div>

                    <div>
                        <h4 class="mb-1 text-sm font-semibold">{{t "service-rate.fields.example"}} 2</h4>
                        <div class="mb-2 text-inherit">Charge extra for stops after the first 2 service stops.</div>
                        <code class="text-xs font-mono">max(&#123;stops&#125; - 2, 0) * 10 + &#123;base_fee&#125;</code>
                    </div>

                    <div>
                        <h4 class="mb-1 text-sm font-semibold">{{t "service-rate.fields.example"}} 3</h4>
                        <div class="mb-2 text-inherit">Combine waypoint, payload weight, and distance surcharges in one formula.</div>
                        <code class="text-xs font-mono">max(&#123;waypoints&#125;, 0) * 15 + max(&#123;weight_kg&#125; - 100, 0) * 0.25 + max(&#123;distance_km&#125; - 25, 0) * 0.5 + &#123;base_fee&#125;</code>
                    </div>
                </div>
            </InfoBlock>

            <InputGroup @name={{t "service-rate.fields.algorithm-label"}} @helpText={{t "service-rate.fields.algorithm-help-text"}} @required={{true}}>
                <Textarea
                    @value={{@resource.algorithm}}
                    placeholder={{t "service-rate.fields.algorithm-placeholder"}}
                    disabled={{cannot-write @resource}}
                    class="form-input w-full"
                    rows="4"
                />
            </InputGroup>
        </ContentPanel>
    {{else if @resource.isParcelService}}
        <ContentPanel @title={{t "service-rate.fields.percel-fee-title"}} @open={{true}} @wrapperClass="bordered-top">
            <div class="space-y-2">
                {{#each @resource.parcelFees as |parcelFee|}}
                    <div class="dark:text-gray-100">
                        <div class="grid grid-cols-7">
                            <div class="flex flex-col items-start justify-start pt-3">
                                <img src="/engines-dist/images/boxes/{{parcelFee.size}}.png" alt="parcel size {{parcelFee.size}}" width="44" class="w-11" />
                                <label class="mt-2">{{humanize parcelFee.size}}</label>
                            </div>
                            <div class="col-span-6 dimensions-box space-x-2">
                                <div class="grid grid-cols-4 gap-2 px-2">
                                    <InputGroup
                                        @name={{t "service-rate.fields.length-label"}}
                                        @type="tel"
                                        @value={{parcelFee.length}}
                                        @inputClass="form-input-sm"
                                        disabled={{cannot-write @resource}}
                                        placeholder={{t "service-rate.fields.length-placeholder" htmlSafe=true parcelFeeDimension=@parcelFee.dimension_unit}}
                                    />

                                    <InputGroup
                                        @name={{t "service-rate.fields.width-label"}}
                                        @type="tel"
                                        @value={{parcelFee.width}}
                                        @inputClass="form-input-sm"
                                        disabled={{cannot-write @resource}}
                                        placeholder={{t "service-rate.fields.width-placeholder" htmlSafe=true parcelFeeDimension=@parcelFee.dimension_unit}}
                                    />

                                    <InputGroup
                                        @name={{t "service-rate.fields.height-label"}}
                                        @type="tel"
                                        @value={{parcelFee.height}}
                                        @inputClass="form-input-sm"
                                        disabled={{cannot-write @resource}}
                                        placeholder={{t "service-rate.fields.height-placeholder" htmlSafe=true parcelFeeDimension=@parcelFee.dimension_unit}}
                                    />

                                    <InputGroup
                                        @name={{t "service-rate.fields.weight-label"}}
                                        @type="tel"
                                        @value={{parcelFee.weight}}
                                        @inputClass="form-input-sm"
                                        disabled={{cannot-write @resource}}
                                        placeholder={{t "service-rate.fields.weight-label" htmlSafe=true parcelFeeWeight=@parcelFee.weight_unit}}
                                    />

                                    <InputGroup @name={{t "service-rate.fields.deminsions-unit"}}>
                                        <div class="fleetbase-model-select fleetbase-power-select ember-model-select">
                                            <PowerSelect
                                                @options={{get-fleet-ops-options "dimensionUnits"}}
                                                @selected={{find-by "value" parcelFee.dimensions_unit (get-fleet-ops-options "dimensionUnits")}}
                                                @onChange={{set-model-attr parcelFee "dimensions_unit"}}
                                                @placeholder={{t "service-rate.fields.select-unit-placeholder"}}
                                                @triggerClass="form-select form-input form-input-sm"
                                                @disabled={{cannot-write @resource}}
                                                as |status|
                                            >
                                                <div class="text-sm">
                                                    <div class="font-semibold normalize-in-trigger">{{status.label}}</div>
                                                    <div class="hide-from-trigger">{{status.description}}</div>
                                                </div>
                                            </PowerSelect>
                                        </div>
                                    </InputGroup>

                                    <InputGroup @name={{t "service-rate.fields.weight-unit"}}>
                                        <div class="fleetbase-model-select fleetbase-power-select ember-model-select">
                                            <PowerSelect
                                                @options={{get-fleet-ops-options "weightUnits"}}
                                                @selected={{find-by "value" parcelFee.weight_unit (get-fleet-ops-options "weightUnits")}}
                                                @onChange={{set-model-attr parcelFee "weight_unit"}}
                                                @placeholder={{t "service-rate.fields.select-unit-placeholder"}}
                                                @triggerClass="form-select form-input form-input-sm"
                                                @disabled={{cannot-write @resource}}
                                                as |status|
                                            >
                                                <div class="text-sm">
                                                    <div class="font-semibold normalize-in-trigger">{{status.label}}</div>
                                                    <div class="hide-from-trigger">{{status.description}}</div>
                                                </div>
                                            </PowerSelect>
                                        </div>
                                    </InputGroup>

                                    <InputGroup @name={{t "service-rate.fields.additional-fee"}} @wrapperClass="col-span-2">
                                        <MoneyInput class="w-full form-input-sm" @currency={{@resource.currency}} @value={{parcelFee.fee}} disabled={{cannot-write @resource}} />
                                    </InputGroup>
                                </div>
                            </div>
                        </div>
                    </div>
                {{/each}}
            </div>
        </ContentPanel>
    {{/if}}

    <ContentPanel @title={{t "service-rate.fields.cash-delivery-title"}} @open={{true}} @wrapperClass="bordered-top">
        <Toggle
            @wrapperClass="justify-start-i"
            @label={{t "service-rate.fields.cash-delivery-label"}}
            @isToggled={{@resource.has_cod_fee}}
            @onToggle={{fn (mut @resource.has_cod_fee)}}
            @disabled={{cannot-write @resource}}
        />

        {{#if @resource.has_cod_fee}}
            <div class="grid grid-cols-1 lg:grid-cols-2 gap-2 mt-2">
                <InputGroup @name={{t "service-rate.fields.calculation-method-label"}} @helpText={{t "service-rate.fields.calculation-method-help-text"}} @required={{true}}>
                    <div class="fleetbase-model-select fleetbase-power-select ember-model-select">
                        <PowerSelect
                            @options={{get-fleet-ops-options "serviceRateCodCalculationMethods"}}
                            @selected={{find-by "value" @resource.cod_calculation_method (get-fleet-ops-options "serviceRateCodCalculationMethods")}}
                            @onChange={{set-model-attr @resource "cod_calculation_method"}}
                            @placeholder={{t "service-rate.fields.calculation-method-placeholder"}}
                            @triggerClass="form-select form-input"
                            @disabled={{cannot-write @resource}}
                            as |status|
                        >
                            <div class="text-sm">
                                <div class="font-semibold normalize-in-trigger">{{status.label}}</div>
                                <div class="hide-from-trigger">{{status.description}}</div>
                            </div>
                        </PowerSelect>
                    </div>
                </InputGroup>

                {{#if @resource.hasCodFlatFee}}
                    <InputGroup @name={{t "service-rate.fields.delivery-flat-fee"}} @helpText={{t "service-rate.fields.delivery-flat-fee-help-text"}} @required={{true}}>
                        <MoneyInput class="w-full" @currency={{@resource.currency}} @value={{@resource.cod_flat_fee}} disabled={{cannot-write @resource}} />
                    </InputGroup>
                {{else if @resource.hasCodPercentageFee}}
                    <InputGroup
                        @name={{t "service-rate.fields.fee-percentage"}}
                        @type="number"
                        @value={{@resource.cod_percent}}
                        @disabled={{cannot-write @resource}}
                        @placeholder={{t "service-rate.fields.percentage-placeholder"}}
                        @helpText={{t "service-rate.fields.fee-percentage-help-text"}}
                        @required={{true}}
                        min="0"
                        max="100"
                    />
                {{/if}}
            </div>
        {{/if}}
    </ContentPanel>

    <ContentPanel @title={{t "service-rate.fields.peak-hours-title"}} @open={{true}} @wrapperClass="bordered-top">
        <Toggle
            @wrapperClass="justify-start-i"
            @label={{t "service-rate.fields.peak-hours-label"}}
            @isToggled={{@resource.has_peak_hours_fee}}
            @onToggle={{fn (mut @resource.has_peak_hours_fee)}}
        />

        {{#if @resource.has_peak_hours_fee}}
            <div class="grid grid-cols-1 lg:grid-cols-2 gap-2 mt-2">
                <InputGroup
                    @name={{t "service-rate.fields.peak-hours-start-label"}}
                    @type="time"
                    @value={{@resource.peak_hours_start}}
                    @disabled={{cannot-write @resource}}
                    @helpText={{t "service-rate.fields.peak-hours-start-help-text"}}
                    @required={{true}}
                />

                <InputGroup
                    @name={{t "service-rate.fields.peak-hours-end-label"}}
                    @type="time"
                    @value={{@resource.peak_hours_end}}
                    @disabled={{cannot-write @resource}}
                    @helpText={{t "service-rate.fields.peak-hours-end-help-text"}}
                    @required={{true}}
                />

                <InputGroup @name={{t "service-rate.fields.peak-hours-fee-label"}} @helpText={{t "service-rate.fields.peak-hours-fee-help-text"}} @required={{true}}>
                    <div class="fleetbase-model-select fleetbase-power-select ember-model-select">
                        <PowerSelect
                            @options={{get-fleet-ops-options "serviceRatePeakHourCalculationMethods"}}
                            @selected={{find-by "value" @resource.peak_hours_calculation_method (get-fleet-ops-options "serviceRatePeakHourCalculationMethods")}}
                            @onChange={{set-model-attr @resource "peak_hours_calculation_method"}}
                            @placeholder={{t "service-rate.fields.peak-hours-fee-placeholder"}}
                            @triggerClass="form-select form-input"
                            @disabled={{cannot-write @resource}}
                            as |status|
                        >
                            <div class="text-sm">
                                <div class="font-semibold normalize-in-trigger">{{status.label}}</div>
                                <div class="hide-from-trigger">{{status.description}}</div>
                            </div>
                        </PowerSelect>
                    </div>
                </InputGroup>

                {{#if @resource.hasPeakHoursFlatFee}}
                    <InputGroup @name={{t "service-rate.fields.flat-fee-label"}} @helpText={{t "service-rate.fields.flat-fee-help-text"}} @required={{true}}>
                        <MoneyInput class="w-full" @currency={{@resource.currency}} @value={{@resource.peak_hours_flat_fee}} disabled={{cannot-write @resource}} />
                    </InputGroup>
                {{else if @resource.hasPeakHoursPercentageFee}}
                    <InputGroup
                        @name={{t "service-rate.fields.peak-hours-percentage-label"}}
                        @type="number"
                        @value={{@resource.peak_hours_percent}}
                        @placeholder={{t "service-rate.fields.percentage-placeholder"}}
                        @disabled={{cannot-write @resource}}
                        @helpText={{t "service-rate.fields.peak-hours-percentage-help-text"}}
                        @required={{true}}
                        min="0"
                        max="100"
                    />
                {{/if}}
            </div>
        {{/if}}
    </ContentPanel>

    <ContentPanel @title={{t "service-rate.fields.restrict-service-title"}} @open={{true}} @wrapperClass="bordered-top">
        <InputGroup @name={{t "service-rate.fields.service-area-label"}} @helpText={{t "service-rate.fields.service-area-help-text"}}>
            <ModelSelect
                @modelName="service-area"
                @selectedModel={{@resource.serviceArea}}
                @placeholder={{t "service-rate.fields.service-area-placeholder"}}
                @triggerClass="form-select form-input"
                @infiniteScroll={{false}}
                @renderInPlace={{true}}
                @onChange={{fn (mut @resource.serviceArea)}}
                @onChangeId={{fn (mut @resource.service_area_uuid)}}
                @disabled={{cannot-write @resource}}
                @allowClear={{true}}
                as |model|
            >
                {{model.name}}
            </ModelSelect>
        </InputGroup>

        {{#if @resource.serviceArea}}
            <InputGroup @name={{t "service-rate.fields.zone-label"}} @helpText={{t "service-rate.fields.zone-help-text"}} @wrapperClass="mt-2">
                <ModelSelect
                    @modelName="zone"
                    @selectedModel={{@resource.zone}}
                    @query={{hash service_area_uuid=@resource.serviceArea.id}}
                    @placeholder={{t "service-rate.fields.zone-placeholder"}}
                    @triggerClass="form-select form-input"
                    @infiniteScroll={{false}}
                    @renderInPlace={{true}}
                    @onChange={{fn (mut @resource.zone)}}
                    @onChangeId={{fn (mut @resource.zone_uuid)}}
                    @disabled={{cannot-write @resource}}
                    @allowClear={{true}}
                    as |model|
                >
                    {{model.name}}
                </ModelSelect>
            </InputGroup>
        {{/if}}
    </ContentPanel>
</div>
