27 lines
741 B
Python
27 lines
741 B
Python
from sqlalchemy import select
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.models.entities import MediaAsset
|
|
|
|
|
|
class AssetsRepository:
|
|
def __init__(self, db: Session) -> None:
|
|
self.db = db
|
|
|
|
def list_assets(self, user_id: int):
|
|
return (
|
|
self.db.query(MediaAsset)
|
|
.filter(MediaAsset.user_id == user_id, MediaAsset.status == "active")
|
|
.order_by(MediaAsset.id.desc())
|
|
)
|
|
|
|
def get_asset(self, user_id: int, asset_id: int) -> MediaAsset | None:
|
|
return self.db.scalar(
|
|
select(MediaAsset).where(
|
|
MediaAsset.id == asset_id,
|
|
MediaAsset.user_id == user_id,
|
|
MediaAsset.status == "active",
|
|
)
|
|
)
|
|
|