from sqlalchemy.orm import Session from typing import Optional from models import Activity, User from schemas import ActivityCreate from fastapi import HTTPException def get_activities(db: Session, current_user: User, project_id: Optional[int] = None, specialty_id: Optional[int] = None, skip: int = 0, limit: int = 100): query = db.query(Activity) if project_id: query = query.filter(Activity.project_id == project_id) if specialty_id: query = query.filter(Activity.specialty_id == specialty_id) activities = query.offset(skip).limit(limit).all() return activities def get_activity(db: Session, activity_id: int): db_activity = db.query(Activity).filter(Activity.id == activity_id).first() if db_activity is None: raise HTTPException(status_code=404, detail="Activity not found") return db_activity def create_activity(db: Session, activity: ActivityCreate, current_user: User): db_activity = Activity( **activity.dict(), user_id=current_user.id ) db.add(db_activity) db.commit() db.refresh(db_activity) return db_activity