feat(cupang): 제품 카탈로그에 쿠팡상품코드 + 상태 토글

- cupang_products.coupang_item_code 컬럼 추가 (마이그레이션 004, init.sql 동기화)
- 설정 화면: 쿠팡상품코드 열 표시/정렬, 수기 추가 폼 입력란 추가
- 선택 등록 시 바로 등록하지 않고 쿠팡상품코드 입력 팝업을 먼저 표시
- 상태 배지를 클릭 토글로 변경 (POST /cupang/api/products/{id}/toggle)
- 빈 쿠팡상품코드는 "미입력"으로 처리해 기존 값을 덮어쓰지 않음

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-01 11:30:00 +09:00
parent 3a18b185a9
commit bf3407b6ec
12 changed files with 243 additions and 35 deletions
@@ -0,0 +1,28 @@
-- =====================================================================
-- cupang_db 마이그레이션 004 — 제품명 카탈로그에 쿠팡상품코드 추가
-- =====================================================================
-- 사유: 설정(제품명) 화면에서 미라네 제품코드와 별개로 쿠팡 쪽 상품코드를
-- 같이 보관·표시하기 위함. 등록 시(수기 추가 / 선택 등록 팝업) 입력.
--
-- 멱등: ADD COLUMN IF NOT EXISTS. 기존 행은 빈 문자열('')로 채워진다.
-- DROP/TRUNCATE 없음, 데이터 삭제 없음.
--
-- 실행:
-- docker exec -i postgres-db psql -U postgres -d cupang_db \
-- < /opt/www/main/scripts/sql/cupang_db_004_product_coupang_item_code.sql
--
-- 확인:
-- docker exec -i postgres-db psql -U postgres -d cupang_db \
-- -c "\d cupang_products"
-- =====================================================================
\set ON_ERROR_STOP on
\connect cupang_db
ALTER TABLE cupang_products
ADD COLUMN IF NOT EXISTS coupang_item_code TEXT NOT NULL DEFAULT '';
CREATE INDEX IF NOT EXISTS idx_cupang_products_coupang_code
ON cupang_products (coupang_item_code);
SELECT 'cupang_db 004 done' AS status;
+2
View File
@@ -99,12 +99,14 @@ CREATE TABLE IF NOT EXISTS cupang_products (
id BIGSERIAL PRIMARY KEY,
product_code TEXT NOT NULL UNIQUE,
product_name TEXT NOT NULL,
coupang_item_code TEXT NOT NULL DEFAULT '',
active BOOLEAN NOT NULL DEFAULT TRUE,
sort_order INTEGER NOT NULL DEFAULT 0,
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
CREATE INDEX IF NOT EXISTS idx_cupang_products_name ON cupang_products (product_name);
CREATE INDEX IF NOT EXISTS idx_cupang_products_coupang_code ON cupang_products (coupang_item_code);
DROP TRIGGER IF EXISTS trg_cupang_products_updated ON cupang_products;
CREATE TRIGGER trg_cupang_products_updated