package com.zioinfo.kintex.publicsite.dto;

/**
 * 공개 관람객 안내 DTO 모음 (V43 근거 — visitor_guide · transport_info · v_event_calendar · v_event_monthly_summary).
 * <p>전 항목 비인증 공개 조회용. 내부 식별자·PII·원가는 담지 않는다. 근거 출처(source_url)는 투명성 위해 노출한다.
 */
public final class PublicGuideDtos {

    private PublicGuideDtos() {
    }

    /**
     * 연/월 캘린더 행사 카드 (v_event_calendar 근거).
     *
     * @param lifecycle 생명주기 — UPCOMING(예정) | ONGOING(진행) | ENDED(종료) | UNKNOWN. 날짜로 뷰가 산출.
     */
    public record PublicCalendarEventDto(
            String id,
            String name,
            String category,
            String hallLabel,
            String posterUrl,
            String startDate,
            String endDate,
            Integer eventYear,
            Integer eventMonth,
            String lifecycle) {
    }

    /** 월별 전시 건수 요약 (v_event_monthly_summary 근거) — 연간 기획 요약. */
    public record MonthlySummaryDto(
            Integer eventYear,
            Integer eventMonth,
            Integer eventCount) {
    }

    /** 관람객 방문가이드 항목 (visitor_guide 근거) — 카테고리형 안내. */
    public record VisitorGuideDto(
            String id,
            String category,
            String title,
            String body,
            String summary,
            Integer displayOrder,
            String sourceUrl) {
    }

    /** 교통수단 구조화 항목 (transport_info 근거). */
    public record TransportInfoDto(
            String id,
            String mode,
            String lineName,
            String route,
            String fromPoint,
            String travelTime,
            String note,
            Integer displayOrder,
            String sourceUrl) {
    }
}
