Files
dbx-main/scripts/sql/cupang_box_rules_seed2.sql
T
king 4a260cb161 change(cupang): 화면 문구 "박스" → "상자" 통일
템플릿·라우터 메시지·페이지 제목과 seed/DDL 기본값(쿠팡박스→쿠팡상자)까지
표기를 맞췄다. URL(/box-calc)과 코드 식별자(box_name 등)는 그대로.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-01 16:00:09 +09:00

84 lines
3.7 KiB
PL/PgSQL

-- ════════════════════════════════════════════════════════════
-- 쿠팡 밀크런 — 상자 입수량 규칙 2차 입력 (cupang_db)
-- 미라클통/미라클백/빠져락/멀티/점보 19건
--
-- 실행:
-- docker exec -i postgres-db psql -U postgres -d cupang_db \
-- < /opt/www/main/scripts/sql/cupang_box_rules_seed2.sql
--
-- 제품코드는 cupang_products 카탈로그에서 제품명으로 매칭한다.
-- (공백 무시 + 대소문자 무시 비교)
-- 카탈로그에 없는 제품은 입력되지 않고 마지막 SELECT 에 출력된다.
-- → 제품명 설정 화면의 "수기 추가"로 제품코드를 등록한 뒤 이 파일을 다시 실행.
-- 같은 product_code 는 덮어쓴다(ON CONFLICT DO UPDATE).
-- 피킹비는 전용 컬럼이 없어 memo 에 기록한다.
-- ════════════════════════════════════════════════════════════
BEGIN;
-- box_no: 원자료의 상자 호수. 참고용 컬럼이며 memo 에는 넣지 않는다(피킹비만 기록).
CREATE TEMP TABLE _seed2 (
product_name TEXT,
picking_fee INTEGER,
units_per_box INTEGER,
box_no TEXT
) ON COMMIT DROP;
INSERT INTO _seed2 (product_name, picking_fee, units_per_box, box_no) VALUES
('미라클통 550x4', 700, 40, '2호'),
('미라클통 550x6', 700, 30, '2호'),
('미라클통 750x5', 700, 30, '2호'),
('미라클통 950x4', 700, 24, '2호'),
('미라클통 950x6', 700, 18, '2호'),
('미라클통 1800x4', 700, 16, '2호'),
('미라클통 1800x6', 700, 14, '2호'),
('미라클통 2200x4', 700, 14, '2호'),
('미라클통 2200x6', 700, 10, '2호'),
('미라클통 3200x4', 700, 10, '2호'),
('빠져락 x1', 500, 35, '2호'),
('빠져락 x3', 580, 8, '2호'),
('빠져락 x5', 780, 8, '2호'),
('미라클백 2.5L', 500, 30, '5호'),
('미라클백 6.0L', 500, 23, '6호'),
('멀티 5,000ml x2', 700, 8, '2호'),
('멀티 5,000ml x4', 680, 2, '3호'),
('점보 7,000ml x2', 700, 6, '2호'),
('점보 황토 7,000ml x2', 700, 6, '2호');
INSERT INTO cupang_box_rules
(product_code, product_name_snapshot, box_name, units_per_box, memo, active)
SELECT p.product_code,
p.product_name,
'쿠팡상자',
s.units_per_box,
'피킹비 ' || s.picking_fee || '',
TRUE
FROM _seed2 s
JOIN cupang_products p
ON lower(regexp_replace(p.product_name, '\s', '', 'g'))
= lower(regexp_replace(s.product_name, '\s', '', 'g'))
ON CONFLICT (product_code) DO UPDATE
SET product_name_snapshot = EXCLUDED.product_name_snapshot,
box_name = EXCLUDED.box_name,
units_per_box = EXCLUDED.units_per_box,
memo = EXCLUDED.memo,
active = TRUE;
-- 카탈로그에 없어 입력되지 않은 제품 (수기 추가 후 재실행 대상)
SELECT s.product_name AS "카탈로그_미등록_제품명",
s.units_per_box AS "입수량",
s.box_no AS "상자호수"
FROM _seed2 s
WHERE NOT EXISTS (
SELECT 1 FROM cupang_products p
WHERE lower(regexp_replace(p.product_name, '\s', '', 'g'))
= lower(regexp_replace(s.product_name, '\s', '', 'g'))
)
ORDER BY s.product_name;
COMMIT;
-- 결과 확인
SELECT product_code, product_name_snapshot, box_name, units_per_box, memo
FROM cupang_box_rules
ORDER BY product_code;