package com.zioinfo.kintex.marketing.dto;

import java.util.List;

/**
 * M12 EDM·캠페인 · 스폰서십 응답/요청 DTO 모음.
 * <p>스폰서·기업명은 민감정보가 아니다(공개 마케팅 대상). 관람객 PII 는 이 모듈이 다루지 않는다.
 */
public final class MarketingDtos {

    private MarketingDtos() {
    }

    // ── SCR-33 EDM·캠페인 ──
    public record CampaignDto(String id, String name, String status, int audience,
                              String meta, String openRate, String clickRate) {
    }

    /** 캠페인 생성 요청 — 발송은 미구현(status 전이만). */
    public record CampaignCreateRequest(String name, Integer audience, String meta,
                                        String scheduleType, String scheduledAt) {
    }

    /** 캠페인 발송 결과 — 발송 건수·상태. 수신자 원문/PII 는 포함하지 않는다. */
    public record CampaignSendResult(String id, String status, int sentCount, boolean mailEnabled,
                                     String meta) {
    }

    // ── SCR-34 스폰서십 ──
    public record SponsorshipView(List<MktKpi> kpis, List<TierDto> tiers, List<SponsorDto> sponsors) {
    }

    public record MktKpi(String label, String value, String unit, String tone) {
    }

    public record TierDto(String id, String name, String nameKo, String price, String accent,
                          List<String> benefits, int remaining, String status, Integer dday) {
    }

    public record SponsorDto(String id, String name, String initial, String tier, String status,
                             List<Fulfillment> fulfillment) {
    }

    public record Fulfillment(String id, String label, boolean done) {
    }
}
