package com.usky.vpp.service.vo;

import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 合同 响应VO
 * @author fyc
 * @email yuchuan.fu@chinausky.com
 * @date 2026/7/4
 */
@Data
public class VppContractResponseVO {

    private Long id;

    /**
     * 合同编号（手动输入）
     */
    private String contractNo;

    /**
     * 客户ID
     */
    private Long customerId;

    /**
     * 客户名称（关联查询）
     */
    private String customerName;

    /**
     * 模板ID
     */
    private Long templateId;

    /**
     * 模板名称（关联查询）
     */
    private String templateName;

    /**
     * 关联合同ID
     */
    private Long relatedContractId;

    /**
     * 关联合同编号
     */
    private String relatedContractNo;

    /**
     * 关联合同名称
     */
    private String relatedContractName;

    /**
     * 合同类型
     */
    private Integer contractType;

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

    /**
     * 甲方
     */
    private String partyA;

    /**
     * 乙方
     */
    private String partyB;

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

    /**
     * 合同状态（0草稿 1审核中 2待生效 3已生效 4已驳回 5已到期 6已终止）
     */
    private Integer contractStatus;

    /**
     * 签约日期
     */
    private LocalDate signDate;

    /**
     * 生效日期
     */
    private LocalDate effectiveDate;

    /**
     * 到期日期
     */
    private LocalDate expireDate;

    /**
     * 合同文件URL
     */
    private String fileUrl;

    /**
     * 客户比例
     */
    private BigDecimal customerRatio;

    /**
     * 运营商比例
     */
    private BigDecimal operatorRatio;

    /**
     * 价格定义(JSON)
     */
    private String priceJson;

    /**
     * 账户信息(JSON)
     */
    private String accountInfoJson;

    /**
     * 备注
     */
    private String remark;

    /**
     * 租户ID
     */
    private Integer tenantId;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 创建人
     */
    private String createdBy;

    /**
     * 更新人
     */
    private String updatedBy;
}
