from __future__ import annotations from fastapi import APIRouter, Depends from sqlalchemy.orm import Session from app.core.database import get_db from app.core.dependencies import get_current_token_payload from app.core.responses import api_success from app.schemas.auth import LoginRequest, LoginResponse, SendSmsRequest from app.services.auth_service import AuthService router = APIRouter() @router.post("/sms/send") def send_sms(payload: SendSmsRequest, db: Session = Depends(get_db)) -> dict: AuthService.send_sms_code(db, payload.phone) return api_success(message="发送成功") @router.post("/login") def login(payload: LoginRequest, db: Session = Depends(get_db)) -> dict: result = AuthService.login_with_sms(db, payload.phone, payload.code) return api_success(LoginResponse.model_validate(result).model_dump(mode="json")) @router.post("/logout") def logout(token_payload: dict = Depends(get_current_token_payload)) -> dict: AuthService.logout(token_payload) return api_success()