Files
sdb2-backend/app/schemas/player.py
2025-07-31 21:33:00 +02:00

47 lines
1.3 KiB
Python

"""Player schemas."""
from typing import Any
from pydantic import BaseModel, Field
from app.services.player import PlayerMode
class PlayerSeekRequest(BaseModel):
"""Request model for seek operation."""
position: int = Field(ge=0, description="Position in milliseconds")
class PlayerVolumeRequest(BaseModel):
"""Request model for volume control."""
volume: int = Field(ge=0, le=100, description="Volume level (0-100)")
class PlayerModeRequest(BaseModel):
"""Request model for mode change."""
mode: PlayerMode = Field(description="Playback mode")
class PlayerStateResponse(BaseModel):
"""Response model for player state."""
status: str = Field(description="Player status (playing, paused, stopped)")
current_sound: dict[str, Any] | None = Field(
None, description="Current sound information"
)
playlist: dict[str, Any] | None = Field(
None, description="Current playlist information"
)
position: int = Field(description="Current position in milliseconds")
duration: int | None = Field(
None, description="Total duration in milliseconds",
)
volume: int = Field(description="Current volume (0-100)")
mode: str = Field(description="Current playback mode")
index: int | None = Field(
None, description="Current track index in playlist",
)