# /opt/docker/dev/service_finder/backend/app/api/v1/endpoints/expenses.py from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy import select from app.api.deps import get_db, get_current_user from app.models import Asset, AssetCost # JAVÍTVA from pydantic import BaseModel from datetime import date router = APIRouter() class ExpenseCreate(BaseModel): asset_id: str category: str amount: float date: date @router.post("/add") async def add_expense(expense: ExpenseCreate, db: AsyncSession = Depends(get_db), current_user = Depends(get_current_user)): stmt = select(Asset).where(Asset.id == expense.asset_id) result = await db.execute(stmt) asset = result.scalar_one_or_none() if not asset: raise HTTPException(status_code=404, detail="Jármű nem található.") # Determine organization_id from asset organization_id = asset.current_organization_id or asset.owner_org_id if not organization_id: raise HTTPException(status_code=400, detail="Az eszközhez nincs társított szervezet.") new_cost = AssetCost( asset_id=expense.asset_id, cost_category=expense.category, amount_net=expense.amount, currency="HUF", date=expense.date, organization_id=organization_id ) db.add(new_cost) await db.commit() return {"status": "success"}