"""SQLAlchemy model for the track_contributors table.""" from datetime import datetime from sqlalchemy import DateTime, func from sqlalchemy.dialects.mysql import INTEGER from sqlalchemy.orm import Mapped, mapped_column from contributor.connectors.mysql import BaseModel class TrackContributor(BaseModel): """Track contributor model.""" __tablename__ = "track_contributors" id: Mapped[int] = mapped_column( INTEGER(unsigned=True), primary_key=True, autoincrement=True, ) track_id: Mapped[int] = mapped_column(INTEGER(unsigned=True), nullable=False) contributor_id: Mapped[int] = mapped_column(INTEGER(unsigned=True), nullable=False) contributor_role_id: Mapped[int] = mapped_column( INTEGER(unsigned=True), nullable=False ) sequence_number: Mapped[int] = mapped_column( INTEGER(unsigned=True), nullable=False, default=0 ) created_at: Mapped[datetime] = mapped_column( DateTime, nullable=False, default=func.now() ) updated_at: Mapped[datetime] = mapped_column( DateTime, nullable=False, default=func.now(), onupdate=func.now() )