import { PageParams } from "@/api/base/BaseDataModel";

/**
 * 应付账单查询参数
 */
export interface FinancialBillSummaryParam extends PageParams {
    /**
     * 编号
     */
    id: number;

    /**
     * 账单编号
     */
    billCode: string;

    /**
     * 账单名称
     */
    billName: string;

    /**
     * 渠道商
     */
    providerId: number;

    /**
     * 状态 0: 新增 1:对账 2: 分摊 3:关账
     */
    billState: number;

    /**
     * 账单时间类型
     */
    billDateType: number;

    /**
     * 起始时间
     */
    beginDate: any;

    /**
     * 结束时间
     */
    endDate: string;
}

export type PartialFinancialBillSummaryParam = Partial<FinancialBillSummaryParam>

/**
 * 财务账单返回数据
 */
export interface FinancialBillSummaryDto {
    /**
     * 编号
     */
    id: number;

    /**
     * 账单编号
     */
    billCode: string;

    /**
     * 主体
     */
    stakeholder: number;

    /**
     * 主体名称
     */
    stakeholderName: string;

    /**
     * 费项类型
     */
    feeItemCategoryId: number;

    /**
     * 费项类型名称
     */
    feeItemCategoryName: string;

    /**
     * 账单名称
     */
    billName: string;

    /**
     * 渠道商
     */
    providerId: number;

    /**
     * 渠道商名称
     */
    providerName: string;

    /**
     * 上传文件
     */
    uploadFile: File;

    /**
     * 原始文件
     */
    originalFile: string;

    /**
     * 账单时间
     */
    billTime: Date | string;

    /**
     * 归账时间
     */
    belongTime: Date | string;

    /**
     * 状态 0: 新增 1:对账 2: 分摊 3:关账
     */
    billState: number;

    /**
     * 备注
     */
    remark: string;

    /**
     * 上传文件名称
     *
     * @mbg.generated
     */
    uploadFileName: string;

    /**
     * 原始文件名称
     *
     * @mbg.generated
     */
    originalFileName: string;

    /**
     * 核账状态名称
     */
    verifyStateName: string;
}

export type PartialFinancialBillSummaryDto = Partial<FinancialBillSummaryDto>

/**
 * 上传返回的数据
 */
export interface uploadFileResult {
    fileName: string
    filePath: string
}

/**
 * 账单关账参数
 */
export interface UpdateStateParams {
    /**
     * Id
     */
    id: number
    /**
     * 状态 0: 新增 1:对账 2: 分摊 3:关账
     */
    billState: number
}

/**
 * 账单分摊参数
 */
export interface BillShareParam { 
    /**
     * 汇率版本号
     *
     * @mbg.generated
     */
    rateVersionId: number;

    /**
     * 账单编号
     */
    billSummaryId: number;
}

/**
 * 财务账单分摊明细查询参数
 */
export interface FinancialBillDetailShareParam extends PageParams {
    /**
     * 主单编号
     *
     * @mbg.generated
     */
    summaryId?: number;

    /**
     * 账单编号
     *
     * @mbg.generated
     */
    billCode?: string;


    /**
     * 单号类型
     */
    billCodeType?: number;

    /**
     *  单号
     */
    code?: string;

    /**
     * 费项类型
     *
     * @mbg.generated
     */
    feeItemCategory?: number;

    /**
     * 渠道商
     *
     * @mbg.generated
     */
    providerId?: number;
    /**
     * 运单号(提单号)
     *
     * @mbg.generated
     */
    waybillNumber?: string;

    /**
     * 内部单号
     *
     * @mbg.generated
     */
    orderId?: string;

    /**
     * 尾程单号
     *
     * @mbg.generated
     */
    trackingId?: string;
}

/**
 * 分摊明细返回数据
 */
export interface FinancialBillDetailShareDto {
    /**
     * 编号
     *
     * @mbg.generated
     */
    id?: number;

    /**
     * 主单编号
     *
     * @mbg.generated
     */
    summaryId?: number;

    /**
     * 应付账单明细编号
     *
     * @mbg.generated
     */
    financialBillDetailId?: string;

    /**
     * 运单号(提单号)
     *
     * @mbg.generated
     */
    waybillNumber?: string;

    /**
     * 订单号
     *
     * @mbg.generated
     */
    orderId?: string;

    /**
     * 尾程单号
     *
     * @mbg.generated
     */
    trackingId?: string;

    /**
     * 渠道商
     *
     * @mbg.generated
     */
    providerName?: string;

    /**
     * 渠道商
     *
     * @mbg.generated
     */
    providerId?: number;

    /**
     * 费项类型
     *
     * @mbg.generated
     */
    feeItemCategory?: number;

    /**
     * 费项类型名称
     *
     * @mbg.generated
     */
    feeItemCategoryName?: string;

    /**
     * 费用
     *
     * @mbg.generated
     */
    fee?: number;

    /**
     * 重量
     *
     * @mbg.generated
     */
    weight?: number;

    /**
     * 件数
     *
     * @mbg.generated
     */
    orderPieces?: number;

    /**
     * 体积
     *
     * @mbg.generated
     */
    volume?: number;

    /**
     * 分摊方式
     *
     * @mbg.generated
     */
    shareType?: number;

    /**
     * 分摊方式名称
     */
    shareTypeName?: string;

    /**
     * 归账时间
     *
     * @mbg.generated
     */
    belongTime?: string;

    /**
     * 创建人编号
     *
     * @mbg.generated
     */
    createUserId?: number;

    /**
     * 创建人名
     *
     * @mbg.generated
     */
    createUserName?: string;

    /**
     * 创建时间
     *
     * @mbg.generated
     */
    createTime?: string;

    /**
     * 账单编号
     *
     * @mbg.generated
     */
    billCode?: string;

    /**
     * 账单名称
     *
     * @mbg.generated
     */
    billName?: string;

}