# /opt/docker/dev/service_finder/backend/app/api/v1/endpoints/auth.py from fastapi import APIRouter, Depends, HTTPException, Request, status, Body from sqlalchemy.ext.asyncio import AsyncSession from app.db.session import get_db from app.schemas.auth import UserRegister, Token, UserLogin from app.services.auth_service import AuthService from app.core.security import create_access_token router = APIRouter() @router.post("/register", response_model=Token, status_code=status.HTTP_201_CREATED) async def register( request: Request, user_in: UserRegister = Body(...), db: AsyncSession = Depends(get_db) ): # 1. Foglalt email ellenőrzése if not await AuthService.check_email_availability(db, user_in.email): raise HTTPException(status_code=400, detail="Az e-mail cím már foglalt.") # 2. Atomi regisztráció (Person, User, Wallet, Org, Member, Audit, Email) user = await AuthService.register_new_user( db=db, user_in=user_in, ip_address=request.client.host ) # 3. Token kiállítása token_data = {"sub": str(user.id), "email": user.email} access_token = create_access_token(data=token_data) return {"access_token": access_token, "token_type": "bearer"}