import { IsEmail, IsEnum, IsNotEmpty, IsOptional, IsString, MinLength } from 'class-validator';
import { UserSeType } from 'src/common/const/UserSeType';

/**
 * 클라이언트 회원가입 데이터 검증(Validation)
 *
 * @export
 * @class SignupDto
 * @typedef {SignupDto}
 */
export class SignupDto {
	@IsEnum(UserSeType)
	@IsNotEmpty()
	userSe: UserSeType; // 사용자 구분 (FARM/CNSLT/ORGAN)

	@IsString()
	@IsOptional()
	userInstName?: string; // 농장명/기관명

	@IsString()
	@IsNotEmpty()
	@MinLength(4)
	userId: string; // 사용자 ID

	@IsString()
	@IsNotEmpty()
	@MinLength(6)
	userPassword: string; // 비밀번호

	@IsString()
	@IsNotEmpty()
	userName: string; // 이름

	@IsString()
	@IsNotEmpty()
	userPhone: string; // 휴대폰 번호

	@IsOptional()
	userBirth?: Date; // 생년월일

	@IsEmail()
	@IsNotEmpty()
	userEmail: string; // 이메일

	@IsString()
	@IsOptional()
	userAddress?: string; // 주소

	@IsString()
	@IsOptional()
	userBizNo?: string; // 사업자등록번호
}
