import { createClient } from "@/lib/supabase/server";
import { Card, CardContent, Badge } from "poyraz-ui/atoms";
import { Clock, MessageSquare } from "lucide-react";
import Link from "next/link";
import { format } from "date-fns";
import { tr } from "date-fns/locale";
type RevisionRow = {
id: string;
description: string;
status: string;
project_id: string;
created_at: string;
};
export default async function PortalRevisionsPage() {
const supabase = await createClient();
const { data: { user } } = await supabase.auth.getUser();
if (!user) return null;
const { data: clientData } = await supabase
.from("clients")
.select("id")
.eq("client_auth_id", user.id)
.single();
if (!clientData) {
return (
Hesabınız Henüz Aktif Değil
);
}
const { data: projectsData } = await supabase
.from("projects")
.select("id, name")
.eq("client_id", clientData.id);
const projectIds = projectsData?.map(p => p.id) || [];
let revisions: RevisionRow[] = [];
if (projectIds.length > 0) {
const { data: revisionsData } = await supabase
.from("project_revisions")
.select("id, description, status, project_id, created_at")
.in("project_id", projectIds)
.order("created_at", { ascending: false });
revisions = revisionsData || [];
}
const getProjectName = (id: string) => projectsData?.find(p => p.id === id)?.name || "Bilinmeyen Proje";
return (
Revizyon Taleplerim
İlettiğiniz tüm revizyon taleplerinin güncel durumunu buradan takip edebilirsiniz.
{revisions.length === 0 ? (
Henüz bir revizyon talebinde bulunmadınız.
) : (
revisions.map(rev => (
{format(new Date(rev.created_at), "d MMM yyyy, HH:mm", { locale: tr })}
{rev.status === 'pending' ? 'Bekliyor' :
rev.status === 'in_progress' ? 'İşleniyor' :
rev.status === 'completed' ? 'Tamamlandı' : 'Reddedildi'}
Proje:
{getProjectName(rev.project_id)}
{rev.description}
Projeye Git →
))
)}
);
}