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

integrated_marketing_router = APIRouter()

@integrated_marketing_router.post("/created_integrated_marketing", response_model_exclude_none=True)
async def created_integrated_marketing(request:List[schema.IntegratedMarketingCreated], db:Session = Depends(get_db),token: JWTPayloadSchema = Depends(get_current_student)):
    return await service.IntegratedMarketingService(db,token).create_integarted_marketing(request)

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

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

@integrated_marketing_router.put("/update_integrated_marketing", response_model_exclude_none=True)
async def update_integrated_marketing(request:List[schema.IntegratedMarketingUpdate], db:Session = Depends(get_db),token: JWTPayloadSchema = Depends(get_current_student)):
    return await service.IntegratedMarketingService(db,token).update_integrated_marketing(request)

@integrated_marketing_router.delete("/delete_integrated_marketing", response_model_exclude_none=True)
async def delete_integrated_marketing(integrated_id:int, db:Session = Depends(get_db),token: JWTPayloadSchema = Depends(get_current_student)):
    return await service.IntegratedMarketingService(db,token).delete_integrated_marketing(integrated_id)