24 lines
646 B
Python
24 lines
646 B
Python
"""MediaAsset queries."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import Optional
|
|
from uuid import UUID
|
|
|
|
from sqlmodel import Session, select
|
|
|
|
from .tables import MediaAsset
|
|
|
|
|
|
def list_assets(session: Session, status: Optional[str] = None, search: Optional[str] = None) -> list[MediaAsset]:
|
|
stmt = select(MediaAsset)
|
|
if status:
|
|
stmt = stmt.where(MediaAsset.status == status)
|
|
if search:
|
|
stmt = stmt.where(MediaAsset.filename.ilike(f"%{search}%"))
|
|
return list(session.exec(stmt).all())
|
|
|
|
|
|
def get_asset_filenames(session: Session) -> set[str]:
|
|
return set(session.exec(select(MediaAsset.filename)).all())
|