package com.zioinfo.kintex.exhibitor.dto;

import java.util.List;

/**
 * 주최자용 참가업체 관리 목록 (#41 · SCR /exhibitors).
 * 집계원: booth(layout.event_id) + booth_sale + design_plan(최신) + invoice + company/event_member(연락).
 * 데이터 없으면 0/빈배열/ null(정직 반환). 민감정보(비밀번호·otp)는 포함하지 않는다.
 */
public record ExhibitorListDto(
        String eventId,
        String eventName,
        Summary summary,
        List<Row> exhibitors
) {
    /** 상단 요약 밴드 — 참가사 규모/계약/설계승인/정산 현황. */
    public record Summary(
            int total,
            int contracted,
            int designApproved,
            int settlementPaid,
            int outstandingCount
    ) {
    }

    /** 참가업체 1행(= 배정 부스 1건). company·boothNo 는 표시용(민감정보 아님). */
    public record Row(
            String boothId,
            String companyName,
            String boothNo,
            String boothType,
            Double areaM2,
            String saleStatus,     // sold | held | available | null
            String designStatus,   // approved | review | draft | rejected
            String invoiceStatus,  // pending | invoiced | paid | overdue | cancelled | null
            long outstanding,      // 미수금(원) = total - paid_amount
            String contactName,    // 참가업체 담당자 표시명(선택)
            String contactPhone    // 연락처(선택)
    ) {
    }
}
