package com.reading.platform.dto.request;

import com.fasterxml.jackson.annotation.JsonAlias;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;

import java.time.LocalDateTime;

@Data
@Schema(description = "租户创建请求")
public class TenantCreateRequest {

    @NotBlank(message = "租户名称不能为空")
    @Schema(description = "租户名称", example = "阳光幼儿园")
    private String name;

    @NotBlank(message = "登录账号不能为空")
    @JsonAlias("loginAccount")
    @Schema(description = "租户编码 / 登录账号", example = "KINDERGARTEN_001")
    private String code;

    @JsonAlias("contactPerson")
    @Schema(description = "联系人", example = "张园长")
    private String contactName;

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

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

    @Schema(description = "地址", example = "北京市朝阳区 XX 路 XX 号")
    private String address;

    @Schema(description = "Logo URL", example = "/logo/school.png")
    private String logoUrl;

    @JsonAlias("expireDate")
    @Schema(description = "过期日期", example = "2025-12-31")
    private LocalDateTime expireAt;

    @JsonAlias("studentQuota")
    @Schema(description = "最大学生数", example = "500")
    private Integer maxStudents;

    @JsonAlias("teacherQuota")
    @Schema(description = "最大教师数", example = "50")
    private Integer maxTeachers;

    @Schema(description = "初始密码（默认: 123456）")
    private String password;

    @Schema(description = "套餐类型（可选）", example = "standard")
    private String packageType;

    @Schema(description = "开始日期（可选）", example = "2024-01-01")
    private String startDate;

}
