from fastapi import APIRouter, Depends from sqlalchemy.orm import Session from typing import List from app.db.database import get_db from app.models.user import User as UserModel from app.api.deps import get_current_active_user from app.services.users import UserService from app.schemas.user import UserCreate, User router = APIRouter() def get_user_service(db: Session = Depends(get_db)) -> UserService: return UserService(db) @router.post("/", response_model=User) def create_user(user: UserCreate, service: UserService = Depends(get_user_service)): return service.create_user(user) @router.get("/", response_model=List[User]) def read_users( skip: int = 0, limit: int = 100, service: UserService = Depends(get_user_service) ): return service.get_users(skip=skip, limit=limit) @router.get("/me", response_model=User) def read_users_me(current_user: UserModel = Depends(get_current_active_user)): return current_user