URL: /cliente-dashboard
# account_service.py
from fastapi import APIRouter, HTTPException
from pydantic import BaseModel
from typing import Dict
router = APIRouter()
# Simulación de base de datos en memoria
accounts_db: Dict[str, dict] = {}
class AccountCreate(BaseModel):
user_id: str
currency: str = «USD»
class AccountResponse(BaseModel):
account_id: str
user_id: str
balance: float
currency: str
@router.post(«/crear», response_model=AccountResponse)
def crear_cuenta(data: AccountCreate):
if data.user_id in accounts_db:
raise HTTPException(status_code=400, detail=»El usuario ya tiene una cuenta»)
nueva_cuenta = {
«account_id»: f»ACC-{data.user_id}»,
«user_id»: data.user_id,
«balance»: 0.0,
«currency»: data.currency
}
accounts_db[data.user_id] = nueva_cuenta
return nueva_cuenta
@router.get(«/{user_id}», response_model=AccountResponse)
def obtener_cuenta(user_id: str):
cuenta = accounts_db.get(user_id)
if not cuenta:
raise HTTPException(status_code=404, detail=»Cuenta no encontrada»)
return cuenta
@router.get(«/{user_id}/balance»)
def obtener_balance(user_id: str):
cuenta = accounts_db.get(user_id)
if not cuenta:
raise HTTPException(status_code=404, detail=»Cuenta no encontrada»)
return {«balance»: cuenta[«balance»], «currency»: cuenta[«currency»]}