import { PageParams } from "../base/BaseDataModel";
import { DestinationAddressParam, FeeBasicDataDto, PartitionList, PartitionSpecialParametersList, WeightVolume } from "../customerfee/CustomerFeeSetModel";
import { FeeItemComputeDetails } from "../feecommon/feeItemComputeDetailsModel";
import { FeeItemCompute } from "../feecommon/feeItemComputeModel";

export interface ListByParentId {
    id: string,
    parentId: string
}
/**
 * 费用信息
 */
export interface SubmitCostFeeSetModel {
    /**
     * 费用 ID
     */
    id: string;
    /**
     * 费用名称
     */
    feeSetName: string;
    /**
     * 服务商编号
     */
    providerId: number;
    /**
     * 费项类型
     */
    feeItemCategory: number | string
    feeItemCategoryName: string;
    /**
     * 渠道产品
     */
    providerName: string;
    /**
     * 产品编号
     */
    productId: number;
    productName: string;
    /**
     * 生效起始时间
     */
    beginDate: Date | Recordable;
    /**
     * 生效结束时间
     */
    endDate: Date;
    /**
     * 备注
     */
    remark: string;
    /**
     * 费用基础信息
     */
    feeBasicData: FeeBasicDataDto;
    /**
     * 费用计算信息
     */
    feeItemComputeList: FeeItemCompute[];
    /**
     * 费用计算明细信息
     */
    feeItemComputeDetailsList: FeeItemComputeDetails[];
    /**
     * 分区设置
     */
    partitionList: PartitionList[];
    /**
     * 分区特殊参数信息
     */
    partitionSpecialParametersList: PartitionSpecialParametersList[];
    /**
     * 生效日期费用父 ID
     */
    parentId: string;
    /**
     * 是否发布
     */
    activeFlag: boolean;
    /**
     * 创建时间
     */
    createDate: Date;
    /**
     * 加载分区编号
     */
    loadPartitionId: string
}

// 成本费用设置查询参数
export interface CostFeeSetParams extends PageParams {
    feeSetName?: string;//费用名称
    providerId?: string;//服务商编号
    feeItemCategory?: string;//费项类型
    productId?: string;//产品名称
    currentEffective: boolean;//生效记录
}

// 激活参数
export interface ActiveParams {
    id: string
    activeFlag: boolean
}

// 成本费用拷贝参数
export interface CostFeeSetCopy {
    id: string//成本费用设置编号
    targetIds: string[]//目标费用编号
}

// 成本费用查询(SMP页面接口)
export interface CostFeeQueryParam {
    /** 产品编号 */
    productId: string[],
    /** 服务商编号 */
    providerId: string,
    /** 费项类型 */
    feeItemCategory: string,
    /** 包装类型 */
    packageType: string,
    /** 当前日期 */
    currentDate: Date,
    /** 目的地址信息 */
    destinationAddress: DestinationAddressParam,
    /** 费用特殊计费标志 */
    feeItemSpecialFlag?: number,
    /** 重量体积列表 */
    weightVolumeList: WeightVolume[],
    /** 报关货币代码 */
    compareCustomsCurrencyCode?: string,
    /** 报关费用 */
    customsFees?: number,
    /** 是否计抛 */
    lightFlag?: boolean,
    /** 计抛系数 */
    weightRatio?: number,
    /**品名数量 */
    productNumber: number,
    /**异形包装数量 */
    specialPackageNumber: number
    /**报关页数 */
    customsPageNumber: number
    /**费用查询类型 */
    feeQueryType?: number
    /**订单编号 */
    orderId?: string
}