"""SQLAlchemy model for the project table.""" from sqlalchemy import update from sqlalchemy.dialects.mysql import INTEGER from sqlalchemy.orm import Mapped, Session, mapped_column from contributor.connectors.mysql import BaseModel class Project(BaseModel): """Project model.""" __tablename__ = "project" project_id: Mapped[int] = mapped_column( INTEGER(unsigned=True), primary_key=True, autoincrement=True, ) vendor_id: Mapped[int] = mapped_column(INTEGER(unsigned=True), nullable=False) artist_id: Mapped[int] = mapped_column(INTEGER(unsigned=True), nullable=False) def reassign_contributor_projects( session: Session, contributor_artist_info_id: int, duplicate_artist_info_id: int, ) -> None: """ Reassign all projects from duplicate_artist_info_id to contributor_artist_info_id. """ session.execute( update(Project) .where(Project.artist_id == duplicate_artist_info_id) .values(artist_id=contributor_artist_info_id) ) session.commit()