import { Button } from '@/components/ui/button';
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table';
import { prisma } from '@/lib/prisma';
import { Plus, Settings, ExternalLink } from 'lucide-react';
import Link from 'next/link';
import { Badge } from '@/components/ui/badge';
import { headers } from 'next/headers';

export const dynamic = 'force-dynamic';

export default async function OrganizationsPage() {
    const headersList = headers();
    const host = headersList.get('host') || process.env.NEXT_PUBLIC_ROOT_DOMAIN || 'wibix.io';
    const protocol = host.includes('localhost') ? 'http' : 'https';

    const organizations = await prisma.organization.findMany({
        orderBy: { createdAt: 'desc' },
        include: {
            _count: {
                select: { users: true },
            },
        },
    });

    return (
        <div className='space-y-6'>
            <div className='flex items-center justify-between'>
                <h1 className='text-3xl font-bold tracking-tight'>Organizações</h1>
                <Link href='/super-admin/organizations/new'>
                    <Button>
                        <Plus className='mr-2 h-4 w-4' />
                        Nova Organização
                    </Button>
                </Link>
            </div>

            <div className='rounded-md border bg-white dark:bg-gray-800'>
                <Table>
                    <TableHeader>
                        <TableRow>
                            <TableHead>Nome</TableHead>
                            <TableHead>Slug</TableHead>
                            <TableHead>Utilizadores</TableHead>
                            <TableHead>Estado</TableHead>
                            <TableHead className='text-right'>Ações</TableHead>
                        </TableRow>
                    </TableHeader>
                    <TableBody>
                        {organizations.map((org) => (
                            <TableRow key={org.id}>
                                <TableCell className='font-medium'>{org.name}</TableCell>
                                <TableCell>{org.slug}</TableCell>
                                <TableCell>{org._count.users}</TableCell>
                                <TableCell>
                                    <Badge variant={org.isActive ? 'default' : 'destructive'}>
                                        {org.isActive ? 'Ativo' : 'Inativo'}
                                    </Badge>
                                </TableCell>
                                <TableCell className='text-right space-x-2'>
                                    <Button
                                        variant='outline'
                                        size='icon'
                                        asChild
                                    >
                                        <a
                                            href={`${protocol}://${org.slug}.${host}`}
                                            target='_blank'
                                            rel='noopener noreferrer'
                                            title='Acessar Sistema'
                                        >
                                            <ExternalLink className='h-4 w-4' />
                                        </a>
                                    </Button>
                                    <Button
                                        variant='ghost'
                                        size='icon'
                                        asChild
                                    >
                                        <Link href={`/super-admin/organizations/${org.id}`}>
                                            <Settings className='h-4 w-4' />
                                        </Link>
                                    </Button>
                                </TableCell>
                            </TableRow>
                        ))}
                        {organizations.length === 0 && (
                            <TableRow>
                                <TableCell
                                    colSpan={5}
                                    className='text-center py-8 text-muted-foreground'
                                >
                                    Nenhuma organização encontrada.
                                </TableCell>
                            </TableRow>
                        )}
                    </TableBody>
                </Table>
            </div>
        </div>
    );
}
