package com.kt.event.user.dto.request;

import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

/**
 * 프로필 수정 요청 DTO
 *
 * UFR-USER-030: 프로필 관리
 *
 * @author Backend Developer
 * @since 1.0
 */
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class UpdateProfileRequest {

    /**
     * 사용자 이름
     */
    @Size(min = 2, max = 50, message = "이름은 2자 이상 50자 이하여야 합니다")
    private String name;

    /**
     * 전화번호 (010XXXXXXXX 형식)
     */
    @Pattern(regexp = "^010\\d{8}$", message = "전화번호는 010XXXXXXXX 형식이어야 합니다")
    private String phoneNumber;

    /**
     * 이메일 주소
     */
    @Email(message = "이메일 형식이 올바르지 않습니다")
    @Size(max = 100, message = "이메일은 100자 이하여야 합니다")
    private String email;

    /**
     * 매장명
     */
    @Size(max = 100, message = "매장명은 100자 이하여야 합니다")
    private String storeName;

    /**
     * 업종
     */
    @Size(max = 50, message = "업종은 50자 이하여야 합니다")
    private String industry;

    /**
     * 주소
     */
    @Size(max = 255, message = "주소는 255자 이하여야 합니다")
    private String address;

    /**
     * 영업시간
     */
    @Size(max = 255, message = "영업시간은 255자 이하여야 합니다")
    private String businessHours;
}
