import { redirect } from 'next/navigation';
import { getServerSession } from '@/lib/auth/getServerSession';
import { PERMISSIONS } from '@/lib/permissions/permissions';
import AccessDenied from '@/components/admin/errors/AccessDenied';
import ContactMessagesTable from '@/components/admin/contact-messages/ContactMessagesTable';
import { cookies } from 'next/headers';
import { SESSION_COOKIE } from '@/lib/auth/requireAuth';
import { Metadata } from 'next';

export const metadata: Metadata = {
  title: 'Contact Messages',
};

export default async function ContactMessagesPage() {
  const cookieStore = await cookies();
  const sessionId = cookieStore.get(SESSION_COOKIE)?.value;
  if (!sessionId) redirect('/admin/login');

  const session = await getServerSession();
  if (!session) redirect('/admin/login');
  if (!session.permissions.includes(PERMISSIONS.CONTACT_MESSAGES_READ)) return <AccessDenied />;

  const canUpdate = session.permissions.includes(PERMISSIONS.CONTACT_MESSAGES_UPDATE);
  const canDelete = session.permissions.includes(PERMISSIONS.CONTACT_MESSAGES_DELETE);

  return (
    <div className="sm:p-6">
      <div className="mb-6">
        <h1 className="text-2xl font-semibold" style={{ color: 'var(--color-text)' }}>
          Contact Messages
        </h1>
        <p className="text-sm mt-1" style={{ color: 'var(--color-text-secondary)' }}>
          Messages sent from the storefront contact form
        </p>
      </div>

      <ContactMessagesTable canUpdate={canUpdate} canDelete={canDelete} />
    </div>
  );
}
