from sqlalchemy import Column, Integer, String, Text, ForeignKey, Date from sqlalchemy.orm import relationship from app.db.base_class import Base class Character(Base): id = Column(Integer, primary_key=True, index=True) name = Column(String(255), index=True, nullable=False) role = Column(String(50), nullable=True) # Main, Supporting, Antagonist description = Column(Text, nullable=True) voice_actor = Column(String(255), nullable=True) image_url = Column(String(255), nullable=True) anime_id = Column(Integer, ForeignKey("anime.id", ondelete="CASCADE"), nullable=False) # Additional character details age = Column(String(50), nullable=True) # Can be a range or "Unknown" gender = Column(String(50), nullable=True) birth_date = Column(Date, nullable=True) height = Column(String(50), nullable=True) # in cm weight = Column(String(50), nullable=True) # in kg blood_type = Column(String(10), nullable=True) popularity_rank = Column(Integer, nullable=True) # Relationships anime = relationship("Anime", back_populates="characters")