package com.chinaweal.aiccs.aiccs.expelled.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.chinaweal.youfool.framework.springboot.json.LocalDateTimeStringSerializer;
import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDate;

/**
 * @Description: 市场主体除名申请业务表实体类
 * @Author: TiAmo-cc
 * @Email: 1049976610@qq.com
 * @Date: 2026/1/8 10:15
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(value = "EXPELLED_APPLY_INFO")
@ApiModel(value = "ExpelledApplyInfo对象", description = "市场主体除名申请业务表")
public class ExpelledApplyInfo extends SuperEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID（UUID）
     */
    @ApiModelProperty(value = "主键ID")
    @TableId(value = "ID", type = IdType.ASSIGN_UUID)
    private String id;

    /**
     * 市场主体拟除名名单决定业务表主键ID（UUID）
     */
    @ApiModelProperty(value = "市场主体拟除名名单决定业务表主键ID")
    @TableField(value = "AUDIT_ID")
    private String auditId;

    /**
     * 市场主体拟除名名单结果表主键ID（UUID）
     */
    @ApiModelProperty(value = "市场主体拟除名名单结果表主键ID")
    @TableField(value = "RESULT_ID")
    private String resultId;

    /**
     * 待办表主键ID（UUID）
     */
    @ApiModelProperty(value = "待办表主键ID")
    @TableField(value = "BIZ_ID")
    private String bizId;

    /**
     * 受理状态：0-不受理，1-受理
     */
    @ApiModelProperty(value = "受理状态：0-不受理，1-受理")
    @TableField(value = "ACCEPT_STATUS")
    private String acceptStatus;

    /**
     * 当前环节：1-受理中，2-审核中，3-审批中，4-通过，5-不通过
     */
    @ApiModelProperty(value = "当前环节：1-受理中，2-审核中，3-审批中，4-通过，5-不通过")
    @TableField(value = "LINK_TYPE")
    private String linkType;

    /**
     * 申请时间
     */
    @ApiModelProperty(value = "申请时间")
    @TableField(value = "APPLY_DATE")
    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    private LocalDate applyDate;

    /**
     * 除名原因
     */
    @ApiModelProperty(value = "除名原因")
    @TableField(value = "REMOVE_REASON")
    private String removeReason;

    /**
     * 除名时间
     */
    @ApiModelProperty(value = "除名时间")
    @TableField(value = "REMOVE_DATE")
    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    private LocalDate removeDate;

    /**
     * 除名机关编码
     */
    @ApiModelProperty(value = "除名机关编码")
    @TableField(value = "REMOVE_ORG_NO")
    private String removeOrgNo;

    /**
     * 除名机关名称
     */
    @ApiModelProperty(value = "除名机关名称")
    @TableField(value = "REMOVE_ORG_NAME")
    private String removeOrgName;

    /**
     * 企业名称
     */
    @ApiModelProperty(value = "企业名称")
    @TableField(value = "ENT_NAME")
    private String entName;

    /**
     * 统一社会信用代码
     */
    @ApiModelProperty(value = "统一社会信用代码")
    @TableField(value = "USCC")
    private String uscc;

    /**
     * 法定代表人（负责人、经营者）
     */
    @ApiModelProperty(value = "法定代表人（负责人、经营者）")
    @TableField(value = "LEREP_NAME")
    private String lerepName;

    /**
     * 住所（经营场所）
     */
    @ApiModelProperty(value = "住所（经营场所）")
    @TableField(value = "ADDRESS")
    private String address;

    /**
     * 联系人
     */
    @ApiModelProperty(value = "联系人")
    @TableField(value = "CONTACT_NAME")
    private String contactName;

    /**
     * 联系电话
     */
    @ApiModelProperty(value = "联系电话")
    @TableField(value = "CONTACT_PHONE")
    private String contactPhone;

    /**
     * 核实情况
     */
    @ApiModelProperty(value = "核实情况")
    @TableField(value = "SITUATION")
    private String situation;

    /**
     * 核准日期
     */
    @ApiModelProperty(value = "核准日期")
    @TableField(value = "APPROVE_DATE")
    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    private LocalDate approveDate;

    /**
     * 申请原因
     */
    @ApiModelProperty(value = "申请原因")
    @TableField(value = "APPLY_REASON")
    private String applyReason;

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

    /**
     * 状态：10-有效，11-修复中，12-复议中，13-撤销中，61-修复不通过，62-复议不通过，63-撤销不通过，91-修复完成，92-复议通过被动撤销完成，93-主动撤销完成
     */
    @ApiModelProperty(value = "状态：10-有效，11-修复中，12-复议中，13-撤销中，61-修复不通过，62-复议不通过，63-撤销不通过，91-修复完成，92-复议通过被动撤销完成，93-主动撤销完成")
    @TableField(value = "STATE")
    private String state;
}
