namespace Application.Abstractions.YouTube;
///
/// Google OAuth 2.0 Authorization Code Flow
/// ID Token 검증(기존) 외에 Access Token 획득/갱신을 위한 서비스
///
public interface IGoogleOAuthService
{
/// Authorization URL 생성 (프론트엔드 리다이렉트용)
string GetAuthorizationUrl(string state, string redirectUri, string[] scopes);
/// Authorization Code → Access Token + Refresh Token 교환
Task ExchangeCodeAsync(string code, string redirectUri, string clientId, string clientSecret, CancellationToken ct);
/// Refresh Token으로 Access Token 갱신
Task RefreshTokenAsync(string refreshToken, CancellationToken ct);
/// OAuth 토큰 revoke (앱 접근 권한 해제)
Task RevokeTokenAsync(string token, CancellationToken ct);
}