package com.chinaweal.aiccs.aiccs.force.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;
import java.time.LocalDateTime;

/**
 * 拟强制注销/强制注销业务表
 *
 * @author zhouxy
 * @since 2025/9/26
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(value = "AICCS.xr_force_deregister_spe")
@ApiModel(value = "XrForceDeregisterSpe对象", description = "拟强制注销业务表")
public class XrForceDeregisterSpe extends SuperEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 业务表主键
     */
    @ApiModelProperty(value = "业务表主键")
    @TableId(value = "forcespeid", type = IdType.ASSIGN_UUID)
    private String forceSpeId;

    /**
     * 拟强制注销公告详细ID
     */
    @ApiModelProperty(value = "拟强制注销公告详细ID")
    @TableField(value = "forceresid")
    private String forceResId;

    /**
     * 拟强制注销公告ID
     */
    @ApiModelProperty(value = "拟强制注销公告ID")
    @TableField("forceid")
    private String forceId;

    /**
     * 主体身份代码
     */
    @ApiModelProperty(value = "主体身份代码")
    @TableField("pripid")
    private String pripId;

    /**
     * 企业（机构）名称
     */
    @ApiModelProperty(value = "企业（机构）名称")
    @TableField("entname")
    private String entName;

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

    /**
     * 注册号
     */
    @ApiModelProperty(value = "注册号")
    @TableField("regno")
    private String regno;

    /**
     * 登记机关
     */
    @ApiModelProperty(value = "登记机关")
    @TableField("reg_org")
    private String regOrg;

    /**
     * 登记机关（中文名称）
     */
    @ApiModelProperty(value = "登记机关（中文名称）")
    @TableField("reg_org_cn")
    private String regOrgCn;

    /**
     * 公告标题
     */
    @ApiModelProperty(value = "公告标题")
    @TableField("notice_title")
    private String noticeTitle;

    /**
     * 公告内容
     */
    @ApiModelProperty(value = "公告内容")
    @TableField("notice_content")
    private String noticeContent;

    /**
     * 业务状态 0待受理 1待审核 2待审批 3审批通过 4审批不通过 5已作废
     */
    @ApiModelProperty(value = "业务状态 0待受理 1待审核 2待审批 3审批通过 4审批不通过 5已作废")
    @TableField("status")
    private String status;

    /**
     * 业务号
     */
    @ApiModelProperty(value = "业务号")
    @TableField("biz_seq_no")
    private String bizSeqNo;

    /**
     * 作出决定机关
     */
    @ApiModelProperty(value = "作出决定机关")
    @TableField("judauth")
    private String judauth;

    /**
     * 作出决定机关（中文名称）
     */
    @ApiModelProperty(value = "作出决定机关（中文名称）")
    @TableField("judauth_cn")
    private String judauthCn;

    /**
     * 公告期自
     */
    @ApiModelProperty(value = "公告期自")
    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    @TableField("notice_from")
    private LocalDate noticeFrom;

    /**
     * 公告期至
     */
    @ApiModelProperty(value = "公告期至")
    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    @TableField("notice_to")
    private LocalDate noticeTo;

    /**
     * 拟强制注销登记法定事由（国标C13042）
     */
    @ApiModelProperty(value = "拟强制注销登记法定事由（国标C13042）")
    @TableField("forcerra")
    private String forceRra;

    /**
     * 强制注销事由日期
     */
    @ApiModelProperty(value = "强制注销事由日期")
    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    @TableField("forcerra_date")
    private LocalDate forceRraDate;

    /**
     * 拟强制注销登记意见
     */
    @ApiModelProperty(value = "拟强制注销登记意见")
    @TableField("forceregopi")
    private String forceRegopi;

    /**
     * 拟强制注销结果（国标C13044）
     */
    @ApiModelProperty(value = "拟强制注销结果（国标C13044）")
    @TableField("forceres")
    private String forceRes;

    /**
     * 拟强制注销结果日期
     */
    @ApiModelProperty(value = "拟强制注销结果日期")
    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    @TableField("forceres_date")
    private LocalDate forceResDate;

    /**
     * 业务发起时间
     */
    @ApiModelProperty(value = "业务发起时间")
    @JsonSerialize(using = LocalDateTimeStringSerializer.class)
    @TableField("apply_time")
    private LocalDateTime applyTime;

    /**
     * 强制注销类型  1:拟强制注销，0:强制注销
     */
    @ApiModelProperty(value = "强制注销类型  1:拟强制注销，0:强制注销")
    @TableField("force_type")
    private String forceType;

    /**
     * 拟强制注销登记法定事由中文
     */
    @ApiModelProperty(value = "拟强制注销登记法定事由中文")
    @TableField("forcerra_cn")
    private String forceRraCn;

    /**
     * 强制注销决定书内容
     */
    @ApiModelProperty(value = "强制注销决定书内容")
    @TableField("decision_content")
    private String decisionContent;

    /**
     * 强制注销决定送达公告内容
     */
    @ApiModelProperty(value = "强制注销决定送达公告内容")
    @TableField("force_notice_content")
    private String forceNoticeContent;

    /**
     * 受理机关
     */
    @ApiModelProperty(value = "受理机关")
    @TableField("accept_org")
    private String acceptOrg;

    /**
     * 公告期至剩余天数
     */
    @ApiModelProperty(value = "公告期至剩余天数")
    @TableField(exist = false)
    private Integer noticeToRemain;

}
