package com.sinata.appointment.entity; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.Version; import com.sinata.appointment.validation.ChangePasswordGroup; import com.sinata.appointment.validation.CreateGroup; import com.sinata.appointment.validation.DeleteGroup; import com.sinata.appointment.validation.UpdateGroup; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Null; import java.time.LocalDateTime; import lombok.Getter; import lombok.Setter; @Schema(description = "基础实体:id/uuid/version + 审计字段 + 逻辑删除 delFlag") @Getter @Setter public class BaseEntity { @Schema(description = "id") @Null(groups = CreateGroup.class, message = "新增不能携带 id") @NotNull( groups = {UpdateGroup.class, DeleteGroup.class, ChangePasswordGroup.class}, message = "id 不能为空") @TableId(type = IdType.AUTO) private Long id; @Schema(description = "UUID") @Null(groups = CreateGroup.class, message = "新增不能携带 uuid") @NotBlank( groups = {UpdateGroup.class, DeleteGroup.class, ChangePasswordGroup.class}, message = "uuid 不能为空") @TableField(fill = FieldFill.INSERT) private String uuid; @Schema(description = "乐观锁") @Version @Null(groups = CreateGroup.class, message = "新增不能携带 version") @NotNull( groups = {UpdateGroup.class, DeleteGroup.class, ChangePasswordGroup.class}, message = "version 不能为空") private Long version; @Schema(description = "创建人") private Long createId; @Schema(description = "创建时间") @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; @Schema(description = "更新人") private Long updateId; @Schema(description = "更新时间") @TableField(fill = FieldFill.UPDATE) private LocalDateTime updateTime; @Schema(description = "删除标记(0 未删,1 已删)") private Integer delFlag = 0; }