import { CountModelDto, PageParams } from "../base/BaseDataModel";

// 费用模版-应收查询参数
export interface ReceivableParams extends PageParams {
    /**
     *  模板编号
     */
    id?: string;
    /**
     *  模板编号
     */
    idList?: string[];
    /**
     * 模板名称
     */
    modelName?: string;
    /**
     * 费项编号
     */
    feeItemCategoryId?: number;
    /**
     * 费用编号
     */
    feeItemId?: number;
    /**
     * 产品编号
     */
    productId?: number;
    /**
   * 起始时间
   */
    beginDate?: string;
    /**
     * 起始时间
     */
    endDate?: string;
}

/**
 * 产品搜索费用名称参数
 */
export interface CustomerFeeProductIdParams {
    productId: string | number
    feeSetType: 0 | 1
    parentData: boolean
}

/**
 * 新增应收费用模板
 */
export interface ReceivableModelDto {
    // 使用 @MongoID 能更清晰的指定 _id 主键
    id?: string;
    // 模板名称
    modelName: string;
    // 临时费用
    tempFeeItemModelList: TempFeeItemModelDto[];
    // 稳定费用
    stableFeeItemModelList: StableFeeItemModelDto[];
    // 是否启用
    activeFlag: boolean;
    // 备注
    remark: string;
}
/**
 * 临时费用模型
 */
export interface TempFeeItemModelDto {
    /**
     * 费项编号
     */
    feeItemCategoryId: number;
    /**
     * 费用编号
     */
    feeItemId: number;
    /**
     * 产品编号
     */
    productId: string;
    /**
     * 产品名称
     */
    productName: string;
    /**
     * 费用特殊计费标志 FeeItemSpecialFlag
     */
    feeItemSpecialFlag: number;
    /**
     * 费用计算模式
     */
    countModel: CountModelDto;
    /**
     * 计算优先级（数值越低，级别越高）
     */
    countOrderNumber: number;
    /**
     * 参数
     */
    parameter: number;
    /**
     * 客户价
     */
    offerPrice: number;
    /**
     * 结算价
     */
    organizationOfferPrice: number;
    /**
     * 货币符号
     */
    currencyCode: string;
}
/**
 * 稳定费用模型
 */
export interface StableFeeItemModelDto {
    /**
     * 费用类型(客户价和结算价)
     */
    feeSetType: 0 | 1;
    /**
     * 费用设置编号
     */
    feeSetId: string;
    /**
     * 费用设置名称
     */
    feeSetName: string;
    /**
     * 产品编号
     */
    productId: string;
    /**
     * 产品名称
     */
    productName: string;
    /**
     * 费用设置父版本编号
     */
    feeSetParentId: string;
    /**
     * 计抛系数
     */
    weightRatio?: string;
    /**
     * 费项编号
     */
    feeItemCategoryId: number
}

/**
 * 根据产品查询的费用的模型
 */
export interface CustomerFeeProductObject {
    id: string;
    productId: string;
    productName: string;
    feeSetName: string;
    feeSetType: number;
    beginDate: string;
    endDate: string;
    parentId: string;
}