from fastapi import APIRouter, Depends
from sqlalchemy.orm import Session
from app.api.carpentry import schema, service
from app.database.main.mysql import get_db
from app.dependency.authantication import JWTPayloadSchema, get_current_student, get_current_user

carpentry_router = APIRouter()

@carpentry_router.post("/carpentry", response_model_exclude_none=True)
async def create_carpentry(request: schema.CarpentryCreate, db: Session = Depends(get_db),token: JWTPayloadSchema = Depends(get_current_user)):
    return await service.CarpentryService(db,token).create_carpentry(request)

@carpentry_router.get("/get_carpentry", response_model_exclude_none=True)
async def get_carpentry(group_id: int, db: Session = Depends(get_db),token: JWTPayloadSchema = Depends(get_current_student)):
    return await service.CarpentryService(db,token).get_carpentry(group_id)

@carpentry_router.get("/get_sum_of_total", response_model_exclude_none=True)
async def get_sum_of_total(group_id: int, db: Session = Depends(get_db),token: JWTPayloadSchema = Depends(get_current_student)):
    return await service.CarpentryService(db,token).get_and_sum_carpentry(group_id)

@carpentry_router.put("/update_carpentry", response_model_exclude_none=True)
async def update_carpentry(request: schema.CarpentryUpdate, db: Session = Depends(get_db), token: JWTPayloadSchema = Depends(get_current_student)):
    return await service.CarpentryService(db,token).update_carpentry(request)