"""Database operations for MediaAsset.""" from typing import Optional from uuid import UUID def list_assets(status: Optional[str] = None, search: Optional[str] = None): from admin.mpr.media_assets.models import MediaAsset qs = MediaAsset.objects.all() if status: qs = qs.filter(status=status) if search: qs = qs.filter(filename__icontains=search) return list(qs) def get_asset(id: UUID): from admin.mpr.media_assets.models import MediaAsset return MediaAsset.objects.get(id=id) def get_asset_filenames() -> set[str]: from admin.mpr.media_assets.models import MediaAsset return set(MediaAsset.objects.values_list("filename", flat=True)) def create_asset(*, filename: str, file_path: str, file_size: int): from admin.mpr.media_assets.models import MediaAsset return MediaAsset.objects.create( filename=filename, file_path=file_path, file_size=file_size, ) def update_asset(asset, **fields): for key, value in fields.items(): setattr(asset, key, value) asset.save(update_fields=list(fields.keys())) return asset def delete_asset(asset): asset.delete()