package com.hotwj.platform.resourceManagement.company.domain;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.mybatis.core.domain.BaseEntity;

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

/**
 * 企业基本信息对象 sys_company
 *
 * @author shihongwei
 * @date 2025-12-02
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sys_company")
public class SysCompany extends BaseEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     *
     */
    @TableId(value = "id")
    private Long id;

    /**
     * 上级代理商id
     */
    private Long agentId;

    /**
     * 代理商业务员id
     */
    private Long salesmanId;

    /**
     * 企业名称
     */
    private String companyName;

    /**
     * 企业简称
     */
    private String companyShortName;

    /**
     * 企业类型（下拉选项值或字典编码）
     */
    private String companyType;

    /**
     * 所属行业（下拉选项值或字典编码）
     */
    private String industry;

    /**
     * 法人姓名
     */
    private String legalPersonName;

    /**
     * 法人身份证号
     */
    private String legalPersonIdNo;

    /**
     * 法人手机号
     */
    private String legalPersonPhone;

    /**
     * 负责人姓名
     */
    private String responsibleName;

    /**
     * 负责人手机号
     */
    private String responsibleMobile;

    /**
     * 注册地址
     */
    private String registeredAddress;

    /**
     * 办公地址
     */
    private String officeAddress;

    /**
     * 办公电话
     */
    private String officePhone;

    /**
     * 电子公章文件URL（或OSS地址）
     */
    private String sealUrl;

    /**
     * 行政区划代码
     */
    private String regionCode;

    /**
     * 其他附件（逗号分隔）
     */
    private String otherAttachments;

    /**
     * 统一社会信用代码
     */
    private String creditCode;

    /**
     * 成立日期
     */
    private LocalDate establishDate;


    /**
     * 注册资本（万元）
     */
    private BigDecimal registeredCapital;

    /**
     * 经营期限
     */
    @TableField(updateStrategy = FieldStrategy.ALWAYS)
    private LocalDate businessTerm;

    /**
     * 是否长期经营
     */
    @TableField(updateStrategy = FieldStrategy.ALWAYS)
    private Boolean businessLongTerm;

    /**
     * 经营范围
     */
    private String businessScope;

    /**
     * 营业执照图片URL（或OSS地址）
     */
    private String businessLicenseImage;

    /**
     * 道路经营许可证号
     */
    private String roadPermitNumber;

    /**
     * 道路经营许可证过期日期
     */
    private LocalDate roadExpireDate;

    /**
     * 道路许可证经营范围
     */
    private String roadBusinessScope;

    /**
     * 道路经营许可证文件URL（或OSS地址） 多个
     */
    private String roadPermitFiles;

    /**
     * 状态：1=正常 0=禁用
     */
    private Long status;

    /**
     * 省行政区划代码
     */
    private String provinceCode;

    /**
     * 市行政区划代码
     */
    private String cityCode;

    /**
     * 区县行政区划代码
     */
    private String districtCode;

    /**
     * 驾驶员邀请码
     */
    private String driverInvitationCode;

    /**
     * 驾驶员邀请码过期时间
     */
    private java.time.LocalDateTime driverInvitationCodeExpireTime;

    /**
     * 驾驶员邀请码二维码URL
     */
    private String driverInvitationQrCodeUrl;

    /**
     * 0=正常, 1=已删除
     */
    @TableLogic(value = "0", delval = "1")
    private Long isDeleted;
}
