45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
"""Movie application DTOs."""
|
|
|
|
from dataclasses import dataclass
|
|
|
|
|
|
@dataclass
|
|
class SearchMovieResponse:
|
|
"""Response from searching for a movie."""
|
|
|
|
status: str
|
|
imdb_id: str | None = None
|
|
title: str | None = None
|
|
media_type: str | None = None
|
|
tmdb_id: int | None = None
|
|
overview: str | None = None
|
|
release_date: str | None = None
|
|
vote_average: float | None = None
|
|
error: str | None = None
|
|
message: str | None = None
|
|
|
|
def to_dict(self):
|
|
"""Convert to dict for agent compatibility."""
|
|
result = {"status": self.status}
|
|
|
|
if self.error:
|
|
result["error"] = self.error
|
|
result["message"] = self.message
|
|
else:
|
|
if self.imdb_id:
|
|
result["imdb_id"] = self.imdb_id
|
|
if self.title:
|
|
result["title"] = self.title
|
|
if self.media_type:
|
|
result["media_type"] = self.media_type
|
|
if self.tmdb_id:
|
|
result["tmdb_id"] = self.tmdb_id
|
|
if self.overview:
|
|
result["overview"] = self.overview
|
|
if self.release_date:
|
|
result["release_date"] = self.release_date
|
|
if self.vote_average:
|
|
result["vote_average"] = self.vote_average
|
|
|
|
return result
|