4c73b3e7c6
`DELETE /api/movies/{id}` took the row and left the files, and no
surface exposed it. It now accepts `delete_files`, which unlinks the
title's §7.4 folder — atomic, so sidecars go with the feature. Targets
come from `media_files`, never from re-deriving the folder name, and a
path outside its root is never touched. The torrent is untouched (§7.3):
it keeps seeding and the reaper owns it.
The release deck grows a quiet REMOVE control opening one inline
confirmation: file count, size and folder first, then a delete-files
toggle that starts off, then what the choice costs.
Closes #104
21 lines
436 B
JSON
21 lines
436 B
JSON
{
|
|
"db_name": "SQLite",
|
|
"query": "SELECT path AS \"path!: String\" FROM media_files WHERE owner_kind = 'movie' AND owner_id = ?",
|
|
"describe": {
|
|
"columns": [
|
|
{
|
|
"name": "path!: String",
|
|
"ordinal": 0,
|
|
"type_info": "Text"
|
|
}
|
|
],
|
|
"parameters": {
|
|
"Right": 1
|
|
},
|
|
"nullable": [
|
|
false
|
|
]
|
|
},
|
|
"hash": "57fda2b3aea40a2a5b26fdb9e19fedb04380e047c4e0b2fb1def0b40faa02432"
|
|
}
|