dify/api/services/entities/account_oauth_entities.py
Byron.wang 692010f0fc
refactor(api): decouple console OAuth flow from legacy account services (#41188)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-09-03 08:47:14 +00:00

63 lines
1.3 KiB
Python

"""Framework-neutral contracts for Console account OAuth sign-in."""
from dataclasses import dataclass
from services.entities.account_entities import AccountSessionTokens as _AccountSessionTokens
@dataclass(frozen=True, slots=True)
class OAuthAuthorizationRequest:
invite_token: str | None = None
timezone: str | None = None
language: str | None = None
redirect_url: str | None = None
@dataclass(frozen=True, slots=True)
class OAuthIdentity:
id: str
name: str
email: str
@dataclass(frozen=True, slots=True)
class OAuthCallbackCommand:
provider: str
code: str
invite_token: str | None
timezone: str | None
language: str | None
browser_language: str | None
ip_address: str
@dataclass(frozen=True, slots=True)
class OAuthInvitation:
account_id: str
account_email: str
account_status: str
@dataclass(frozen=True, slots=True)
class OAuthAccountRegistration:
email: str
name: str
language: str
timezone: str | None
ip_address: str
@dataclass(frozen=True, slots=True)
class OAuthSignInResult:
tokens: _AccountSessionTokens
oauth_new_user: bool
@dataclass(frozen=True, slots=True)
class OAuthInvitationResult:
tokens: _AccountSessionTokens
invite_token: str
type OAuthCallbackResult = OAuthSignInResult | OAuthInvitationResult