package cn.iocoder.yudao.module.bpm.controller.admin.processmapping.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

/**
 * 流程映射配置创建 Request VO
 *
 * @author 系统
 */
@Schema(description = "管理后台 - 流程映射配置创建 Request VO")
@Data
public class BpmProcessMappingConfigCreateReqVO {

    @Schema(description = "流程唯一标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "ORDER")
    @NotBlank(message = "流程代码不能为空")
    @Size(max = 64, message = "流程代码长度不能超过64个字符")
    private String processCode;

    @Schema(description = "流程显示名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "订单流程")
    @NotBlank(message = "流程名称不能为空")
    @Size(max = 128, message = "流程名称长度不能超过128个字符")
    private String processName;

    @Schema(description = "物理表名", requiredMode = Schema.RequiredMode.REQUIRED, example = "order_info")
    @NotBlank(message = "表名不能为空")
    @Size(max = 64, message = "表名长度不能超过64个字符")
    private String tableName;

    @Schema(description = "实体类全限定名", requiredMode = Schema.RequiredMode.REQUIRED, example = "com.example.order.OrderDO")
    @NotBlank(message = "实体类不能为空")
    @Size(max = 255, message = "实体类长度不能超过255个字符")
    private String entityClass;

    @Schema(description = "Mapper接口全限定名", requiredMode = Schema.RequiredMode.REQUIRED, example = "com.example.order.OrderMapper")
    @NotBlank(message = "Mapper类不能为空")
    @Size(max = 255, message = "Mapper类长度不能超过255个字符")
    private String mapperClass;

    @Schema(description = "流程描述", example = "订单相关的业务流程")
    @Size(max = 255, message = "描述长度不能超过255个字符")
    private String description;

} 