"""Neo4j queries for track contributors and participations.""" from typing import Any from ddtrace import tracer from neo4j import Session from pydantic import UUID4 from contributor.queries.neo4j import track_participations get_track_artist_participations_by_track_ids = ( track_participations.get_track_artist_participations_by_track_ids ) get_track_participations_by_label_participant_uuid = ( track_participations.get_track_participations_by_label_participant_uuid ) get_track_writer_participations_by_track_ids = ( track_participations.get_track_writer_participations_by_track_ids ) @tracer.wrap() def get_by_track_id( session: Session, track_id: int, profile_ids: list[int], identity_uuid: UUID4 | None = None, is_admin: bool = False, ) -> dict[str, Any] | None: return track_participations.get_by_track_id( session=session, track_id=track_id, identity_uuid=identity_uuid, profile_ids=profile_ids, is_admin=is_admin, ) @tracer.wrap() def get_by_track_ids( session: Session, track_ids: list[int], profile_ids: list[int], identity_uuid: UUID4 | None = None, is_admin: bool = False, ) -> list[dict[str, Any]]: return track_participations.get_by_track_ids( session=session, track_ids=track_ids, identity_uuid=identity_uuid, profile_ids=profile_ids, is_admin=is_admin, ) @tracer.wrap() def get_by_label_participant_uuid( session: Session, uuid: str, profile_ids: list[int], identity_uuid: UUID4 | None = None, is_admin: bool = False, ) -> dict[str, Any] | None: return track_participations.get_by_label_participant_uuid( session=session, uuid=uuid, identity_uuid=identity_uuid, profile_ids=profile_ids, is_admin=is_admin, )