package com.gunshi.project.hsz.model; 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.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.gunshi.core.dateformat.DateFormatString; import com.gunshi.project.hsz.common.validate.markers.Insert; import com.gunshi.project.hsz.common.validate.markers.Update; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; import lombok.Data; import lombok.EqualsAndHashCode; import java.io.Serializable; import java.util.Date; import java.util.List; /** * Description: * Created by XuSan on 2024/9/24. * * @author XuSan * @version 1.0 */ @EqualsAndHashCode(callSuper = true) @Schema(description="法律法规管理表") @Data @TableName("public.sz_rule_by_law") public class SzRuleByLaw extends CommUpdate implements Serializable { private static final long serialVersionUID = 1L; /** * 主键 */ @TableId(value="id", type= IdType.AUTO) @Schema(description="主键") @JsonSerialize(using = ToStringSerializer.class) private Long id; /** * 标题 */ @TableField(value="name") @Schema(description="标题") @Size(max = 30,message = "标题最大长度要小于 30") @NotBlank(message = "标题不能为空",groups = {Insert.class, Update.class}) private String name; /** * 制定机关 */ @TableField(value="fill_unit") @Schema(description="制定机关") @Size(max = 50,message = "制定机关最大长度要小于 50") private String fillUnit; /** * 法律性质 */ @TableField(value="type") @Schema(description="法律性质 0:宪法,1:法律,2:行政法规,3:督察法规,4:司法解释,5:地方性法规") @NotNull(message = "法律性质不能为空",groups = {Insert.class, Update.class}) @Size(max = 1,message = "法律性质最大长度要小于 2") private Integer type; /** * 时效性 */ @TableField(value="timeliness") @Schema(description="时效性 0:尚未生效,1:有效,2:已修改,3:已废止") @NotNull(message = "时效性不能为空",groups = {Insert.class, Update.class}) @Size(max = 1,message = "时效性最大长度要小于 2") private Integer timeliness; /** * 公布日期 */ @Schema(description="公布日期 格式:" + DateFormatString.YYYY_MM_DD) @TableField(value="announcement_date") @JsonFormat(pattern = DateFormatString.YYYY_MM_DD, timezone = "GMT+8") private Date announcementDate; /** * 施行日期 */ @Schema(description="施行日期 格式:" + DateFormatString.YYYY_MM_DD) @TableField(value="implementation_date") @JsonFormat(pattern = DateFormatString.YYYY_MM_DD, timezone = "GMT+8") private Date implementationDate; /** * 上传时间 */ @Schema(description="上传时间 格式:" + DateFormatString.YYYY_MM_DD_HH_MM_SS) @TableField(value="upload_date") @JsonFormat(pattern = DateFormatString.YYYY_MM_DD_HH_MM_SS, timezone = "GMT+8") private Date uploadDate; @TableField(exist = false) @Schema(description = "文件集合") private List files; }