package com.pusong.business.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pusong.business.domain.PsContractInfo;
import com.pusong.common.translation.annotation.Translation;
import com.pusong.common.translation.constant.TransConstant;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


/**
 * 任务查询时使用的合同信息dto
 *
 * @author wls
 * @date 2024-07-29
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = PsContractInfo.class)
public class TaskContractVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;


    /**
     * 合同编码
     */
    private String contractCode;

    /**
     * 合同名称
     */
    private String contractName;

    /**
     * 客户id
     */
    private Long customId;

    /**
     * 公司id
     */
    private Long companyId;

    /**
     * 合同主体
     */
    private String contractMain;
    /**
     * 合同主体
     */
    @Translation(type = TransConstant.DICT_TYPE_TO_LABEL,other = "contract_main",mapper="contractMain")
    private String contractMainName;

    /**
     * 合同总金额
     */
    private BigDecimal contractAmount;

    /**
     * 合同状态
     */
    private String contractStatus;
    /**
     * 合同状态名
     */
    @Translation(type = TransConstant.DICT_TYPE_TO_LABEL,other = "contract_status",mapper="contractStatus")
    private String contractStatusName;

    /**
     * 签约日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date applyDate;
    /**
     * 服务周期开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date startServiceDate;
    /**
     * 服务周期结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endServiceDate;
    /**
     * 办理期限
     */
    private Long timeLimit;

    /**
     * 客户是否到达现场
     */
    private String customScene;

    /**
     * 是否代账
     */
    private String isProxy;
    /**
     * 所属客户经理
     */
    private Long customManager;
    /**
     * 所属客户经理姓名
     */
    @Translation(type = TransConstant.USER_ID_TO_NICKNAME,mapper = "customManager")
    private String customManagerName;
    /**
     * 签约备注
     */
    private String signDesc;
    /**
     * 付款方式描述
     */
    private String payModeDesc;
    /**
     * 文件系统ossId
     */
    private Long pdfId;
    /**
     * 已付金额
     */
    private BigDecimal payMoney;
    /**
     * 退款金额
     */
    private BigDecimal returnMoney;

    /**
     * 未付金额
     */
    private BigDecimal residualMoney;
    /**
     * 回款周期（天）
     */
    private Integer period;
    /**
     * 服务类别名（多个是用逗号分隔）
     */
    @Translation(type = TransConstant.DICT_TYPE_TO_LABEL,other = "contract_type")
    private String businessTypeName;
    /**
     * 合同回传状态0未回传1已回传
     */
    private String rollBackStatus;
    /**
     * 回传的合同文件ossid
     */
    private Long rollBackPdf;

    /**
     * 合同签章状态CommonStatusEnum
     */
    private String signStatus;
    /**
     * 是否老账新接
     */
    private String isOld;

    /**
     * 是否续费
     */
    private String isDue;

    /**
     * 签约个人时联系人姓名
     */
    private String contactPersonName;
}
