import { PageHeader } from '@/components/layout/page-header'
import { DataTable } from '@/components/tables/data-table'
import { Button } from '@/components/ui/button'
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'
import { SelectField, TextareaField, TextField } from '@/components/ui/form-field'
import { createPartnerContractAction } from '@/lib/actions/admin-actions'
import { listPartnerContracts } from '@/lib/data/admin-queries'
import { requireAdmin } from '@/lib/auth/session'

export const dynamic = 'force-dynamic'

export default async function PartnersPage() {
  await requireAdmin('partners.read')
  const contracts = await listPartnerContracts()
  return (
    <div className="space-y-6">
      <PageHeader title="Partenaires CRM" description="Prospection, contrats premium/sponsored/coupon, suivi commercial et notes partenaires." />
      <Card>
        <CardContent className="pt-5">
          <DataTable
            data={contracts}
            columns={[
              { key: 'company_name', label: 'Entreprise', sortable: true },
              { key: 'contact_name', label: 'Contact' },
              { key: 'status', label: 'Statut', badge: true },
              { key: 'contract_type', label: 'Contrat', badge: true },
              { key: 'monthly_price', label: 'Mensuel', sortable: true },
              { key: 'starts_at', label: 'Debut', sortable: true },
              { key: 'ends_at', label: 'Fin', sortable: true },
            ]}
          />
        </CardContent>
      </Card>
      <Card>
        <CardHeader>
          <CardTitle>Creer contrat partenaire</CardTitle>
        </CardHeader>
        <CardContent>
          <form action={createPartnerContractAction} className="grid gap-4 md:grid-cols-2">
            <TextField label="Provider ID optionnel" name="provider_id" />
            <TextField label="Entreprise" name="company_name" required />
            <TextField label="Contact" name="contact_name" />
            <TextField label="Email" name="contact_email" type="email" />
            <TextField label="Telephone" name="contact_phone" />
            <TextField label="Prix mensuel MAD" name="monthly_price" type="number" />
            <SelectField
              label="Statut"
              name="status"
              options={[
                { label: 'Prospect', value: 'prospect' },
                { label: 'Contacted', value: 'contacted' },
                { label: 'Negotiating', value: 'negotiating' },
                { label: 'Active', value: 'active' },
                { label: 'Paused', value: 'paused' },
                { label: 'Cancelled', value: 'cancelled' },
              ]}
            />
            <SelectField
              label="Type contrat"
              name="contract_type"
              options={[
                { label: 'Free', value: 'free' },
                { label: 'Premium', value: 'premium' },
                { label: 'Sponsored', value: 'sponsored' },
                { label: 'Coupon partner', value: 'coupon_partner' },
              ]}
            />
            <TextField label="Debut" name="starts_at" type="date" />
            <TextField label="Fin" name="ends_at" type="date" />
            <div className="md:col-span-2">
              <TextareaField label="Notes commerciales" name="notes" />
            </div>
            <Button type="submit" className="md:col-span-2">Creer contrat</Button>
          </form>
        </CardContent>
      </Card>
    </div>
  )
}
