feat(packs-lab): 4 라우트 — sign-link, upload, list, delete (HMAC + supabase)

This commit is contained in:
2026-05-02 08:52:24 +09:00
parent 096e291ed8
commit eb547a0367
3 changed files with 254 additions and 0 deletions

39
packs-lab/app/models.py Normal file
View File

@@ -0,0 +1,39 @@
"""Pydantic schemas for packs API."""
from datetime import datetime
from typing import Literal
from pydantic import BaseModel, Field
PackTier = Literal["starter", "pro", "master"]
class SignLinkRequest(BaseModel):
"""Vercel → backend: 사용자 다운로드 링크 발급 요청."""
file_path: str = Field(..., description="NAS 절대 경로 — pack_files.file_path 그대로")
expires_in_seconds: int = Field(default=14400, description="공유 링크 만료 (기본 4시간)")
class SignLinkResponse(BaseModel):
url: str
expires_at: datetime
class UploadResponse(BaseModel):
file_id: str # uuid
file_path: str
filename: str
size_bytes: int
min_tier: PackTier
label: str
uploaded_at: datetime
class PackFileItem(BaseModel):
id: str
min_tier: PackTier
label: str
file_path: str
filename: str
size_bytes: int
sort_order: int
uploaded_at: datetime