@@ -1184,6 +1184,35 @@ impl SqliteLibraryStore {
11841184 Ok ( ( ) )
11851185 }
11861186
1187+ pub async fn copy_media_relations ( & self , source_id : String , target_id : String ) -> Result < ( ) > {
1188+ self . connection . call ( move |conn| {
1189+ conn. execute (
1190+ "INSERT OR IGNORE INTO media_tag_mapping (media_ref, tag_ref, confidence)
1191+ SELECT ?, tag_ref, confidence FROM media_tag_mapping WHERE media_ref = ?" ,
1192+ params ! [ target_id, source_id] ,
1193+ ) ?;
1194+ conn. execute (
1195+ "INSERT OR IGNORE INTO media_people_mapping (media_ref, people_ref, confidence)
1196+ SELECT ?, people_ref, confidence FROM media_people_mapping WHERE media_ref = ?" ,
1197+ params ! [ target_id, source_id] ,
1198+ ) ?;
1199+ conn. execute (
1200+ "INSERT OR IGNORE INTO media_serie_mapping (media_ref, serie_ref, season, episode)
1201+ SELECT ?, serie_ref, season, episode FROM media_serie_mapping WHERE media_ref = ?" ,
1202+ params ! [ target_id, source_id] ,
1203+ ) ?;
1204+ conn. execute (
1205+ "UPDATE medias SET
1206+ movie = COALESCE((SELECT movie FROM medias WHERE id = ?1), movie),
1207+ book = COALESCE((SELECT book FROM medias WHERE id = ?1), book)
1208+ WHERE id = ?2" ,
1209+ params ! [ source_id, target_id] ,
1210+ ) ?;
1211+ Ok ( ( ) )
1212+ } ) . await ?;
1213+ Ok ( ( ) )
1214+ }
1215+
11871216 pub async fn remove_media ( & self , media_id : String ) -> Result < ( ) > {
11881217 self . connection
11891218 . call ( move |conn| {
0 commit comments