package com.zioinfo.kintex.session;

/**
 * F-B4 세션 정원 RSVP + F-C5 대기열 DTO.
 */
public final class SessionDtos {

    private SessionDtos() {
    }

    /** 세션 카드 — 정원·잔여·마감·내 상태. remaining/myStatus 는 nullable. */
    public record SessionDto(
            String id,
            String title,
            String speaker,
            String room,
            String track,
            String startsAt,
            String endsAt,
            int capacity,
            int seatTaken,
            Integer remaining,
            boolean full,
            String status,
            String myStatus) {   // null | CONFIRMED | WAITLIST
    }

    /** RSVP 결과 — 확정 또는 대기(순번). */
    public record RsvpResultDto(
            String sessionId,
            String status,        // CONFIRMED | WAITLIST
            Integer waitlistPos,  // WAITLIST 시 순번
            String message) {
    }

    /** 내 RSVP 항목. */
    public record MyRsvpDto(
            String sessionId,
            String title,
            String room,
            String track,
            String startsAt,
            String status,
            Integer waitlistPos) {
    }
}
