package com.tashow.cloud.system.controller.admin.permission.vo.role;

import com.mzt.logapi.starter.annotation.DiffLogField;
import com.tashow.cloud.common.enums.CommonStatusEnum;
import com.tashow.cloud.common.validation.InEnum;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Data;

/** 管理后台 - 角色创建/更新 Request VO */
@Data
public class RoleSaveReqVO {

  /** 角色编号 */
  private Long id;

  /** 角色名称", example = "管理员 */
  @NotBlank(message = "角色名称不能为空")
  @Size(max = 30, message = "角色名称长度不能超过 30 个字符")
  @DiffLogField(name = "角色名称")
  private String name;

  @NotBlank(message = "角色标志不能为空")
  @Size(max = 100, message = "角色标志长度不能超过 100 个字符")
  /** 角色标志" */
  @DiffLogField(name = "角色标志")
  private String code;

  /** 显示顺序" */
  @NotNull(message = "显示顺序不能为空")
  @DiffLogField(name = "显示顺序")
  private Integer sort;

  /** 状态" */
  @DiffLogField(name = "状态")
  @NotNull(message = "状态不能为空")
  @InEnum(value = CommonStatusEnum.class, message = "状态必须是 {value}")
  private Integer status;

  /** 备注 */
  @Size(max = 500, message = "备注长度不能超过 500 个字符")
  @DiffLogField(name = "备注")
  private String remark;
}
