package com.trade.service.enterprise.customer.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.trade.common.annotation.I18nField;
import com.trade.common.core.domain.BaseI18nEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 企业信息表实体类
 *
 * @author hlb
 * @since 2024-05-29 15:07:42
 */
public class Enterprise extends BaseI18nEntity<Enterprise> {

    /**
     * 客户id
     */
    private Long customerId;
    /**
     * 客户编号
     */
    private String customerIdentifierNo;
    /**
     * 企业类型，枚举：enterprise_type
     */
    private String enterpriseType;
    /**
     * 注册国家/地区，枚举：country_code
     */
    private String countryCode;
    /**
     * 企业名称
     */
    @I18nField
    private String name;
    /**
     * 统一社会信用编码
     */
    private String certNo;
    /**
     * 注册号，HK企业必填
     */
    private String registrationNumber;
    /**
     * 海关企业代码
     */
    private String customsEnterpriseCode;
    /**
     * 纳税人识别号
     */
    private String taxNo;
    /**
     * 小图企业uuid
     */
    private String xtEid;
    /**
     * 成立时间
     */
    private Date establishDate;
    /**
     * 注册资本
     */
    private BigDecimal registerCapital;
    /**
     * 注册地址
     */
    @I18nField
    private String registerAddress;
    /**
     * 注册地址是否实际经营地址，枚举：sys_yes_no
     */
    private String sameRegisterAndBusinessAddress;
    /**
     * 经营地址
     */
    @I18nField
    private String businessAddress;
    /**
     * 企业所处认证状态
     */
    private String certificationStatus;
    /**
     * 出口类型，枚举：export_type
     */
    private String exportType;
    /**
     * 代理公司所属地区，枚举类型district_code
     */
    private String proxyDistrictCode;
    /**
     * 匹配业务产品，枚举：business_product
     */
    private String businessProduct;
    /**
     * 企业变更记录id
     */
    private Long changeRecordId;
    /**
     * 备注信息
     */
    private String remark;
    /**
     * 主管税务机关，枚举：tax_authority_area
     */
    private String taxAuthorityArea;
    /**
     * 退税服务协议签署状态，枚举：sys_sign_status
     */
    private String taxRebateAgreementSignStatus;
    /**
     * 退税服务协议签署日期
     */
    private Date taxRebateAgreementSignDate;
    /**
     * 退税服务协议生效时间（含）
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date taxRebateEffectiveStart;
    /**
     * 退税服务协议失效时间（含）
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date taxRebateEffectiveEnd;

    public Long getCustomerId() {
        return customerId;
    }

    public void setCustomerId(Long customerId) {
        this.customerId = customerId;
    }

    public String getCustomerIdentifierNo() {
        return customerIdentifierNo;
    }

    public void setCustomerIdentifierNo(String customerIdentifierNo) {
        this.customerIdentifierNo = customerIdentifierNo;
    }

    public String getEnterpriseType() {
        return enterpriseType;
    }

    public void setEnterpriseType(String enterpriseType) {
        this.enterpriseType = enterpriseType;
    }

    public String getCountryCode() {
        return countryCode;
    }

    public void setCountryCode(String countryCode) {
        this.countryCode = countryCode;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCertNo() {
        return certNo;
    }

    public void setCertNo(String certNo) {
        this.certNo = certNo;
    }

    public String getRegistrationNumber() {
        return registrationNumber;
    }

    public void setRegistrationNumber(String registrationNumber) {
        this.registrationNumber = registrationNumber;
    }

    public String getCustomsEnterpriseCode() {
        return customsEnterpriseCode;
    }

    public void setCustomsEnterpriseCode(String customsEnterpriseCode) {
        this.customsEnterpriseCode = customsEnterpriseCode;
    }

    public String getTaxNo() {
        return taxNo;
    }

    public void setTaxNo(String taxNo) {
        this.taxNo = taxNo;
    }

    public String getXtEid() {
        return xtEid;
    }

    public void setXtEid(String xtEid) {
        this.xtEid = xtEid;
    }

    public Date getEstablishDate() {
        return establishDate;
    }

    public void setEstablishDate(Date establishDate) {
        this.establishDate = establishDate;
    }

    public BigDecimal getRegisterCapital() {
        return registerCapital;
    }

    public void setRegisterCapital(BigDecimal registerCapital) {
        this.registerCapital = registerCapital;
    }

    public String getRegisterAddress() {
        return registerAddress;
    }

    public void setRegisterAddress(String registerAddress) {
        this.registerAddress = registerAddress;
    }

    public String getSameRegisterAndBusinessAddress() {
        return sameRegisterAndBusinessAddress;
    }

    public void setSameRegisterAndBusinessAddress(String sameRegisterAndBusinessAddress) {
        this.sameRegisterAndBusinessAddress = sameRegisterAndBusinessAddress;
    }

    public String getBusinessAddress() {
        return businessAddress;
    }

    public void setBusinessAddress(String businessAddress) {
        this.businessAddress = businessAddress;
    }

    public String getCertificationStatus() {
        return certificationStatus;
    }

    public void setCertificationStatus(String certificationStatus) {
        this.certificationStatus = certificationStatus;
    }

    public String getExportType() {
        return exportType;
    }

    public void setExportType(String exportType) {
        this.exportType = exportType;
    }

    public String getProxyDistrictCode() {
        return proxyDistrictCode;
    }

    public void setProxyDistrictCode(String proxyDistrictCode) {
        this.proxyDistrictCode = proxyDistrictCode;
    }

    public String getBusinessProduct() {
        return businessProduct;
    }

    public void setBusinessProduct(String businessProduct) {
        this.businessProduct = businessProduct;
    }

    public Long getChangeRecordId() {
        return changeRecordId;
    }

    public void setChangeRecordId(Long changeRecordId) {
        this.changeRecordId = changeRecordId;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getTaxAuthorityArea() {
        return taxAuthorityArea;
    }

    public void setTaxAuthorityArea(String taxAuthorityArea) {
        this.taxAuthorityArea = taxAuthorityArea;
    }

    public String getTaxRebateAgreementSignStatus() {
        return taxRebateAgreementSignStatus;
    }

    public void setTaxRebateAgreementSignStatus(String taxRebateAgreementSignStatus) {
        this.taxRebateAgreementSignStatus = taxRebateAgreementSignStatus;
    }

    public Date getTaxRebateAgreementSignDate() {
        return taxRebateAgreementSignDate;
    }

    public void setTaxRebateAgreementSignDate(Date taxRebateAgreementSignDate) {
        this.taxRebateAgreementSignDate = taxRebateAgreementSignDate;
    }

    public Date getTaxRebateEffectiveStart() {
        return taxRebateEffectiveStart;
    }

    public void setTaxRebateEffectiveStart(Date taxRebateEffectiveStart) {
        this.taxRebateEffectiveStart = taxRebateEffectiveStart;
    }

    public Date getTaxRebateEffectiveEnd() {
        return taxRebateEffectiveEnd;
    }

    public void setTaxRebateEffectiveEnd(Date taxRebateEffectiveEnd) {
        this.taxRebateEffectiveEnd = taxRebateEffectiveEnd;
    }
}
