o2o-negosium-original/postgres-init/alters/2026-07-24-nego-card-scripts.sql
hbyang a55975e62a [fix] negosium 시드: 협상카드 스크립트 개정 + 미사용 카드 정리
출처: '260716_AIO2O 수정 및 요청사항_v2_memo check.xlsx' > '협상카드 수정' 시트(D열).
- 스크립트 개정: NGC-003(장기 관계 강조)·NGC-004(명분 제공)·NGC-007(예산 상한 안내)·NGC-008(시장가 근거 제시)
- 미사용('IMK 거래 특성과 관련성 부족') 카드 삭제: NGC-006(총비용 가치 설명)·NGC-009(조건부 가격 조정)
- init-data.sql(신규/초기화 설치 정본)에서 006·009 INSERT 제거 + 4개 멘트 갱신
- 동일 최종본을 기존 DB 보정용 alter(postgres-init/alters/2026-07-24-nego-card-scripts.sql)로도 제공(멱등)

검증: 시드 nego_cards VALUES 를 temp 테이블에 강제 평가 → 9행·전부 유효 jsonb. seed=alter=로컬 DB 일치.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-24 15:17:13 +09:00

44 lines
5.6 KiB
SQL

-- 2026-07-24 · 협상카드 스크립트 개정 + 미사용 카드 정리 (기존 DB 보정)
-- 출처: '260716_AIO2O 수정 및 요청사항_v2_memo check.xlsx' > '협상카드 수정' 시트(D열).
-- 내용 정본은 init-data.sql(신규/초기화 설치). 이 파일은 그와 동일한 최종본을 기존 DB 에 반영한다.
-- - 스크립트 개정: NGC-003(장기 관계 강조)·NGC-004(명분 제공)·NGC-007(예산 상한 안내)·NGC-008(시장가 근거 제시)
-- - 미사용 카드 soft-delete: NGC-006(총비용 가치 설명)·NGC-009(조건부 가격 조정)
-- 멱등: number 기준 UPDATE — 여러 번 실행해도 안전.
-- 적용: psql -h <host> -p <port> -U <user> -d <db> -f postgres-init/alters/2026-07-24-nego-card-scripts.sql
\connect negosium_db
UPDATE card.nego_cards SET script='귀사와의 협력을 진심으로 소중하게 생각하고 있습니다.
이번 거래가 단발성으로 끝나지 않고, 앞으로도 오랜 기간 협력하는 관계가 되기를 바랍니다. 그런 의미에서 양사가 모두 만족할 수 있는 합리적인 지점을 함께 찾고자 합니다.
귀사께서 조금만 더 협조해 주신다면, 당사 역시 장기적인 관점에서 최선을 다해 화답하겠습니다. 좋은 합의를 기대합니다.',
edit_script='[{"type": "paragraph", "children": [{"text": "귀사와의 협력을 진심으로 소중하게 생각하고 있습니다."}]}, {"type": "paragraph", "children": [{"text": "이번 거래가 단발성으로 끝나지 않고, "}, {"bold": true, "text": "앞으로도 오랜 기간 협력하는 관계"}, {"text": "가 되기를 바랍니다. 그런 의미에서 양사가 모두 만족할 수 있는 합리적인 지점을 함께 찾고자 합니다."}]}, {"type": "paragraph", "children": [{"text": "귀사께서 조금만 더 협조해 주신다면, 당사 역시 장기적인 관점에서 최선을 다해 화답하겠습니다. 좋은 합의를 기대합니다."}]}]'::jsonb, updated_at=now()
WHERE number='NGC-003' AND deleted=false;
UPDATE card.nego_cards SET script='그동안 귀사께서 제공해주신 전문성과 경쟁력에 감사드립니다.
이번 합의는 귀사가 일방적으로 양보하는 것이 아니라, 양사가 장기적 협력을 위해 함께 내린 전략적 결정으로 이해해 주시면 감사하겠습니다. 당사 역시 이번 합의를 귀사와의 신뢰를 보여주는 기회로 삼겠습니다.
서로의 입장을 존중하는 선에서 원만하게 마무리할 수 있기를 바랍니다.',
edit_script='[{"type": "paragraph", "children": [{"text": "그동안 귀사께서 제공해주신 전문성과 경쟁력에 감사드립니다."}]}, {"type": "paragraph", "children": [{"text": "이번 합의는 귀사가 일방적으로 양보하는 것이 아니라, "}, {"bold": true, "text": "양사가 장기적 협력을 위해 함께 내린 전략적 결정"}, {"text": "으로 이해해 주시면 감사하겠습니다. 당사 역시 이번 합의를 귀사와의 신뢰를 보여주는 기회로 삼겠습니다."}]}, {"type": "paragraph", "children": [{"text": "서로의 입장을 존중하는 선에서 원만하게 마무리할 수 있기를 바랍니다."}]}]'::jsonb, updated_at=now()
WHERE number='NGC-004' AND deleted=false;
UPDATE card.nego_cards SET script='귀사와의 합의를 진심으로 바라고 있습니다.
다만 당사 내부 사정상 본 건에 희망 가능한 금액은 {anchoring_price}원(VAT별도)이 한계입니다. 이는 담당자 개인의 재량을 넘어선것으로 너른 양해를 부탁드립니다.
해당 범위 내에서 귀사가 수용 가능한 지점을 함께 찾을 수 있기를 바랍니다.',
edit_script='[{"type": "paragraph", "children": [{"text": "귀사와의 합의를 진심으로 바라고 있습니다."}]}, {"type": "paragraph", "children": [{"text": "다만 당사 내부 사정상 본 건에 희망 가능한 금액은 "}, {"name": "anchoring_price", "type": "variable", "label": "앵커링가격(고객사 하한)", "style": {"bold": true, "color": "red"}, "suffix": "원(VAT별도)", "children": [{"text": ""}]}, {"bold": true, "text": "이 한계입니다."}, {"text": " 이는 담당자 개인의 재량을 넘어선것으로 너른 양해를 부탁드립니다."}]}, {"type": "paragraph", "children": [{"text": "해당 범위 내에서 귀사가 수용 가능한 지점을 함께 찾을 수 있기를 바랍니다."}]}]'::jsonb, updated_at=now()
WHERE number='NGC-007' AND deleted=false;
UPDATE card.nego_cards SET script='인터넷 시장 조사 결과, 동종 업계의 유사 거래에서도 본 건과 비슷한 사양은 {internet_lowest_price}원(VAT별도) 안팎에서 거래되고 있습니다.
특정 업체만의 기준이 아니라 업계 전반의 관행에 근거한 가격인 만큼, 합리적으로 검토해 주시기를 부탁드립니다.',
edit_script='[{"type": "paragraph", "children": [{"text": "인터넷 시장 조사 결과, 동종 업계의 유사 거래에서도 본 건과 비슷한 사양은 "}, {"name": "internet_lowest_price", "type": "variable", "label": "인터넷 최저가", "style": {"bold": true, "color": "red"}, "suffix": "원(VAT별도)", "children": [{"text": ""}]}, {"text": " 안팎에서 거래되고 있습니다."}]}, {"type": "paragraph", "children": [{"text": "특정 업체만의 기준이 아니라 업계 전반의 관행에 근거한 가격인 만큼, 합리적으로 검토해 주시기를 부탁드립니다."}]}]'::jsonb, updated_at=now()
WHERE number='NGC-008' AND deleted=false;
-- 미사용 카드 정리(soft-delete)
UPDATE card.nego_cards SET deleted=true, updated_at=now()
WHERE number IN ('NGC-006','NGC-009') AND deleted=false;