"""Model representing a track.""" from oto import response import sqlalchemy from product_digital.connectors import mysql from product_digital.models import ows_track class Track(mysql.BaseModel): """Track model in art_relations.""" __tablename__ = 'track' id = sqlalchemy.Column( # noqa sqlalchemy.Integer, primary_key=True, autoincrement=True, nullable=False) release_id = sqlalchemy.Column(sqlalchemy.Integer, nullable=False) meta_language = sqlalchemy.Column(sqlalchemy.String(8)) def to_dict(self): """Get a dict representation.""" return { 'id': self.id, 'release_id': self.release_id, 'meta_language': self.meta_language, } @mysql.db_session_wrap def _get_tracks(product_id, session): """Get track data.""" tracks = session.query(Track).filter(Track.release_id == product_id) return tracks def delete_all_tracks(product_id): """Deletes all tracks for a given product. Args: product_id (int): id of the product to delete tracks for """ track_ids = ','.join( str(track.id) for track in _get_tracks(product_id) ) if not track_ids: return response.Response(message={'status': 'ok'}) ows_track_response = ows_track.delete_tracks_by_product_id( product_id, track_ids) if not ows_track_response: return ows_track_response return response.Response(message={'status': 'ok'})