diff --git a/src/server/database/models.py b/src/server/database/models.py index d8bcc60..228f0c4 100644 --- a/src/server/database/models.py +++ b/src/server/database/models.py @@ -13,7 +13,7 @@ from __future__ import annotations from datetime import datetime, timezone from enum import Enum -from typing import List, Optional +from typing import Any, Dict, List, Optional from sqlalchemy import Boolean, DateTime, ForeignKey, Index, Integer, String, Text, func from sqlalchemy.orm import Mapped, mapped_column, relationship, validates @@ -247,6 +247,21 @@ class AnimeSeries(Base, TimestampMixin): except ValueError: return sanitize_folder_name(self.key) + def to_dict(self) -> Dict[str, Any]: + """Convert to dictionary for cache serialization. + + Returns: + Dictionary with series data including episodeDict for + auto-download functionality. + """ + return { + "key": self.key, + "name": self.name, + "site": self.site, + "folder": self.folder, + "episodeDict": self.episodeDict, + } + class Episode(Base, TimestampMixin): """SQLAlchemy model for anime episodes.