from fastapi import APIRouter, Request, Depends, status, BackgroundTasks
from sqlalchemy.orm import Session
from utils.get_db import get_db
from schema.comment_schema import CommentAddSchema, CommentAddReponse, CommentsAllResponse
from services import comment_service
from uuid import UUID


comment_router=APIRouter()

@comment_router.post('/add-comment-in-tkt',response_model=CommentAddReponse,status_code=status.HTTP_201_CREATED)
def comment_in_org(payload:CommentAddSchema,request:Request,background_tasks: BackgroundTasks,db:Session=Depends(get_db)):
    return comment_service.add_comment_in_ticket(payload,request,background_tasks,db)

@comment_router.get('/get-comments/{ticket_id}',status_code=status.HTTP_200_OK, response_model=CommentsAllResponse)

def comment_in_org(ticket_id:UUID,request:Request,db:Session=Depends(get_db)):
    return comment_service.get_comment_for_ticket_id(ticket_id,request,db)


@comment_router.patch('/update-comment/{comment_id}',status_code=status.HTTP_200_OK, response_model=CommentAddReponse)
def comment_in_org(comment_id:UUID,payload:CommentAddSchema,request:Request,background_tasks: BackgroundTasks,db:Session=Depends(get_db)):
    return comment_service.update_comment(payload,comment_id,request,background_tasks,db)


@comment_router.delete('/delete-comment/{comment_id}',status_code=status.HTTP_200_OK, response_model=CommentAddReponse)
def comment_in_org(comment_id:UUID,request:Request,background_tasks: BackgroundTasks,db:Session=Depends(get_db)):
    return comment_service.delete_comment(comment_id,request,background_tasks,db)