package com.multictrl.modules.business.dto.multi;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.multictrl.common.validator.group.AddGroup;
import com.multictrl.common.validator.group.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 lombok.Data;

/**
 * @author 张闯
 * @since 2026-05-28
 */

@Data
@Schema(name = "蛙跳组信息")
public class MultiGroupDTO {

    @Null(message = "{id.null}", groups = AddGroup.class)
    @NotNull(message = "{id.require}", groups = UpdateGroup.class)
    @Schema(description = "主键")
    private Long id;

    /**
     * 蛙跳组名称
     */
    @NotBlank(message = "{group.name.require}", groups = {AddGroup.class, UpdateGroup.class})
    @JsonProperty(required = true)
    @Schema(description = "蛙跳组名称")
    private String groupName;
    /**
     * 蛙跳组备注说明
     */
    @NotBlank(message = "{group.mark.require}", groups = {AddGroup.class, UpdateGroup.class})
    @JsonProperty(required = true)
    @Schema(description = "蛙跳组备注说明")
    private String groupMark;

    @NotNull(message = "{dept.id.require}", groups = {AddGroup.class, UpdateGroup.class})
    @JsonProperty(required = true)
    @Schema(description = "所属部门")
    private Long deptId;
}
