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

// 客户总账查询参数
export interface UserMoneySumParam extends PageParams {
    customerId?: number//客户编号
    currencyCode?: string//币种
    isInterceptCustomers?: boolean//是否拦截
    status?: number//状态 0 未还清，1 已还清
}

// 费用明细查询参数
export interface UserMoneyDetailParam extends PageParams {
    orderIdList?: string[]//单号
    customerId?: number | string//客户编号
    customerName?: string//客户名称
    currencyCode?: string//币种
    operatingType?: number//操作类型
    customerType?: number//费用类型
    productId?: string//产品编号
    orgId?: string//分公司编号
    orgName?: string//分公司名称
    countryCode?: string//国家/地区编号
    transactionNumber?: string//交易号
    validData?: boolean//有效数据
    subjectType?: number//主体类型
    reportQueryDateType?: number//查询日期类型 1 充值时间 0 创建时间
    feeAmount?: number//费用
    dateArr?: any//起始时间与结束时间
    beginDate?: string//起始时间
    endDate?: string//结束时间
    billDate?: string//账单时间
    reportModelType?: number//报表类型
    salesmanId?: number//业务员编号
    accountPeriod?: number//账期类型
    paymentType?: number;//支付类型
    /**
     * 消费记录 0 否 1: 是
     */
    consumeFlag?: 0 | 1; 
}

// 费用费项明细查询参数
export interface DetailListFeeItemParam {
    moneyId?: string//费用编号
    feeType?: number//费用类型
    /**
     * 最新费用重新标志
     */
    recountByLastFee?: boolean;
    // moneyIdList?: string[]//费用编号
    // validData?: boolean//有效数据
}

// 费用明细
export interface UserMoneyDetailDto {
    customerId: number//客户编号	
    currencyCode: string//币种	
    operatingType: number//操作类型	
    feeAmount: number//费用金额	
    feeType: number//数据类型	
    customerType: number//费用类型	
    orderId: string//订单编号	
    orderPieces: number//件数	
    productId: string//产品编号	
    transactionNumber: string//交易号	
    orgId: string//分公司编号	
    weight: number//实际重量	
    countFeeWeight: number//计费重量	
    volumeWeight: number//体积重量	
    countryCode: string//国家/地区编号	
    countryName: string//国家/地区名称	
    partitionName: string//分区名称	
    zipCode: string//邮编	
    address: string//地址	
    packageType: number//包裹类型	
    feeVersionNumber: string//费用版本号	
    feeSetId: string//费用设置编号	
    formulaDescription: string//计费公式	
    moneyId: string//费用编号	
    bankAccount: string//银行账号	
    remark: string
    salesmanId: number//业务员编号	
    createUserId: number//创建人编号	
    createUserName: string//创建人名称
}

export interface UserMoneyDetailRow extends UserMoneyDetailDto {
    id: number//
    types: number//操作类型
}

// 费用费项明细
export interface UserMoneyFeeItemDetailDtoList {
    feeItemId: number//费项编号	
    feeItemName: string//费项名称	
    fee: number//费用金额	
    exchangeRate: number//汇率	
    originalFee: number//原始费用
    originalCurrencyCode: string//原币种	
    feeType: number//数据类型	
    moneyId: string//费用编号	
    groupFlag: string//分组编号
}

// 平账参数
export interface BalanceParams {
    id: number//与订单编号二选一
    orderId: string//与编号二选一
    customerType: number//费用类型
    userMoneyDetailDto?: Partial<UserMoneyDetailDto>//费用明细
    userMoneyFeeItemDetailDtoList?: Partial<UserMoneyFeeItemDetailDtoList>//费用费项明细
}

// 充值参数
export interface RechargeParams {
    customerId: number | undefined //客户编号	
    currencyCode: string//币种	
    feeAmount: number//金额	
    customerType: number//费用类型	
    orgId: string//分公司编号	
    bankAccount?: string//银行账号	
    transactionNumber?: string//交易号	
    remark?: string//备注
    paymentType?: number;//支付类型
    /**
     * 收货时间
     * @mbg.generated
     * @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     */
    receiveTime?: string;
}

// 退款
export interface ReturnMoneyParam {
    /**
     * 客户编号
     *
     * @mbg.generated
     */
    customerId: number;

    /**
     * 币种
     *
     * @mbg.generated
     */
    currencyCode: string;

    /**
     * 费用
     *
     * @mbg.generated
     */
    feeAmount: number | undefined;
    /**
     * 备注
     */
    remark: string
}

// 汇兑参数
export interface ExchangeParams {
    customerId?: number//客户编号
    currencyCode?: string//原币种
    feeAmount?: number//金额
    targetCurrencyCode?: string//目标币种
    exchangeRate?: number//汇率
    orgId?: string//分公司
    remark?: string//备注
}

// 查询已打单末交货金额参数
export interface CustomerNetPrintFeeParam {
    /**
     * 客户编号
     *
     * @mbg.generated
     */
    customerIdList: number[]
}