from fastapi import APIRouter, Depends from sqlalchemy import select from sqlalchemy.orm import Session from .. import models, schemas from ..database import get_db from ..deps import get_current_user router = APIRouter(prefix="/instances", tags=["instances"]) @router.get("", response_model=list[schemas.InstanceOut]) def list_instances( db: Session = Depends(get_db), user: models.User = Depends(get_current_user), ): """Клиент видит только свои инстансы, администратор — все.""" query = select(models.Instance).where( models.Instance.status != models.InstanceStatus.deleted ) if user.role != models.UserRole.admin: query = query.where(models.Instance.owner_id == user.id) query = query.order_by(models.Instance.created_at.desc()) return list(db.scalars(query))