Automated Action 4d6c2e1778 Implement Anime Information API with FastAPI and SQLite
- Create project structure and dependencies
- Set up SQLAlchemy models for anime, genres, and their relationships
- Implement CRUD operations for all models
- Set up FastAPI endpoints for managing anime and genres
- Add health check endpoint
- Configure Alembic for database migrations
- Add data seeding capability
- Update README with project information
2025-05-17 21:37:16 +00:00

46 lines
1.1 KiB
Python

from typing import Optional, List
from datetime import date
from pydantic import BaseModel, Field
from app.schemas.genre import Genre
class AnimeBase(BaseModel):
title: str
alternative_titles: Optional[str] = None
synopsis: Optional[str] = None
episodes: Optional[int] = None
status: Optional[str] = None
aired_from: Optional[date] = None
aired_to: Optional[date] = None
duration: Optional[str] = None
rating: Optional[str] = None
score: Optional[float] = Field(None, ge=0, le=10)
ranked: Optional[int] = None
popularity: Optional[int] = None
studio: Optional[str] = None
source: Optional[str] = None
image_url: Optional[str] = None
class AnimeCreate(AnimeBase):
genre_ids: Optional[List[int]] = []
class AnimeUpdate(AnimeBase):
title: Optional[str] = None
genre_ids: Optional[List[int]] = None
class Anime(AnimeBase):
id: int
genres: Optional[List[Genre]] = []
class Config:
from_attributes = True
class AnimeSearchResults(BaseModel):
results: List[Anime]
total: int
page: int
size: int