mirror of
https://github.com/Dvorinka/SpotifyRecAlg.git
synced 2026-06-04 04:23:02 +00:00
44 lines
1.8 KiB
SQL
44 lines
1.8 KiB
SQL
-- name: GetProviderCache :one
|
|
select provider, item_type, item_id, market, payload, fetched_at, expires_at, coalesce(last_error, '') as last_error
|
|
from provider_cache
|
|
where provider = $1 and item_type = $2 and item_id = $3 and market = $4;
|
|
|
|
-- name: UpsertProviderCache :exec
|
|
insert into provider_cache (provider, item_type, item_id, market, payload, fetched_at, expires_at, last_error)
|
|
values ($1, $2, $3, $4, $5::jsonb, $6, $7, nullif($8, ''))
|
|
on conflict (provider, item_type, item_id, market) do update set
|
|
payload = excluded.payload,
|
|
fetched_at = excluded.fetched_at,
|
|
expires_at = excluded.expires_at,
|
|
last_error = excluded.last_error;
|
|
|
|
-- name: ProviderCacheStats :one
|
|
select count(*)::bigint as entries,
|
|
count(*) filter (where expires_at > now())::bigint as fresh_entries,
|
|
count(*) filter (where expires_at <= now())::bigint as stale_entries
|
|
from provider_cache;
|
|
|
|
-- name: CreateImportJob :exec
|
|
insert into import_jobs (id, provider, source_type, source_value, market, status, imported_tracks, updated_tracks, skipped, warnings, started_at)
|
|
values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10::jsonb, $11);
|
|
|
|
-- name: FinishImportJob :exec
|
|
update import_jobs
|
|
set status = $2,
|
|
imported_tracks = $3,
|
|
updated_tracks = $4,
|
|
skipped = $5,
|
|
warnings = $6::jsonb,
|
|
finished_at = $7
|
|
where id = $1;
|
|
|
|
-- name: UpsertTrackEnrichment :exec
|
|
insert into track_enrichment (track_id, provider, musicbrainz_recording_id, musicbrainz_artist_id, isrc, payload, updated_at)
|
|
values ($1, $2, $3, $4, $5, $6::jsonb, $7)
|
|
on conflict (track_id, provider) do update set
|
|
musicbrainz_recording_id = excluded.musicbrainz_recording_id,
|
|
musicbrainz_artist_id = excluded.musicbrainz_artist_id,
|
|
isrc = excluded.isrc,
|
|
payload = excluded.payload,
|
|
updated_at = excluded.updated_at;
|