Spaces:
Sleeping
Sleeping
Download backend/sql/050_gift_dispatch.sql from stylevoice/talk: direct link, hf CLI and curl.
- Browser
- Download file 3.21 kB
-
https://huggingface.co/spaces/stylevoice/talk/resolve/main/backend/sql/050_gift_dispatch.sql
- Command line
-
hf download hf://spaces/stylevoice/talk/backend/sql/050_gift_dispatch.sql
-
curl -L -o 050_gift_dispatch.sql https://huggingface.co/spaces/stylevoice/talk/resolve/main/backend/sql/050_gift_dispatch.sql
3.21 kB
| -- μΉ΄ν μμ± μ λ¬ΌμΏ ν° β λ¨μ²΄ λ°μ‘ + λ°λμ΄ μλ³ (2026-05-28, P1a μ μ‘ 2κ²½λ‘) | |
| -- | |
| -- μμ²μ: doc/runbook/req_cafe_gift_mvp.md Β§5 | |
| -- μ€κ³: doc/runbook/cafe_gift_p1a.md (Phase B-2 / μ μ‘ 2κ²½λ‘) | |
| -- | |
| -- λ³κ²½: | |
| -- 1) gift_orders μ order_kind/company_name/company_contact μΆκ° (λ¨μ²΄ λΆκΈ°) | |
| -- 2) gift_coupons μ order_id UNIQUE μ κ±° (corporate=1 order β N coupons) | |
| -- 3) gift_coupons μ recipient_phone_e164/recipient_name μΆκ° (λ°λμ΄ unique λ§ν¬ νΈλνΉ) | |
| -- | |
| -- β νκ· κ°λ (sql/043 λ°μ΄ν° μμ€ μ¬κ³ κ΅ν): | |
| -- - λͺ¨λ μ κ· μ»¬λΌ nullable + default β κΈ°μ‘΄ λ°μ΄ν° μλ° 0 | |
| -- - CHECK λ μ κ· μ»¬λΌμλ§ (κΈ°μ‘΄ CHECK 무μμ ) | |
| -- - order_id UNIQUE μ κ±°λ idempotent (DROP CONSTRAINT IF EXISTS) | |
| -- - order_kind λ―Έμ§μ νμ 'personal' λ‘ ν΄μ β κΈ°μ‘΄ mock_paid νλ¦ νκ· 0 | |
| -- - μλ¦Όν‘ νΈμΆ μ½λ 0건 (μμ²μ Β§5-3 λ°μ ) | |
| -- βββββββββ gift_orders νμ₯ βββββββββ | |
| ALTER TABLE public.gift_orders | |
| ADD COLUMN IF NOT EXISTS order_kind TEXT NOT NULL DEFAULT 'personal' | |
| CHECK (order_kind IN ('personal','corporate')), | |
| ADD COLUMN IF NOT EXISTS company_name TEXT, | |
| ADD COLUMN IF NOT EXISTS company_contact TEXT; | |
| CREATE INDEX IF NOT EXISTS idx_gift_orders_kind | |
| ON public.gift_orders (order_kind, status, created_at DESC); | |
| COMMENT ON COLUMN public.gift_orders.order_kind IS | |
| 'personal: 1 order β 1 coupon, Kakao Share. corporate: 1 order β N coupons, SMS μΌκ΄.'; | |
| COMMENT ON COLUMN public.gift_orders.company_name IS | |
| 'corporate μ μ© β νμ¬λͺ . SMS λ³Έλ¬Έ [νμ¬λͺ ] 머리μ μ¬μ©.'; | |
| COMMENT ON COLUMN public.gift_orders.company_contact IS | |
| 'corporate μ μ© β λ΄λΉμ μ΄λ¦/μ°λ½μ²(μμ ν μ€νΈ). νλΆΒ·λ¬Έμ μλμ©.'; | |
| -- βββββββββ gift_coupons νμ₯ (1 order β N coupons) βββββββββ | |
| -- order_id UNIQUE μ κ±° (corporate λΆκΈ° μν΄). sql/049 μμ μΈλΌμΈ UNIQUE β μ μ½ μ΄λ¦ = gift_coupons_order_id_key | |
| ALTER TABLE public.gift_coupons | |
| DROP CONSTRAINT IF EXISTS gift_coupons_order_id_key; | |
| -- λ°λμ΄ μλ³ (corporate λ°μ‘ μ μ±μμ§). personal νλ¦μ NULL = gift_orders.recipient_name μ¬μ©. | |
| ALTER TABLE public.gift_coupons | |
| ADD COLUMN IF NOT EXISTS recipient_phone_e164 TEXT, | |
| ADD COLUMN IF NOT EXISTS recipient_name TEXT, | |
| ADD COLUMN IF NOT EXISTS dispatched_at TIMESTAMPTZ, -- SMS λ°μ‘ μκ° | |
| ADD COLUMN IF NOT EXISTS dispatch_status TEXT NOT NULL DEFAULT 'pending' | |
| CHECK (dispatch_status IN ('pending','sent','failed','skipped')), | |
| ADD COLUMN IF NOT EXISTS dispatch_error TEXT; | |
| -- order λ³ + λ°λμ΄λ³ μ‘°ν (λμ보λ) | |
| CREATE INDEX IF NOT EXISTS idx_gift_coupons_order_dispatch | |
| ON public.gift_coupons (order_id, dispatch_status); | |
| COMMENT ON COLUMN public.gift_coupons.recipient_phone_e164 IS | |
| 'corporate λ°μ‘ λ°λμ΄ λ²νΈ. personal=NULL (gift_orders.recipient_name μ¬μ©).'; | |
| COMMENT ON COLUMN public.gift_coupons.dispatch_status IS | |
| 'pending: λ°κΈλ§ / sent: SMS λ°μ‘ OK / failed: λ°μ‘ μ€ν¨(λ²νΈ λ¬΄ν¨ λ±) / skipped: λ°μ‘ μ ν¨(personal νλ¦).'; | |