"""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( plan_type: Optional[str] = None, # vc2, vhf, vdc, etc. per_page: int = Query(25, le=500), cursor: Optional[str] = None, client: VultrClient = Depends(get_client) ): """List all cloud compute plans""" return client.plans.list(plan_type=plan_type, per_page=per_page, cursor=cursor) @router.get("/all") async def list_all_plans( plan_type: Optional[str] = None, client: VultrClient = Depends(get_client) ): """List all cloud compute plans (auto-paginated)""" return {"plans": client.plans.list_all(plan_type=plan_type)} @router.get("/bare-metal") async def list_bare_metal_plans( per_page: int = Query(25, 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()}