Skip to content

Story: 원가 히스토리 관리 모달 UI

메타

항목
Story IDE-03-S-04
EpicE-03 원가 히스토리
상태draft
우선순위P0
규모L
담당 개발자FE (수민님)

사용자 스토리

As a 셀러, I want 원가 히스토리를 관리하는 모달 UI, So that 기간별 원가를 손쉽게 조회/추가/수정할 수 있다.


수락 기준 (Acceptance Criteria)

AC-01: 모달 기본 표시

항목내용
Given매입원가 테이블에서 히스토리 아이콘 클릭
When모달 오픈
Then상품명, 현재 원가, 원가 이력 목록 표시

UI 요소:

┌─────────────────────────────────────────────────────────────────────┐
│ 원가 관리                                                     [X]   │
│ 오뚜_그로스2 (8479697209)                                           │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  현재 적용 원가: 25,800원 (2026-01-12 ~)                           │
│                                                                     │
│  ─── 원가 이력 ───                                                  │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │ 적용 기간              │ 원가      │                        │   │
│  ├────────────────────────┼───────────┼────────────────────────┤   │
│  │ 2026-01-12 ~ 현재     │ 25,800원  │ [수정]                 │   │
│  │ 2025-12-15 ~ 01-11    │ 14,520원  │ [수정]                 │   │
│  │ 2025-11-01 ~ 12-14    │ 12,000원  │ [수정]                 │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                                                     │
│  ─── 새 원가 추가 ───                                               │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │ 적용 시작일   [2026-01-27 📅]                               │   │
│  │ 원가         [28,000    ] 원                                │   │
│  │                                           [추가하기]        │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                                                     │
│  ℹ️ 해당 기간의 주문은 이 원가로 순이익이 계산됩니다                │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

AC-02: 원가 이력 목록 표시

항목내용
Given모달 오픈
When원가 이력 데이터 로드 완료
Then최신순으로 이력 목록 표시 (적용 기간, 원가, 수정 버튼)

상세 스펙:

  • 최신 이력 상단 표시 (역순)
  • 현재 적용 중인 이력 강조 표시
  • 적용 기간: "YYYY-MM-DD ~ MM-DD" 또는 "~ 현재"

AC-03: 새 원가 추가

항목내용
Given새 원가 폼 입력 (시작일, 원가)
When[추가하기] 클릭
ThenAPI 호출 → 성공 시 이력 목록 갱신

상세 스펙:

  • 시작일: DatePicker, 기본값 오늘
  • 원가: 숫자 입력, 양수 검증
  • 로딩 상태 표시
  • 성공/실패 토스트 메시지

AC-04: 기존 이력 수정

항목내용
Given이력 목록에서 [수정] 클릭
When인라인 편집 모드 전환
Then원가, 시작일, 종료일 수정 가능

UI 요소 (인라인 편집 모드):

│  │ [2025-12-15 📅] ~ [01-11 📅] │ [15,000 ] 원 │ [저장][취소] │   │

상세 스펙:

  • 현재 적용 중인 이력: 종료일 수정 불가 (~ 현재 고정)
  • 수정 완료 시 인접 이력 기간 자동 조정 (API 응답 반영)

AC-05: 에러 처리 및 검증

항목내용
Given잘못된 입력 (음수, 기간 역전 등)
When저장 시도
Then에러 메시지 표시, 저장 차단

검증 항목:

  • 원가: 양수 필수
  • 시작일: 종료일보다 이전
  • 기간 중복: 경고 + 자동 조정 안내

태스크 분해

Task 1: 모달 기본 구조 AC-01

  • [ ] 1.1: PurchaseHistoryModal 컴포넌트 생성
  • [ ] 1.2: 상품 정보 헤더 영역
  • [ ] 1.3: 현재 적용 원가 표시

Task 2: 원가 이력 목록 AC-02

  • [ ] 2.1: 이력 테이블 컴포넌트
  • [ ] 2.2: API 연동 (useQuery)
  • [ ] 2.3: 로딩/빈 상태 처리

Task 3: 새 원가 추가 폼 AC-03

  • [ ] 3.1: 시작일 DatePicker
  • [ ] 3.2: 원가 입력 필드
  • [ ] 3.3: 추가 API 연동 (useMutation)
  • [ ] 3.4: 성공/실패 처리

Task 4: 기존 이력 수정 AC-04

  • [ ] 4.1: 인라인 편집 모드 토글
  • [ ] 4.2: 날짜/원가 편집 필드
  • [ ] 4.3: 수정 API 연동
  • [ ] 4.4: 낙관적 업데이트 또는 refetch

Task 5: 검증 및 에러 처리 AC-05

  • [ ] 5.1: 입력 검증 로직 (Zod/Yup)
  • [ ] 5.2: 에러 메시지 UI
  • [ ] 5.3: 기간 중복 경고

Task 6: 마무리

  • [ ] 6.1: 접근성 (키보드 네비게이션, aria)
  • [ ] 6.2: PR 생성

Dev Notes (AI Agent 최적화)

영향 받는 소스 트리

src/
├── app/
│   └── dashboard/
│       └── purchase/
│           └── components/
│               └── PurchaseHistoryModal.tsx   # 🆕 신규 생성
├── components/
│   └── ui/
│       └── DateRangePicker.tsx                # 재사용 또는 신규
├── hooks/
│   └── usePurchaseHistory.ts                  # 🆕 신규 생성
└── types/
    └── purchase.ts                            # 🔧 타입 추가

사용 라이브러리 (기존 프로젝트 확인 필요)

  • DatePicker: react-datepicker 또는 shadcn/ui
  • Form 검증: react-hook-form + zod
  • API: @tanstack/react-query

충돌 감지

항목상태설명
기존 코드 충돌✅ 없음신규 컴포넌트
스타일 충돌🟡 확인필요기존 모달 스타일과 일관성

의존성

의존설명상태
E-03-S-03원가 히스토리 CRUD API선행 필요

Dev Agent Record

항목
생성 AgentClaude Opus 4.5
생성일2026-01-27
마지막 수정2026-01-27
검증자-

검증 결과: 🔄 PENDING (PO 승인 대기) 검증일: -


생성일: 2026-01-27마지막 수정: 2026-01-27

장사왕 Product Team