import { env } from './env';

export type AuthOAuthProvider = 'google' | 'linkedin';

export const authOAuthConfig = {
  google: {
    clientId: env.GOOGLE_CLIENT_ID ?? '',
    clientSecret: env.GOOGLE_CLIENT_SECRET ?? '',
    redirectUri:
      env.GOOGLE_AUTH_REDIRECT_URI ?? `${env.API_URL}/v1/auth/oauth/callback/google`,
    scopes: ['openid', 'email', 'profile'],
  },
  linkedin: {
    clientId: env.LINKEDIN_CLIENT_ID ?? '',
    clientSecret: env.LINKEDIN_CLIENT_SECRET ?? '',
    redirectUri:
      env.LINKEDIN_AUTH_REDIRECT_URI ?? `${env.API_URL}/v1/auth/oauth/callback/linkedin`,
    scopes: ['openid', 'profile', 'email'],
  },
};

export function isGoogleAuthEnabled(): boolean {
  return Boolean(authOAuthConfig.google.clientId && authOAuthConfig.google.clientSecret);
}

export function isLinkedInAuthEnabled(): boolean {
  return Boolean(authOAuthConfig.linkedin.clientId && authOAuthConfig.linkedin.clientSecret);
}

export function isAuthOAuthProvider(value: string): value is AuthOAuthProvider {
  return value === 'google' || value === 'linkedin';
}
