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

import com.zhongshu.card.client.type.PassWordDefaultType;
import com.zhongshu.card.client.type.PassWordType;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author TRX
 * @date 2024/9/24
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ProjectCommonConfigParam {

    @NotEmpty
    @Schema(description = "项目id")
    private String projectOid;

    @Schema(description = "最小密码长度")
    @Min(value = 4)
    @Max(value = 20)
    private Integer minPassWordLength = 6;

    @Schema(description = "最小密码长度")
    @Min(value = 4)
    @Max(value = 20)
    private Integer maxPassWordLength = 20;

    @Schema(description = "密码字符组合类型")
    @NotNull
    private PassWordType passWordType;

    @Schema(description = "默认密码设置类型")
    private PassWordDefaultType passWordDefaultType;

    @Schema(description = "这样的默认密码")
    private String defaultPassWord;

    @Schema(description = "默认用户头像")
    private String defaultUserHead;

    // --------------游客许可 ---------------
    @Schema(description = "允许游客注册")
    private Boolean isAllowRegister = Boolean.FALSE;

    @Schema(description = "允许游客消费")
    private Boolean isAllowConsume = Boolean.FALSE;

    @Schema(description = "用户协议")
    @NotEmpty
    private String userAgreement = "";

    @NotEmpty
    @Schema(description = "隐私政策")
    private String privacyPolicy = "";

    @Schema(description = "")
    private String remark;

}
