diff --git a/backend/sqlc/timedmetadata.sql.go b/backend/sqlc/timedmetadata.sql.go index 7eb783ab..31ba4c19 100644 --- a/backend/sqlc/timedmetadata.sql.go +++ b/backend/sqlc/timedmetadata.sql.go @@ -203,8 +203,8 @@ func (q *Queries) InsertTimedMetadata(ctx context.Context, arg InsertTimedMetada const getChaptesFromEpisode = `-- name: getChaptesFromEpisode :many SELECT - tm.id, - tm.type, + tm.id::uuid as id, + tm.type::text as type, tm.episode_id, tm.content_type, tm.song_id, @@ -217,8 +217,8 @@ SELECT COALESCE((SELECT json_object_agg(ts.languages_code, ts.description) FROM timedmetadata_translations ts WHERE ts.timedmetadata_id = tm.id), '{}')::json AS description, - tm.seconds, - tm.highlight, + tm.seconds::float4 as seconds, + tm.highlight::bool as highlight, tm.mediaitem_id, COALESCE(images.images, '{}'::json) AS images, COALESCE(( @@ -237,9 +237,10 @@ SELECT OR asset.id = mi.asset_id LIMIT 1 ), 0)::float as duration -FROM timedmetadata tm - LEFT JOIN public.episodes e on e.id = tm.episode_id - LEFT JOIN mediaitems mi ON (mi.id = tm.mediaitem_id) +FROM episodes e + LEFT JOIN mediaitems mi ON e.mediaitem_id = mi.id + LEFT JOIN timedmetadata tm ON + (mi.timedmetadata_from_asset AND tm.asset_id = mi.asset_id) OR (NOT mi.timedmetadata_from_asset AND e.id = tm.asset_id) LEFT JOIN ( SELECT simg.timedmetadata_id, diff --git a/queries/timedmetadata.sql b/queries/timedmetadata.sql index 2b066ac0..176a0ab6 100644 --- a/queries/timedmetadata.sql +++ b/queries/timedmetadata.sql @@ -117,8 +117,8 @@ DELETE FROM timedmetadata WHERE asset_id = @asset_id; -- name: getChaptesFromEpisode :many SELECT - tm.id, - tm.type, + tm.id::uuid as id, + tm.type::text as type, tm.episode_id, tm.content_type, tm.song_id, @@ -131,8 +131,8 @@ SELECT COALESCE((SELECT json_object_agg(ts.languages_code, ts.description) FROM timedmetadata_translations ts WHERE ts.timedmetadata_id = tm.id), '{}')::json AS description, - tm.seconds, - tm.highlight, + tm.seconds::float4 as seconds, + tm.highlight::bool as highlight, tm.mediaitem_id, COALESCE(images.images, '{}'::json) AS images, COALESCE(( @@ -151,9 +151,10 @@ SELECT OR asset.id = mi.asset_id LIMIT 1 ), 0)::float as duration -FROM timedmetadata tm - LEFT JOIN public.episodes e on e.id = tm.episode_id - LEFT JOIN mediaitems mi ON (mi.id = tm.mediaitem_id) +FROM episodes e + LEFT JOIN mediaitems mi ON e.mediaitem_id = mi.id + LEFT JOIN timedmetadata tm ON + (mi.timedmetadata_from_asset AND tm.asset_id = mi.asset_id) OR (NOT mi.timedmetadata_from_asset AND e.id = tm.asset_id) LEFT JOIN ( SELECT simg.timedmetadata_id, @@ -166,3 +167,4 @@ FROM timedmetadata tm WHERE e.id= ANY(@episode_ids::int[]) AND tm.status = 'published' AND tm.type = 'chapter'; +;