-- V20: 공개 홍보 사이트(M12) — 참가/부스 신청 문의 접수 테이블.
-- 근거: _workspace/port_public.md G6(참가 문의 리드) + POST /api/public/inquiries.
-- 범위: exhibit_inquiry 신규 테이블만(멱등) + 최소 시드. 기존 테이블/컬럼 불변.
-- 공개 영역: 비인증 접수. PII(email/phone)는 저장하되 공개 응답에는 노출하지 않는다(접수번호만 반환).

-- ── 참가/부스 신청 문의(리드) ──────────────────────────────────────────────
CREATE TABLE IF NOT EXISTS exhibit_inquiry (
    id              varchar(40)  PRIMARY KEY,
    receipt_no      varchar(30)  NOT NULL UNIQUE,   -- 공개 접수번호(KTX-INQ-YYYYMMDD-XXXX)
    inquiry_type    varchar(30),                    -- shell | raw | premium | general(부스 유형/문의 성격)
    company         varchar(200),
    contact_name    varchar(120),
    email           varchar(200),                   -- 접수 확인용(공개 응답 미노출)
    phone           varchar(40),                    -- (공개 응답 미노출)
    scale           varchar(60),                    -- 예상 규모
    hall_pref       varchar(40),                    -- 희망 홀
    message         text,
    agree_privacy   boolean      NOT NULL DEFAULT false,
    agree_marketing boolean      NOT NULL DEFAULT false,
    status          varchar(20)  NOT NULL DEFAULT 'received',  -- received | in_review | closed
    created_at      timestamptz  NOT NULL DEFAULT now()
);

-- 스팸/rate 제어(동일 이메일 1분 1건) + 최근순 조회 가속
CREATE INDEX IF NOT EXISTS idx_exhibit_inquiry_email_created ON exhibit_inquiry (email, created_at DESC);
CREATE INDEX IF NOT EXISTS idx_exhibit_inquiry_created       ON exhibit_inquiry (created_at DESC);

-- ── 최소 시드(멱등) — 관리 백오피스 목록 초기 표시용 데모 1건 ──────────────
INSERT INTO exhibit_inquiry
    (id, receipt_no, inquiry_type, company, contact_name, email, phone, scale, hall_pref, message,
     agree_privacy, agree_marketing, status, created_at)
VALUES
    ('inq-seed-0001', 'KTX-INQ-20260101-0001', 'shell', '(주)데모컴퍼니', '홍길동',
     'demo@example.com', '010-0000-0000', '2-4개 부스 (18-36sqm)', 'Hall 1',
     '스마트팩토리 전시 참가를 검토 중입니다. 부스 배치와 요금 안내 부탁드립니다.',
     true, false, 'received', now() - interval '30 days')
ON CONFLICT (id) DO NOTHING;
