import { Badge } from "@/components/ui/badge";
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
import { validateRequest } from "@/server/auth";
import { UserRole, translateUserRole } from "@/server/auth/permissions";
import type { Metadata } from "next";
import { redirect } from "next/navigation";

export const metadata: Metadata = {
	title: "Dein Profil",
};

export default async function ProfilePage() {
	const { user } = await validateRequest();

	if (!user) {
		redirect("/");
	}

	const badgeVariant = {
		[UserRole.ADMIN]: "destructive" as const,
		[UserRole.USER]: "default" as const,
		[UserRole.GUEST]: "secondary" as const,
	};

	return (
		<Card>
			<CardHeader className="flex flex-row justify-between items-center">
				<div>
					<CardTitle>{user?.displayName}</CardTitle>
					<CardDescription>
						{user?.username} &mdash; {user?.email}
					</CardDescription>
				</div>
				<Badge variant={badgeVariant[user?.role]}>{translateUserRole(user?.role)}</Badge>
			</CardHeader>
			<CardContent>
				<p>
					Deine Daten wurden vom <abbr>GitHub Enterprise Server</abbr> importiert und können hier nur angezeigt werden.
				</p>
				<p>
					Solltest Du Änderungen oder eine Löschung deiner Daten von unserem Dienst beantragen wollen, so wende dich
					bitte an einen Administrator.
				</p>
			</CardContent>
		</Card>
	);
}
