from fastapi import APIRouter, Depends, HTTPException from app.auth import verify_api_key from app.database import get_db from app.models import StoreCreate, StoreResponse router = APIRouter() @router.post("", response_model=StoreResponse) async def create_store( body: StoreCreate, user: dict = Depends(verify_api_key), db=Depends(get_db) ): store_id = await db.fetchval( "INSERT INTO vector_stores (name, owner_user_id) VALUES ($1,$2) RETURNING id", body.name, user["user_id"] ) return StoreResponse(store_id=store_id, name=body.name) @router.get("") async def list_stores( user: dict = Depends(verify_api_key), db=Depends(get_db) ): rows = await db.fetch( "SELECT id, name, created_at FROM vector_stores WHERE owner_user_id=$1", user["user_id"] ) return [dict(r) for r in rows] @router.delete("/{store_id}") async def delete_store( store_id: str, user: dict = Depends(verify_api_key), db=Depends(get_db) ): deleted = await db.fetchval( """DELETE FROM vector_stores WHERE id=$1 AND owner_user_id=$2 RETURNING id""", store_id, user["user_id"] ) if not deleted: raise HTTPException(404, "Store not found or access denied") return {"deleted": str(deleted)}