9ca31e45e0
- Fix circular dependencies in agent/tools - Migrate from custom JSON to OpenAI tool calls format - Add async streaming (step_stream, complete_stream) - Simplify prompt system and remove token counting - Add 5 new API endpoints (/health, /v1/models, /api/memory/*) - Add 3 new tools (get_torrent_by_index, add_torrent_by_index, set_language) - Fix all 500 tests and add coverage config (80% threshold) - Add comprehensive docs (README, pytest guide) BREAKING: LLM interface changed, memory injection via get_memory()
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
|