"""Plans router""" from fastapi import APIRouter, Depends, Query from typing import Optional from vultr_api import VultrClient from deps import get_client router = APIRouter() @router.get("") async def list_plans( type: Optional[str] = Query(None, alias="type"), per_page: int = Query(500, le=500), cursor: Optional[str] = None, client: VultrClient = Depends(get_client) ): """List all cloud compute plans""" return client.plans.list(plan_type=type, per_page=per_page, cursor=cursor) @router.get("/all") async def list_all_plans( type: Optional[str] = Query(None, alias="type"), client: VultrClient = Depends(get_client) ): """List all cloud compute plans (auto-paginated)""" return {"plans": client.plans.list_all(plan_type=type)} @router.get("/bare-metal") async def list_bare_metal_plans( per_page: int = Query(500, le=500), cursor: Optional[str] = None, client: VultrClient = Depends(get_client) ): """List all bare metal plans""" return client.plans.list_bare_metal(per_page=per_page, cursor=cursor) @router.get("/bare-metal/all") async def list_all_bare_metal_plans(client: VultrClient = Depends(get_client)): """List all bare metal plans (auto-paginated)""" return {"plans_metal": client.plans.list_all_bare_metal()}