Skip to content

feat(admin): superadmin brand picker — /admin/brands 라우터#202

Open
bat1120 wants to merge 1 commit into
devfrom
IM3-superadmin-brand-picker
Open

feat(admin): superadmin brand picker — /admin/brands 라우터#202
bat1120 wants to merge 1 commit into
devfrom
IM3-superadmin-brand-picker

Conversation

@bat1120

@bat1120 bat1120 commented May 6, 2026

Copy link
Copy Markdown
Contributor

Summary

  • 슈퍼어드민이 모든 가맹본부 brand 를 시뮬 입력 단계에서 자유롭게 선택 가능하도록 brand picker 데이터 제공
  • GET /admin/brands — 시뮬 가능 10종 (CS100001~CS100010) brand 통합 목록 (FTC + biz_brand_mapping UNION, 검색·필터·페이징)
  • GET /admin/brands/industries — 시뮬 가능 업종 메타
  • require_superadmin dependency — master/manager 403, role whitelist 강제

Test plan

  • pytest tests/test_admin_brands.py 15/15 PASS
  • ruff check / ruff format clean
  • E2E (real DB): 14,571 brand 노출, 커피 6,850 / 검색 '스타' 225 확인
  • Reviewer: superadmin 토큰으로 GET /admin/brands?q=스타, GET /admin/brands?industry=커피 동작 확인
  • Reviewer: master 토큰 → 403 확인

다음 단계 (별도 PR)

  1. _validate_and_resolve_brand (IM3-263 머지 후) 에 superadmin bypass 3줄 추가
  2. Frontend brand picker UI (typeahead 모달, role==superadmin 시 노출)

관련 문서

  • spec: docs/issues/2026-05-06-superadmin-brand-picker.md
  • 의존: 33afb1aa feat(auth): superadmin role

🤖 Generated with Claude Code

슈퍼어드민이 모든 가맹본부 brand 를 시뮬 가능하도록 picker 데이터 제공.

- backend/src/api/admin_brands.py 신규
  - GET /admin/brands — 시뮬 가능 10종 (CS100001~CS100010) 의 brand 통합 목록
    소스: ftc_brand_franchise UNION biz_brand_mapping
    쿼리: q (brand/corp ILIKE), industry (canonical key), page/size (최대 200)
    DISTINCT ON (brand_name, corp_name) 으로 중복 제거 (biz 우선)
  - GET /admin/brands/industries — 시뮬 가능 업종 메타 (label, cs_code)
  - require_superadmin dependency: master/manager 403
- backend/src/main.py: include_router 등록
- tests/test_admin_brands.py: 권한·필터·페이징·매핑 15 케이스
- docs/issues/2026-05-06-superadmin-brand-picker.md: spec + 다음 단계
  (1) WIP 머지 후 _validate_and_resolve_brand bypass
  (2) 프론트 brand picker UI

검증: ruff clean, pytest 15/15 PASS, E2E (real DB) 14571 brand 노출 확인.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant