36 lines
634 B
Python
36 lines
634 B
Python
"""Playlist request/response schemas."""
|
|
|
|
import datetime as dt
|
|
import uuid
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class PlaylistOut(BaseModel):
|
|
id: uuid.UUID
|
|
name: str
|
|
description: str | None
|
|
owner_id: uuid.UUID
|
|
version: int
|
|
track_count: int
|
|
created_at: dt.datetime
|
|
|
|
|
|
class PlaylistCreate(BaseModel):
|
|
name: str
|
|
description: str | None = None
|
|
|
|
|
|
class PlaylistUpdate(BaseModel):
|
|
name: str | None = None
|
|
description: str | None = None
|
|
|
|
|
|
class PlaylistAddTrack(BaseModel):
|
|
track_id: uuid.UUID
|
|
position: float | None = None
|
|
|
|
|
|
class PlaylistReorder(BaseModel):
|
|
track_ids: list[uuid.UUID]
|