"""ISRC logic.""" from oto import response from backend.models import isrc as isrc_model from backend.models.track_persister import TrackPersister def is_isrc_in_use(track_type, isrc): """Determine if an isrc is in use.""" track = TrackPersister.get_by_isrc_and_type(isrc, track_type) used_by_product_id = None if track: used_by_product_id = track['product_id'] return response.Response( message={'used': bool(track), 'used_by_product_id': used_by_product_id} ) def get_isrc_usage_stats(product_id): """Get ISRC usage stats.""" return isrc_model.get_isrc_usage_stats(product_id) def get_tracks_with_isrc_logic(isrc, limit, offset): """Get a paginated list of tracks with the same ISRC. Args: isrc (str): The ISRC to search for. limit (int): The number of tracks to return per page. offset (int): The offset to return a page of results from. Returns: dict: A standard pagination object with pagination.total_records and items[]. """ return isrc_model.get_tracks_with_isrc(isrc, limit, offset)