"""Logic for retrieving content metadata from art_relations database.""" from typing import List from src.common.connectors.art_relations import execute_query from src.logic import art_relations_queries from src.models.metadata import TrackParticipation def get_track_participations(product_id: int) -> List[TrackParticipation]: """Get track participations. Args: product_id: Product id. Returns: List of track participations. """ result = [] query_results = execute_query( art_relations_queries.TRACK_ARTISTS, {'product_id': product_id} ) for record in query_results: result.append( TrackParticipation( track_id=record['track_id'], participant_id=record['artist_id'], participant_name=record['artist_name'], participant_participated_as=record['artist_role'], ) ) query_results = execute_query( art_relations_queries.TRACK_WRITERS, {'product_id': product_id} ) for record in query_results: result.append( TrackParticipation( track_id=record['track_id'], participant_id=record['artist_id'], participant_name=record['artist_name'], participant_participated_as=record['artist_role'], ) ) return result