import os from .connection import connect from .ensure_user_assets_schema import ensure_user_assets_schema from .user_assets_dir import user_assets_dir def delete_user_asset(asset_id: int, user_id: int) -> bool: """N'efface que si asset_id APPARTIENT à user_id (jamais fournie par l'appelant sans vérification — voir get_user_asset.py) : renvoie False sans rien faire sinon, plutôt que de lever une erreur, même patron que screens.delete_scene_object pour un id introuvable.""" ensure_user_assets_schema() conn = connect() row = conn.execute("SELECT filename FROM _user_assets WHERE id = ? AND user_id = ?", (asset_id, user_id)).fetchone() if not row: conn.close() return False conn.execute("DELETE FROM _user_assets WHERE id = ?", (asset_id,)) conn.commit() conn.close() path = os.path.join(user_assets_dir(user_id), row["filename"]) if os.path.exists(path): os.remove(path) return True