import './style.scss';
import Link from 'next/link';
import { isSocialLoginProvider, SOCIAL_PROVIDER_LABELS } from '@/constants/social';

/**
 * 소셜 로그인 안내 화면 — /login/social-notice?reason=...&provider=...
 *
 * - email-required: 카카오 이메일 선택동의 미동의 (Auth.EmailRequired) → 재동의 유도
 * - account-exists: 같은 이메일의 기존 계정 존재 (Auth.AccountExists) → 기존 계정 로그인 + SNS 연동 안내
 */
export default async function Page({ searchParams }: { searchParams: Promise<{ reason?: string; provider?: string }> })
{
	const { reason, provider } = await searchParams;
	const label = isSocialLoginProvider(provider) ? SOCIAL_PROVIDER_LABELS[provider] : '소셜';

	if (reason === 'email-required') {
		return (
			<div className="social-notice">
				<h1 className="social-notice__title">이메일 제공 동의가 필요합니다</h1>
				<p className="social-notice__desc">
					{label} 계정으로 가입하려면 이메일 제공에 동의해야 합니다.<br />
					다시 로그인하면서 <strong>이메일</strong> 항목에 동의해주세요.
				</p>
				{provider === 'kakao' && (
					<p className="social-notice__hint">
						동의 항목이 보이지 않는다면 카카오 <strong>내 계정 &gt; 연결된 서비스 관리</strong> 에서
						개미투자 연결을 해제한 뒤 다시 시도해주세요.
					</p>
				)}
				<div className="social-notice__actions">
					{isSocialLoginProvider(provider) && (
						<a href={`/login/${provider}/start`} className="social-notice__button social-notice__button--primary">
							{label} 로그인 다시 시도
						</a>
					)}
					<Link href="/login" className="social-notice__button">
						로그인으로 돌아가기
					</Link>
				</div>
			</div>
		);
	}

	if (reason === 'account-exists') {
		return (
			<div className="social-notice">
				<h1 className="social-notice__title">이미 가입된 이메일입니다</h1>
				<p className="social-notice__desc">
					{label} 계정과 같은 이메일로 가입된 계정이 이미 있습니다.<br />
					안전을 위해 자동으로 연결하지 않아요.
				</p>
				<p className="social-notice__hint">
					기존 계정으로 로그인한 뒤 <strong>계정 관리 &gt; SNS 연결 관리</strong> 에서 {label} 계정을 연동하면,
					다음부터 {label} 로그인을 사용할 수 있습니다.
				</p>
				<div className="social-notice__actions">
					<Link href="/login" className="social-notice__button social-notice__button--primary">
						기존 계정으로 로그인
					</Link>
				</div>
			</div>
		);
	}

	return (
		<div className="social-notice">
			<h1 className="social-notice__title">로그인을 완료할 수 없습니다</h1>
			<p className="social-notice__desc">
				{label} 로그인 처리 중 문제가 발생했습니다. 잠시 후 다시 시도해주세요.
			</p>
			<div className="social-notice__actions">
				<Link href="/login" className="social-notice__button social-notice__button--primary">
					로그인으로 돌아가기
				</Link>
			</div>
		</div>
	);
}