- negotiation.chats 에 meta(JSONB) 추가 — 말풍선 표현 데이터(script/step/input_mode 등)
- 견적생성 실패 토스트를 result.code/desc + msg 규약대로 표시(HTTP 200·success=false 포함)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- 견적 목록에 대표 상품(세션 item) 조인 노출 → '대상 상품 확인 불가' 해소
(backend protocol/crud/service + orval 재생성 + front mapQuotation 매핑)
- 견적·협상카드 목록 클라이언트 페이지네이션 추가 (useClientPagination)
- 견적중단을 서버 stop_quotation 호출로 영속 처리(상태=견적마감)
- 신규 협상견적 라벨 발의→등록 통일
- 발의 위저드 카드선택에 협상/와일드 구분 뱃지 추가
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
QuotationCardData 에 number/edit_script/condition/memo 추가, card 카탈로그(nego/wild)
라이브 조인으로 채움. DB 컬럼 변경 없음(기존 카드 테이블 조인만 확장).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
POST /v1/item/image — SAS 토큰을 URL에 붙여 httpx PUT 으로 Azure Blob 업로드.
이미지 타입/용량 검증 + IMAGE_* 에러코드. config 에 azure_blob_base_url/sas/root 추가.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
item/supplier 의 POST upload-excel 스텁 라우트와 Res_ExcelUpload 프로토콜 제거.
프론트 엑셀 모달은 클라이언트 CSV 파싱+check-codes/create 로 도는 독립 기능이라 영향 없음.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- orval 실제 타입(ItemData/SupplierData/QuotationData/QuotationSettingData) 사용,
응답 봉투 과중첩(.data.data) 제거 → 목록 정상 렌더
- 배송형태(delivery_type) 자유텍스트 → 서버 /v1/enums 코드 select 로 전환
- orval 클라이언트 재생성 (enums 훅, companyData 등)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- item/supplier/quotation/quotation_setting CRUD·service·router 추가
- item protocol delivery_type str→int (ERD/스키마 SMALLINT 일치)
- DeliveryType enum + 한글 라벨, 공용 GET /v1/enums (도메인 코드 메타데이터)
- CompanyBrief → CompanyData 로 *Data 네이밍 통일
- CORS: WebServerConfig.client_url(단일) 도입 (config_models/router)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- 라우팅 react-router v7, 서버상태 TanStack Query
- orval 자동 생성 API 클라이언트(src/api/generated)
- 견적/상품/협력사/견적설정 페이지, shadcn UI, 토큰(tokens.css)
- 실행: 루트 docker compose (front :3001), README 그에 맞게 정리
- AI Studio 스캐폴드 잔재 제거(metadata.json, 중복 DESIGN_TOKENS.md), 타이틀 NegoData, vite.config 죽은코드 제거
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>