"""Release Artist Model.""" from sqlalchemy import Column from sqlalchemy import Integer from sqlalchemy import String from ows_product_physical.connector import mysql class ReleaseArtist(mysql.BaseModel): """Release Artist model.""" __tablename__ = 'release_artist' release_artist_id = Column( Integer, primary_key=True, autoincrement=True, nullable=False) release_id = Column(Integer, nullable=False) upc = Column(Integer, nullable=False) artist_name = Column(String, nullable=False) def to_dict(self): """Dict-ified row from the `release_artist` table.""" return { 'release_artist_id': self.release_artist_id, 'release_id': self.release_id, 'upc': self.upc, 'artist_name': self.artist_name } def create(values, session): """Create a release_artist entry. Args: values (dict): dictionary of values session: database connection object """ release_artist = ReleaseArtist(**values) session.add(release_artist) session.flush() def update(values, product_id, session): """Update a release_artist entry. Args: values (dict): dictionary of values product_id (int): id of product to update the release artist for session: database connection object """ session.query(ReleaseArtist) \ .filter(ReleaseArtist.release_id == product_id) \ .update(values) def delete(product_id, session): """Delete a release_artist entry. Args: product_id (int): id of product to delete the release artist for session: database connection object """ session.query(ReleaseArtist) \ .filter(ReleaseArtist.release_id == product_id) \ .delete()