Files
musicseerr/backend/api/v1/schemas/requests_page.py
T
2026-04-03 15:53:00 +01:00

75 lines
1.6 KiB
Python

from datetime import datetime
from infrastructure.msgspec_fastapi import AppStruct
class StatusMessage(AppStruct):
title: str | None = None
messages: list[str] = []
class ActiveRequestItem(AppStruct):
musicbrainz_id: str
artist_name: str
album_title: str
requested_at: datetime
status: str
artist_mbid: str | None = None
year: int | None = None
cover_url: str | None = None
progress: float | None = None
eta: datetime | None = None
size: float | None = None
size_remaining: float | None = None
download_status: str | None = None
download_state: str | None = None
status_messages: list[StatusMessage] | None = None
error_message: str | None = None
lidarr_queue_id: int | None = None
quality: str | None = None
protocol: str | None = None
download_client: str | None = None
class RequestHistoryItem(AppStruct):
musicbrainz_id: str
artist_name: str
album_title: str
requested_at: datetime
status: str
artist_mbid: str | None = None
year: int | None = None
cover_url: str | None = None
completed_at: datetime | None = None
in_library: bool = False
class ActiveRequestsResponse(AppStruct):
items: list[ActiveRequestItem]
count: int
class RequestHistoryResponse(AppStruct):
items: list[RequestHistoryItem]
total: int
page: int
page_size: int
total_pages: int
class CancelRequestResponse(AppStruct):
success: bool
message: str
class RetryRequestResponse(AppStruct):
success: bool
message: str
class ClearHistoryResponse(AppStruct):
success: bool
class ActiveCountResponse(AppStruct):
count: int