package org.dromara.system.domain.bo;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.dromara.common.core.domain.BaseBO;
import org.dromara.system.domain.SysTenant;

import java.time.LocalDateTime;

/**
 * 达人类型租户接口请求对象
 */
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
public class SysReferenceBo extends BaseBO<SysTenant> {

    @Schema(description = "主键, 修改必填")
    private Long id;

    @Schema(description = "租户编号, 修改必填")
    private String tenantId;

    @Schema(description = "所属代理商id", hidden = true)
    private Long oneParentId;

    @Schema(description = "团长姓名")
    @NotBlank(message = "团长姓名不能为空")
    private String personName;

    @Schema(description = "团长手机号")
    @NotBlank(message = "团长手机号不能为空")
    private String personPhone;

    @NotBlank(message = "地址不能为空")
    @Schema(description = "地址")
    private String address;

    @NotBlank(message = "用户名不能为空")
    @Schema(description = "用户名")
    private String username;

    @NotBlank(message = "用户密码不能为空")
    @Schema(description = "用户密码")
    private String password;


    @Schema(description = "租户状态（0正常 1停用）", hidden = true)
    @Builder.Default
    private String status = "0";

    @Schema(description = "任聘时间")
    private LocalDateTime joinTime;

    @NotBlank(message = "证件类型不能为空")
    @Schema(description = "证件类型，数据字典")
    private String idCardType;

    @NotBlank(message = "证件信息不能为空")
    @Schema(description = "证件信息")
    private String idCard;

    @Schema(description = "证件图片")
    private String certificate;

    @Schema(description = "其它附件路径")
    private String otherAttachment;

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

    @NotBlank(message = "合同年限不能为空")
    @Schema(description = "合同年限")
    private String contractYear;

    @NotNull(message = "租户套餐不能为空")
    @Schema(description = "套餐")
    private Long packageId;

    @Schema(description = "易生分配的商户编码")
    private String mchtCode;


}
