package com.kt.event.participation.application.dto;

import jakarta.validation.constraints.*;
import lombok.*;

/**
 * 이벤트 참여 요청 DTO
 */
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ParticipationRequest {

    @NotBlank(message = "이름은 필수입니다")
    @Size(min = 2, max = 50, message = "이름은 2자 이상 50자 이하여야 합니다")
    private String name;

    @NotBlank(message = "전화번호는 필수입니다")
    @Pattern(regexp = "^\\d{3}-\\d{3,4}-\\d{4}$", message = "전화번호 형식이 올바르지 않습니다")
    private String phoneNumber;

    @Email(message = "이메일 형식이 올바르지 않습니다")
    private String email;

    @Builder.Default
    private String channel = "SNS";

    @Builder.Default
    private Boolean agreeMarketing = false;

    @NotNull(message = "개인정보 수집 및 이용 동의는 필수입니다")
    private Boolean agreePrivacy;

    @Builder.Default
    private Boolean storeVisited = false;
}
