package com.yunzhupaas.cm.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.util.Date;
import java.util.List;
import com.alibaba.fastjson.annotation.JSONField;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
/**
 * 合同基本信息
 *
 * @版本： V5.2.7
 * @版权： Copyright @ 2025  深圳市乐程软件有限公司版权所有
 * @作者： 深圳市乐程软件有限公司
 * @日期： 2026-05-20
 */
@Data
@TableName("cm_contract")
public class ContractEntity  {
    @TableId(value ="contract_id"  )
    @JSONField(name = "contract_id")
    private String contractId;
    @TableField(value = "contract_code" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "contract_code")
    private String contractCode;
    @TableField(value = "contract_name" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "contract_name")
    private String contractName;
    @TableField(value = "contract_type" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "contract_type")
    private String contractType;
    @TableField(value = "contract_temp_id" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "contract_temp_id")
    private String contractTempId;
    @TableField(value = "org_id" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "org_id")
    private String orgId;
    @TableField(value = "project_id" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "project_id")
    private String projectId;
    @TableField(value = "contract_category" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "contract_category")
    private String contractCategory;
    @TableField(value = "effective_date" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "effective_date")
    private Date effectiveDate;
    @TableField(value = "expiry_date" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "expiry_date")
    private Date expiryDate;
    @TableField(value = "contract_date" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "contract_date")
    private Date contractDate;
    @TableField(value = "contract_money" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "contract_money")
    private BigDecimal contractMoney;
    @TableField(value = "final_contract_amount" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "final_contract_amount")
    private BigDecimal finalContractAmount;
    @TableField(value = "tax_amount" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "tax_amount")
    private BigDecimal taxAmount;
    @TableField(value = "excluding_tax_amount" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "excluding_tax_amount")
    private BigDecimal excludingTaxAmount;
    @TableField(value = "final_amount_upper" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "final_amount_upper")
    private String finalAmountUpper;
    @TableField(value = "our_company_id" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "our_company_id")
    private String ourCompanyId;
    @TableField(value = "our_company_type" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "our_company_type")
    private String ourCompanyType;
    @TableField(value = "second_party_id" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "second_party_id")
    private String secondPartyId;
    @TableField(value = "second_party_type" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "second_party_type")
    private String secondPartyType;
    @TableField(value = "third_party_id" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "third_party_id")
    private String thirdPartyId;
    @TableField(value = "third_party_type" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "third_party_type")
    private String thirdPartyType;
    @TableField(value = "print_temp_id" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "print_temp_id")
    private String printTempId;
    @TableField(value = "is_sub_contract" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "is_sub_contract")
    private String isSubContract;
    @TableField(value = "ref_contract_id" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "ref_contract_id")
    private String refContractId;
    @TableField(value = "major_person_id" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "major_person_id")
    private String majorPersonId;
    @TableField(value = "contract_files" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "contract_files")
    private String contractFiles;
    @TableField(value = "remark" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "remark")
    private String remark;
    @TableField("create_by")
    @JSONField(name = "create_by")
    private String createBy;
    @TableField("create_time")
    @JSONField(name = "create_time")
    private Date createTime;
    @TableField("update_by")
    @JSONField(name = "update_by")
    private String updateBy;
    @TableField("update_time")
    @JSONField(name = "update_time")
    private Date updateTime;
    @TableField(value = "f_tenant_id",fill = FieldFill.INSERT_UPDATE)
    @JSONField(name = "f_tenant_id")
    private String tenantId;
    @TableField("f_flow_id")
    @JSONField(name = "f_flow_id")
    private String flowId;
    @TableField("f_flow_task_id")
    @JSONField(name = "f_flow_task_id")
    private String flowTaskId;
    @TableField(value = "our_company_name" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "our_company_name")
    private String ourCompanyName;
    @TableField(value = "second_party_name" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "second_party_name")
    private String secondPartyName;
    @TableField(value = "third_party_name" , updateStrategy = FieldStrategy.IGNORED)
    @JSONField(name = "third_party_name")
    private String thirdPartyName;

    @JSONField(name = "productSubject")
    @TableField(exist = false)
    private List<ProductSubjectEntity> productSubject;
    @JSONField(name = "worktypeSubject")
    @TableField(exist = false)
    private List<WorktypeSubjectEntity> worktypeSubject;
    @JSONField(name = "assetSubject")
    @TableField(exist = false)
    private List<AssetSubjectEntity> assetSubject;
    @JSONField(name = "materialSubject")
    @TableField(exist = false)
    private List<MaterialSubjectEntity> materialSubject;
    @JSONField(name = "taskSubject")
    @TableField(exist = false)
    private List<TaskSubjectEntity> taskSubject;
    @JSONField(name = "paymentPlan")
    @TableField(exist = false)
    private List<PaymentPlanEntity> paymentPlan;
}
