from typing import List
from fastapi import APIRouter, Depends
from sqlalchemy.orm import Session
from app.api.segment import service
from app.database.main.mysql import get_db
from app.dependency.authantication import JWTPayloadSchema, get_current_student
from .schemas import SegmentCreate, SegmentUpdate ,SegmantResponse

segment_router = APIRouter()

# @segment_router.post("/segment",response_model_exclude_none=True)
# async def create_segment(request:List[SegmentCreate],db:Session=Depends(get_db),token: JWTPayloadSchema = Depends(get_current_student)):
#     return await service.SegmentService(db,token).create_segment(request)

@segment_router.post("/segment",response_model_exclude_none=True)
async def create_segment(request: List[SegmentCreate],db:Session=Depends(get_db),token: JWTPayloadSchema = Depends(get_current_student)):
    return await service.SegmentService(db,token).create_segment(request)

@segment_router.put("/segment/update", response_model_exclude_none=True)
async def update_segment(request: List[SegmentUpdate], db: Session = Depends(get_db),token: JWTPayloadSchema = Depends(get_current_student)):
    return await service.SegmentService(db,token).update_segment(request)

@segment_router.get("/segment/{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 service.SegmentService(db,token).get_segment(group_id)

@segment_router.get("/get_one_field/{group_id}", response_model_exclude_none=True)
async def get_one_field(group_id:int, db:Session = Depends(get_db),token: JWTPayloadSchema = Depends(get_current_student)):
    return await service.SegmentService(db,token).get_one_filed(group_id)

@segment_router.delete("/segment/delete",response_model_exclude_none=True)
async def delete_seg(segment_id: int,db: Session = Depends(get_db),token: JWTPayloadSchema = Depends(get_current_student)):
    return await service.SegmentService(db, token).delete_segment(segment_id)
