package com.zioinfo.kintex.publicsite.subscription.dto;

/**
 * 관심 행사 구독(F-C1) DTO 모음 — 공개 사이트 계약. 원문 이메일은 요청에서만 받고 응답에는 담지 않는다(§0-3).
 */
public final class SubscriptionDtos {

    private SubscriptionDtos() {
    }

    /** 구독 요청 — 이메일 + 개인정보 수집·이용 동의(필수). */
    public record SubscribeRequest(String email, Boolean agreePrivacy) {
    }

    /**
     * 구독 결과(원문 이메일 미포함). alreadySubscribed=true 면 기존 활성 구독이 있었음.
     * emailMasked 는 확인용 마스킹 값(wat***@example.com).
     */
    public record SubscribeResult(String eventId, String eventName, String emailMasked,
                                  String status, boolean alreadySubscribed) {
    }

    /** 수신거부 결과 — ok=true(처리/이미처리, 토큰 유효), false(토큰 불일치). */
    public record UnsubscribeResult(boolean ok, String message) {
    }
}
