package com.zhongshu.card.client.model.scene;

import com.zhongshu.card.client.model.base.SuperParam;
import com.zhongshu.card.client.type.DataState;
import com.zhongshu.card.client.type.scene.SceneType;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.List;

/**
 * @author TRX
 * @date 2024/11/22
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SceneInfoParam extends SuperParam {

    @Schema(description = "场景名称")
    @NotEmpty
    private String name;

    @Schema(description = "编码")
    private String code;

    @Schema(description = "图标")
    private String logo;

    @NotNull
    @Schema(description = "类型")
    private SceneType sceneType;

    @NotEmpty
    @Schema(description = "布局尺寸")
    private String layout;

    @Schema(description = "状态")
    private DataState state = DataState.Enable;

    @Schema(description = "包含的组件列表")
    private List<SceneComponentParam> components = new ArrayList<>();

}
