from fastapi import APIRouter, HTTPException, Depends from sqlmodel import Session, select from typing import List from ..model.models import GroupDB, GroupResponse, GroupCreate from ..services.database import engine, get_session, add_and_refresh group_router = APIRouter(prefix="/groups", tags=["Group"]) @group_router.get("/", response_model=List[GroupResponse]) def get_groups(*, db: Session = Depends(get_session)): groups = db.exec(select(GroupDB)).all() return groups @group_router.post("/", response_model=GroupResponse) def create_group(*, db: Session = Depends(get_session), group: GroupCreate): db_group = GroupDB.model_validate(group) return add_and_refresh(db, db_group) @group_router.delete("/{group_id}") def delete_group(*, db: Session = Depends(get_session), group_id: int): db_group = db.get(GroupDB, group_id) if db_group is None: raise HTTPException(status_code=404, detail="Group not found") db.delete(db_group) db.commit() return {"message": "Group deleted successfully"}