package com.seer.teach.mp.admin.controller.req;

import com.seer.teach.common.request.PageRequest;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import java.time.LocalDateTime;

@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "活动表单执行实例查询请求")
public class ActivityFormExecutionQueryReq extends PageRequest {

    @Schema(description = "ID")
    private Integer id;

    @Schema(description = "执行编号")
    @Size(max = 100, message = "执行编号长度不能超过100个字符")
    private String executionNo;

    @Schema(description = "活动ID")
    @NotNull(message = "活动ID不能为空")
    private Integer activityId;

    @Schema(description = "代理商ID")
    @NotNull(message = "代理商ID不能为空")
    private Integer agentId;

    @Schema(description = "使用的表单ID")
    @NotNull(message = "表单ID不能为空")
    private Integer formId;

    @Schema(description = "提交人ID（家长ID）")
    private Integer submitterId;

    @Schema(description = "提交人姓名")
    @Size(max = 255, message = "提交人姓名长度不能超过255个字符")
    private String submitterName;

    @Schema(description = "提交时间")
    private LocalDateTime submitTime;

    @Schema(description = "状态：draft-草稿，submitted-已提交，approved-已批准，rejected-已拒绝")
    @Size(max = 50, message = "状态长度不能超过50个字符")
    private String status;

}