package com.njcn.rdms.module.project.controller.admin.product.vo.product;

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;

@Schema(description = "管理后台 - 产品状态动作 Request VO")
@Data
public class ProductStatusActionReqVO {

    @Schema(description = "产品编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @NotNull(message = "产品编号不能为空")
    private Long id;

    @Schema(description = "动作编码，如 pause、resume、archive、abandon", requiredMode = Schema.RequiredMode.REQUIRED, example = "pause")
    @NotBlank(message = "动作编码不能为空")
    @Size(max = 32, message = "动作编码长度不能超过32个字符")
    private String actionCode;

    @Schema(description = "动作原因；是否必填由状态流转配置决定", example = "当前阶段受环境限制暂停推进")
    @Size(max = 500, message = "动作原因长度不能超过500个字符")
    private String reason;

}
