Files
rehearshalhub/api/src/rehearsalhub/schemas/song.py
2026-04-08 15:10:52 +02:00

40 lines
1.0 KiB
Python
Executable File

import uuid
from datetime import datetime
from typing import Literal
from pydantic import BaseModel, ConfigDict
class SongCreate(BaseModel):
title: str
status: Literal["jam", "wip", "arranged", "recorded", "released"] = "jam"
notes: str | None = None
class SongUpdate(BaseModel):
title: str | None = None
status: Literal["jam", "wip", "arranged", "recorded", "released"] | None = None
notes: str | None = None
tags: list[str] | None = None
global_key: str | None = None
global_bpm: float | None = None
class SongRead(BaseModel):
model_config = ConfigDict(from_attributes=True)
id: uuid.UUID
band_id: uuid.UUID
session_id: uuid.UUID | None = None
title: str
status: str
tags: list[str] = []
global_key: str | None = None
global_bpm: float | None = None
notes: str | None = None
nc_folder_path: str | None = None
created_by: uuid.UUID | None = None
created_at: datetime
updated_at: datetime
latest_version_id: uuid.UUID | None = None
version_count: int = 0