package com.chinaweal.aiccs.aiccs.seriousillegal.entity.dto;

import com.chinaweal.aiccs.common.util.DateUtils;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDate;

/**
 * 个案办理 - 外单位严重违法列入请求DTO
 * @author lroyia
 * @since 2026/3/9
 **/
@Data
@ApiModel("个案办理 - 外单位严重违法列入请求DTO")
public class EnterCaseHandleDto implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "统一社会信用代码", required = true)
    @NotBlank(message = "统一社会信用代码不能为空")
    private String uniscid;

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

    @ApiModelProperty(value = "主体名称", required = true)
    @NotBlank(message = "主体名称不能为空")
    private String entname;

    @ApiModelProperty(value = "列入事由", required = true)
    @NotBlank(message = "列入事由不能为空")
    private String serillrea;

    @ApiModelProperty(value = "列入事由（中文名称）", required = true)
    @NotBlank(message = "列入事由（中文名称）不能为空")
    private String serillreaCn;

    @ApiModelProperty(value = "列入日期", required = true, example = "2025-01-01")
    @JsonFormat(pattern = DateUtils.DATE_DEFAULT_FORMAT, timezone = "GMT+8")
    @NotNull(message = "列入日期不能为空")
    private LocalDate abntime;

    @ApiModelProperty(value = "列入作出决定机关", required = true)
    @NotBlank(message = "列入作出决定机关不能为空")
    private String decorg;

    @ApiModelProperty(value = "列入作出决定机关（中文名称）", required = true)
    @NotBlank(message = "列入作出决定机关（中文名称）不能为空")
    private String decorgCn;

    @ApiModelProperty(value = "列入文号", required = true)
    @NotBlank(message = "列入文号不能为空")
    private String dedocnum;

    @ApiModelProperty(value = "类别")
    private String infotype;

    @ApiModelProperty(value = "登记机关")
    private String regorg;

    @ApiModelProperty(value = "法人")
    private String name;
}