package com.reading.platform.dto.request;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * 管理员设置更新请求
 */
@Data
@Schema(description = "管理员设置更新请求")
public class AdminSettingsUpdateRequest {

    @Schema(description = "系统名称", example = "少儿智慧阅读平台")
    private String systemName;

    @Schema(description = "系统描述", example = "专业的幼儿园课程管理系统")
    private String systemDesc;

    @Schema(description = "联系电话", example = "010-12345678")
    private String contactPhone;

    @Schema(description = "联系邮箱", example = "admin@example.com")
    private String contactEmail;

    @Schema(description = "系统 Logo", example = "/logo.png")
    private String systemLogo;

    @Schema(description = "密码强度", example = "medium")
    private String passwordStrength;

    @Schema(description = "最大登录尝试次数", example = "5")
    private Integer maxLoginAttempts;

    @Schema(description = "Token 过期时间", example = "24h")
    private String tokenExpire;

    @Schema(description = "强制 HTTPS", example = "true")
    private Boolean forceHttps;

    @Schema(description = "邮箱启用", example = "true")
    private Boolean emailEnabled;

    @Schema(description = "SMTP 主机", example = "smtp.example.com")
    private String smtpHost;

    @Schema(description = "SMTP 端口", example = "587")
    private Integer smtpPort;

    @Schema(description = "SMTP 用户", example = "smtp@example.com")
    private String smtpUser;

    @Schema(description = "SMTP 密码", example = "password")
    private String smtpPassword;

    @Schema(description = "发件人邮箱", example = "noreply@example.com")
    private String fromEmail;

    @Schema(description = "短信启用", example = "false")
    private Boolean smsEnabled;

    @Schema(description = "存储类型", example = "local")
    private String storageType;

    @Schema(description = "最大文件大小", example = "10")
    private Integer maxFileSize;

    @Schema(description = "允许的文件类型", example = "jpg,png,pdf")
    private String allowedTypes;

    @Schema(description = "默认教师配额", example = "50")
    private Integer defaultTeacherQuota;

    @Schema(description = "默认学生配额", example = "500")
    private Integer defaultStudentQuota;

    @Schema(description = "启用自动过期", example = "true")
    private Boolean enableAutoExpire;

    @Schema(description = "提前通知天数", example = "7")
    private Integer notifyBeforeDays;
}
