from logging import getLogger from venv import logger from fastapi.responses import JSONResponse from config.messages import ErrorResponse, UserResponse from services.data_service import DataServiceFactory from fastapi import APIRouter, Depends from models.sales import Sale sale_data_service = DataServiceFactory.get_sales_service() user_data_service = DataServiceFactory.get_user_service() logger = getLogger(__name__) sales_router = APIRouter() @sales_router.get("/user/{user_id}", response_model=list[Sale]) def get_user_sales(user_id: int): user = user_data_service.get_by_id(user_id) if not user: return JSONResponse( status_code=404, content={"message": UserResponse.USER_NOT_FOUND} ) sales = sale_data_service.get_by_user(user_id) if not sales: return JSONResponse(status_code=200, content={ "sales": [], "message": "No se encontraron ventas para el usuario." }) logger.info(f"Sales found for user {user_id}: {len(sales)} sales") return JSONResponse( status_code=200, content={"sales": [sale.model_dump() for sale in sales], "message": "Ventas obtenidas correctamente."} )