package com.jeesharp.business.modules.common.bizscene.dto;

import com.jeesharp.framework.pojo.dto.BaseSaveDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 业务业态场景保存 DTO。
 *
 * @author jeesharp
 * @since 2026-07-03
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "业务业态场景保存")
public class BizSceneSaveDTO extends BaseSaveDTO {

    @NotBlank(message = "场景名称不能为空")
    @Schema(description = "场景名称", requiredMode = Schema.RequiredMode.REQUIRED)
    private String sceneName;

    @NotBlank(message = "场景编号不能为空")
    @Schema(description = "场景编号", requiredMode = Schema.RequiredMode.REQUIRED)
    private String sceneCode;

    @Schema(description = "场景分组：SCENIC/STAY/CONTENT/MALL")
    private String sceneGroup;

    @Schema(description = "默认管理端选目标 POST 分页路径")
    private String adminListUrl;

    @Schema(description = "列表搜索参数字段名")
    private String keywordField;

    @Schema(description = "列表展示名称字段")
    private String nameField;

    @Schema(description = "封面字段")
    private String coverField;

    @Schema(description = "排序")
    private Integer sort;

    @NotNull(message = "状态不能为空")
    @Schema(description = "状态：0-禁用 1-启用", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer status;

    @Schema(description = "能力标签，逗号分隔：COUPON,BANNER,NAV")
    private String capabilities;

    @Schema(description = "扩展 JSON")
    private String extJson;

    @Schema(description = "备注")
    private String remarks;
}
