Skip to content

web(admin): raw-posts 검증 UI + hook + 타입 재생성 #342

@cocoyoon

Description

@cocoyoon

Part of #333.

Scope

admin에서 COMPLETED raw_post를 검증하는 UI를 구축.

Deliverables

  • 타입 재생성
    • `packages/web/lib/supabase/warehouse-types.ts` 삭제
    • `packages/web/lib/supabase/prod-types.ts` 신규 (prod 프로젝트 기반 `supabase gen types typescript`)
    • `packages/web/lib/supabase/assets-types.ts` 신규 (assets 프로젝트 기반)
    • `package.json` scripts에 `gen:types:prod` / `gen:types:assets`
  • `packages/web/lib/api/admin/raw-posts.ts`
    • `useRawPostsList({status, platform, source_id, limit, offset})`
    • `useVerifyRawPost()` (useMutation, onSuccess invalidate)
    • `useRawPostsStats()`
  • `packages/web/app/admin/raw-posts/page.tsx`
    • 탭: `COMPLETED`(기본) / `IN_PROGRESS` / `ERROR` / `VERIFIED`
    • 행: R2 썸네일 / caption / parse_result JSON(접힘) / 검증 버튼
    • 필터 querystring 동기화
  • Orval 재생성: `cargo run --bin dump_openapi` → `bun orval`
  • 환경변수 (만약 web에서 직접 assets 읽기 한다면): `NEXT_PUBLIC_ASSETS_DATABASE_API_URL`, `NEXT_PUBLIC_ASSETS_DATABASE_ANON_KEY`

Acceptance

  • `bun run typecheck` 통과
  • `/admin/raw-posts` 접근 → COMPLETED 탭에서 cloud assets의 completed 항목 리스팅
  • 검증 버튼 → 로컬 prod `public.posts`에 새 포스트 생성 확인

Depends on

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions