refactor: Update response types to use common schemas across API endpoints
Some checks failed
Backend CI / test (push) Failing after 3m51s

This commit is contained in:
JSC
2025-07-31 10:40:03 +02:00
parent dc372b961e
commit c13285ca4e
7 changed files with 101 additions and 37 deletions

View File

@@ -10,7 +10,13 @@ from .auth import (
UserRegisterRequest,
UserResponse,
)
from .player import PlayerModeRequest, PlayerSeekRequest, PlayerVolumeRequest
from .common import HealthResponse, MessageResponse, StatusResponse
from .player import (
PlayerModeRequest,
PlayerSeekRequest,
PlayerStateResponse,
PlayerVolumeRequest,
)
from .playlist import (
PlaylistAddSoundRequest,
PlaylistCreateRequest,
@@ -31,9 +37,14 @@ __all__ = [
"UserLoginRequest",
"UserRegisterRequest",
"UserResponse",
# Common schemas
"HealthResponse",
"MessageResponse",
"StatusResponse",
# Player schemas
"PlayerModeRequest",
"PlayerSeekRequest",
"PlayerStateResponse",
"PlayerVolumeRequest",
# Playlist schemas
"PlaylistAddSoundRequest",

21
app/schemas/common.py Normal file
View File

@@ -0,0 +1,21 @@
"""Common response schemas."""
from pydantic import BaseModel, Field
class MessageResponse(BaseModel):
"""Generic message response."""
message: str = Field(description="Response message")
class StatusResponse(BaseModel):
"""Generic status response."""
status: str = Field(description="Status message")
class HealthResponse(BaseModel):
"""Health check response."""
status: str = Field(description="Health status")

View File

@@ -1,5 +1,7 @@
"""Player schemas."""
from typing import Any
from pydantic import BaseModel, Field
from app.services.player import PlayerMode
@@ -21,3 +23,24 @@ 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_ms: int = Field(description="Current position in milliseconds")
duration_ms: 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",
)

View File

@@ -1,6 +1,6 @@
"""Playlist schemas."""
from pydantic import BaseModel
from pydantic import BaseModel, Field
from app.models.playlist import Playlist
from app.models.sound import Sound