테마
Story: 쿠폰 어드민 CRUD
메타
| 항목 | 값 |
|---|---|
| Story ID | E-07-S-02 |
| Epic | E-07 쿠폰 & 추천인 코드 |
| 상태 | ready-for-dev |
| 우선순위 | P0 |
| 규모 | M |
| 담당 개발자 | FE |
사용자 스토리
As a 운영팀,
I want 쿠폰을 생성하고 관리하고 싶다,
So that 마케팅 캠페인을 실행할 수 있다.
수락 기준 (Acceptance Criteria)
AC-01: 쿠폰 목록 조회
| 항목 | 내용 |
|---|---|
| Given | 어드민 쿠폰 관리 페이지에서 |
| When | 쿠폰 목록을 조회하면 |
| Then | 코드, 유형, 할인 정보, 사용 현황, 상태가 표시된다 |
AC-02: 쿠폰 생성
| 항목 | 내용 |
|---|---|
| Given | 쿠폰 생성 모달에서 |
| When | 필수 정보를 입력하고 저장하면 |
| Then | 쿠폰이 생성되고 목록에 추가된다 |
AC-03: 쿠폰 상태 필터
| 항목 | 내용 |
|---|---|
| Given | 쿠폰 목록에서 |
| When | 상태 필터(전체/활성/만료/소진)를 선택하면 |
| Then | 해당 상태의 쿠폰만 표시된다 |
AC-04: 쿠폰 비활성화
| 항목 | 내용 |
|---|---|
| Given | 활성 쿠폰에서 |
| When | 비활성화 버튼을 클릭하면 |
| Then | 쿠폰이 비활성화되어 더 이상 사용 불가 |
태스크 분해
Task 1: 쿠폰 목록 페이지
- [ ] 1.1: /admin/coupons 라우트 생성
- [ ] 1.2: 쿠폰 테이블 컴포넌트
- 코드, 유형, 할인, 사용현황, 상태
- [ ] 1.3: 상태 필터 탭 (전체/활성/만료/소진)
- [ ] 1.4: 검색 기능 (코드로 검색)
Task 2: 쿠폰 생성 모달
- [ ] 2.1: 쿠폰 생성 폼
- 코드, 유형 선택, 할인 정보
- 유효기간, 사용 제한
- 적용 조건 (최소 금액, 첫결제 전용)
- [ ] 2.2: 유형별 필드 동적 표시
- FIXED: 할인 금액
- PERCENT: 할인 비율 + 최대 할인액
- TRIAL_EXT: 연장 일수
- [ ] 2.3: 코드 중복 검사 (debounce)
Task 3: 쿠폰 상세/수정
- [ ] 3.1: 쿠폰 상세 모달
- [ ] 3.2: 쿠폰 수정 기능 (유효기간, 활성 상태만)
- [ ] 3.3: 쿠폰 사용 이력 조회
화면 설계
쿠폰 목록
┌────────────────────────────────────────────────────────────┐
│ 쿠폰 관리 [+ 쿠폰 생성] │
├────────────────────────────────────────────────────────────┤
│ │
│ [전체] [활성] [만료] [소진] 🔍 검색 │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 코드 유형 할인 사용현황 상태 │ │
│ ├─────────────────────────────────────────────────────┤ │
│ │ FIRST100 정액 109,900원 45/∞ 🟢 활성 │ │
│ │ HALF50 정률 50% 12/100 🟢 활성 │ │
│ │ MIGRATE10 정률 10% 0/∞ 🟢 활성 │ │
│ │ LAUNCH 정액 110,000원 50/50 ⚫ 소진 │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└────────────────────────────────────────────────────────────┘이벤트 로깅
| 이벤트 | 파라미터 |
|---|---|
admin_coupon_created | coupon_code, coupon_type, admin_id |
admin_coupon_updated | coupon_code, changed_fields |
admin_coupon_deactivated | coupon_code, admin_id |
생성일: 2026-01-20
