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/29
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(value = "xr_force_deregister_rem")
@ApiModel(value = "XrForceDeregisterRem对象", description = "终止强制注销业务表")
public class XrForceDeregisterRem extends SuperEntity implements Serializable {

    private static final long serialVersionUID = 1L;

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

    /**
     * 拟强制注销公告详细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;

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

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

    /**
     * 终止拟强制注销理由（国标C13043）
     */
    @ApiModelProperty(value = "终止拟强制注销理由（国标C13043）")
    @TableField("end_forcerra")
    private String endForceRra;

    /**
     * 拟强制注销结果（国标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;

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

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

    /**
     * 是否受理异议，异议是否成立，1受理 0不受理
     */
    @ApiModelProperty(value = "是否受理异议，异议是否成立，1受理 0不受理")
    @TableField("is_accept")
    private String isAccept;

    /**
     * 回退理由
     */
    @ApiModelProperty(value = "回退理由")
    @TableField("back_proposal")
    private String backProposal;

    /**
     * 终止拟强制注销理由中文
     */
    @ApiModelProperty(value = "终止拟强制注销理由中文")
    @TableField("end_forcerra_cn")
    private String endForceRraCn;

    /**
     * 终止拟强制注销类型，1：提出异议的；2：启动注销程序或已注销
     */
    @ApiModelProperty(value = "终止拟强制注销类型，1：提出异议的；2：启动注销程序或已注销")
    @TableField("rem_type")
    private String remType;

    /**
     * 业务类型  1:终止拟强制注销，0:恢复登记申请
     */
    @ApiModelProperty(value = "业务类型  1:终止拟强制注销，0:恢复登记申请")
    @TableField("force_rem_type")
    private String forceRemType;

    /**
     * 予以恢复/不予恢复决定书内容
     */
    @ApiModelProperty(value = "予以恢复/不予恢复决定书内容")
    @TableField("decision_content")
    private String decisionContent;

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

}
