from typing import List
from fastapi import APIRouter, Depends
from sqlalchemy.orm import Session
from app.api.pre_operating_expenses import schemas
from app.api.pre_operating_expenses.schemas import PreOperatingExpenseCreate, PreOperatingExpenseResponce
from app.api.pre_operating_expenses.service import PreOperatingExpenseService
from app.database.main.mysql import get_db
from app.dependency.authantication import JWTPayloadSchema, get_current_student

pre_operating_router = APIRouter()

@pre_operating_router.post("/pre_operating_expense", response_model_exclude_none=True)
async def create_civil_entry(request: PreOperatingExpenseCreate,db: Session = Depends(get_db),token: JWTPayloadSchema = Depends(get_current_student)):
    return await PreOperatingExpenseService(db, token).create_pre_operating_expense(request)

@pre_operating_router.get("/pre_operating_expense-responce/{group_id}",response_model_exclude_none=True)
async def get_segment(group_id: int, db: Session =Depends(get_db),token: JWTPayloadSchema = Depends(get_current_student)):
    return await PreOperatingExpenseService(db,token).get_pre_operating_expense(group_id)

@pre_operating_router.put("/update_pre_operating_expenses", response_model_exclude_none=True)
async def update_pre_operating_expenses(request:List[schemas.PreOperatingExpenseUpdate], db:Session = Depends(get_db),token: JWTPayloadSchema = Depends(get_current_student)):
    return await PreOperatingExpenseService(db,token).update(request)

@pre_operating_router.delete("/delete_pre_operating_expenses", response_model_exclude_none=True)
async def delete_pre_operating_expenses(pre_operating_id:int, db:Session = Depends(get_db),token: JWTPayloadSchema = Depends(get_current_student)):
    return await PreOperatingExpenseService(db,token).delete(pre_operating_id)
