O2Sound_ver2_final/backend/app/presentation/schemas/social/google_schema.py

39 lines
1.1 KiB
Python

from pydantic import BaseModel
from typing import Optional, Dict, Any, List
# ================ Google ================
class GoogleUserInfo(BaseModel):
"""Google 사용자 정보"""
provider: str = "google"
provider_id: str
email: Optional[str] = None
name: Optional[str] = None
picture: Optional[str] = None
raw_data: Dict[str, Any] = {}
class GoogleTokenResponse(BaseModel):
"""Google OAuth 토큰 응답"""
access_token: str
refresh_token: Optional[str] = None
expires_at: Optional[str] = None
token_type: str
user_info: GoogleUserInfo
scopes: Optional[List[str]] = None
class GoogleCallbackResponse(BaseModel):
"""Google OAuth 콜백 응답"""
message: str
temp_token_id: str
return_url: Optional[str] = None
user_info: GoogleUserInfo
class GoogleLoginRequest(BaseModel):
"""Google 로그인 요청"""
return_url: Optional[str] = None
class GoogleHealthResponse(BaseModel):
"""Google OAuth 헬스체크 응답"""
status: str
provider: str = "google"
message: str
redis_health: Optional[Dict[str, Any]] = None