package com.nbport.zgwl.partner.domain;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 客户/相对方信息表 实体
 * 对应数据库表 ILDM_FEE_CUSTOMER_INFO
 */
@TableName(value = "ILDM_FEE_CUSTOMER_INFO")
@Data
@EqualsAndHashCode(callSuper = false)
@KeySequence(value = "SEQ_ILDM_FEE_CUSTOMER_INFO", dbType = DbType.ORACLE)
public class IldmFeeCustomerInfo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /** 客户系统ID（主键） */
    @TableId(value = "CUSTOMER_SYSID", type = IdType.INPUT)
    private Long customerSysid;

    /** 客户注册号 */
    @TableField("CUSTOMER_REGNO")
    private String customerRegno;

    /** 客户编号 */
    @TableField("CUSTOMER_NO")
    private String customerNo;

    /** 公司全称 */
    @TableField("CUSTOMER_NAME_C")
    private String customerNameC;

    /** 公司英文名称 */
    @TableField("CUSTOMER_NAME_EN")
    private String customerNameEn;

    /** 公司简称 */
    @TableField("CUSTOMER_SHORT_NAME")
    private String customerShortName;

    /** 公司英文简称 */
    @TableField("CUSTOMER_SHORT_NAME_EN")
    private String customerShortNameEn;

    /** 统一社会信用代码 */
    @TableField("CUSTOMER_TAXNO")
    private String customerTaxno;

    /** 详细地址 */
    @TableField("CUSTOMER_ADDRESS")
    private String customerAddress;

    /** 联系电话 */
    @TableField("OFFICEPHONE")
    private String officephone;

    /** 开户银行 */
    @TableField("CUSTOMER_BANK")
    private String customerBank;

    /** 银行账户 */
    @TableField("CUSTOMER_BANKACCOUNT")
    private String customerBankaccount;

    /** 客户性质 */
    @TableField("CUSTOMER_CHARACTER")
    private String customerCharacter;

    /** 注册地址 */
    @TableField("CUSTOMER_REGADDR")
    private String customerRegaddr;

    /** 注册日期 */
    @TableField("CUSTOMER_REGDATE")
    private LocalDate customerRegdate;

    /** 客户性质分类 */
    @TableField("CUSTOMER_NATURE")
    private String customerNature;

    /** 邮编 */
    @TableField("CUSTOMER_ZIP")
    private String customerZip;

    /** 客户类型标识1 */
    @TableField("CUSTOMER_1_TYPEFLAG")
    private String customer1Typeflag;

    /** 客户类型标识2 */
    @TableField("CUSTOMER_2_TYPEFLAG")
    private String customer2Typeflag;

    /** 客户类型标识3 */
    @TableField("CUSTOMER_3_TYPEFLAG")
    private String customer3Typeflag;

    /** 客户类型标识4 */
    @TableField("CUSTOMER_4_TYPEFLAG")
    private String customer4Typeflag;

    /** 境内外 */
    @TableField("PLACE_TYPE")
    private String placeType;

    /** 启用标识 */
    @TableField("ACTIVEFLAG")
    private String activeflag;

    /** 海铁系统客户ID */
    @TableField("CUSTOMER_SYSID_HT")
    private String customerSysidHt;

    /** 下载日期 */
    @TableField("DOWN_DATE")
    private LocalDate downDate;

    /** 开户标识 */
    @TableField("OPEN_FLAG")
    private String openFlag;

    /** 创建人 */
    @TableField("CREATE_BY")
    private String createBy;

    /** 创建时间 */
    @TableField("CREATE_TIME")
    private LocalDateTime createTime;

    /** 更新人 */
    @TableField("UPDATE_BY")
    private String updateBy;

    /** 更新时间 */
    @TableField("UPDATE_TIME")
    private LocalDateTime updateTime;

    /** 业务系统类型（ht:海铁联运系统;xg:箱管系统;qc:全程物流） */
    @TableField("SYSTEM_TYPE")
    private String systemType;

    /** 备注 */
    @TableField("REMARK")
    private String remark;

    /** 组织体系对应的公司编码 */
    @TableField("ORG_ID")
    private Long orgId;

    /** 邮箱地址 */
    @TableField("EMAIL_ADDRESS")
    private String emailAddress;

    /** 法务系统相对方ID（唯一标识） */
    @TableField("OPPOSITE_ID")
    private String oppositeId;

    /** 相对方性质分类（1:境内组织,2:境内个人,3:境外组织,4:境外个人） */
    @TableField("OPPOSITE_CHARACTER")
    private String oppositeCharacter;

    /** 是否涉港澳台标识（Y:是,N:否，法务业务分类用） */
    @TableField("GAT_FLAG")
    private String gatFlag;

    /** 是否集团内（Y:是,N:否，法务业务分类用） */
    @TableField("GROUP_FLAG")
    private String groupFlag;

    /** 国家编码 */
    @TableField("COUNTRY")
    private String country;

    /** 国家名称 */
    @TableField("COUNTRY_NAME")
    private String countryName;

    /** 城市 */
    @TableField("CITY")
    private String city;

    /** 邮编 */
    @TableField("POSTCODE")
    private String postcode;

    /** 法定代表人或负责人ID */
    @TableField("LEGAL_PERSON_ID")
    private String legalPersonId;

    /** 法定代表人或负责人姓名 */
    @TableField("LEGAL_PERSON_NAME")
    private String legalPersonName;

    /** 法定代表人或负责人账户 */
    @TableField("LEGAL_PERSON_ACCOUNT")
    private String legalPersonAccount;

    /** 法定代表人身份证号（加密存储） */
    @TableField("LEGAL_PERSON_CARD_ID")
    private String legalPersonCardId;

    /** 网站地址 */
    @TableField("WEBSITE")
    private String website;

    /** 自然人证件类型（idCard:身份证,passport:护照,other:其他） */
    @TableField("CERTIFICATE_TYPE")
    private String certificateType;

    /** 自然人证件号码（加密存储） */
    @TableField("CERTIFICATE_NUM")
    private String certificateNum;

    /** TIN码（税务识别号） */
    @TableField("TIN_CODE")
    private String tinCode;

    /** 境外公司活动证明编码 */
    @TableField("ABROAD_CODE")
    private String abroadCode;

    /** 注册资金（单位：元） */
    @TableField("REGISTERED_CAPITAL")
    private BigDecimal registeredCapital;

    /** 注册资本（文本描述，如：1000万人民币） */
    @TableField("REG_CAPITAL")
    private String regCapital;

    /** 经营范围 */
    @TableField("BUS_SCOPE")
    private String busScope;

    /** 相对方编码（业务分类编码） */
    @TableField("OPPOSITE_CODE")
    private String oppositeCode;

    /** 状态（EFFECTUAL:有效,INVALID:无效） */
    @TableField("OPPOSITE_STATUS")
    private String oppositeStatus;

    /** 是否SGAT（1:是,0:否） */
    @TableField("IS_SGAT")
    private String isSgat;

    /** 是否JTN（1:是,0:否） */
    @TableField("IS_JTN")
    private String isJtn;

    /** 组织性质（ZY:政府,QY:企业,QT:其他组织） */
    @TableField("NATURE_OF_ENTERPRISE_ORG")
    private String natureOfEnterpriseOrg;

    /** 组织性质子级（GNQY:国有企业,MYQY:民营企业,WZQY:外资企业等） */
    @TableField("NATURE_OF_ENTERPRISE_ORG_LEV")
    private String natureOfEnterpriseOrgLev;

    /** 类型（client:客户,supplier:供应商,Partner:合作伙伴等） */
    @TableField("RELATIVE_TYPE")
    private String relativeType;

    /** 法务系统删除标记（Y:是,N:否，逻辑删除） */
    @TableField("IS_DELETED")
    private String isDeleted;

    /** 备注【法务】 */
    @TableField("COMMENTS")
    private String comments;

    /** 同步状态：unsynced/synced/failed */
    @TableField("SYNC_STATUS")
    private String syncStatus;

    /** 最后同步时间 */
    @TableField("SYNC_TIME")
    private LocalDateTime syncTime;

    /** 同步说明 */
    @TableField("SYNC_MESSAGE")
    private String syncMessage;
}
