import { useLocalSearchParams } from 'expo-router';
import { ScrollView, Text } from 'react-native';
import { SafeAreaView } from 'react-native-safe-area-context';
import { useDocuments } from '@/api/ressources';
import { Carte, EnteteFiche, LigneInfo } from '@/composants/ui';
import { useTokens } from '@/theme/tokens';

const KIND_LABEL: Record<string, string> = {
  NOTICE: 'Notice',
  CERTIFICATE: 'Certificat',
  PHOTO: 'Photo',
  OTHER: 'Autre',
};

function taille(octets: number): string {
  if (octets < 1024) return `${octets} o`;
  if (octets < 1024 * 1024) return `${Math.round(octets / 1024)} Ko`;
  return `${(octets / (1024 * 1024)).toFixed(1)} Mo`;
}

/** Fiche document — R6.5. Métadonnées seules (D2, comme la bibliothèque
 *  R6.3) : l'ouverture du fichier lui-même demande `expo-sharing`, pas
 *  encore une dépendance du projet — ouvrir depuis le web pour l'instant.
 *  Destination de « Voir le document » depuis les sources de l'Assistant. */
export default function PageFicheDocument() {
  const t = useTokens();
  const { id } = useLocalSearchParams<{ id: string }>();
  const { data: documents } = useDocuments();
  const doc = (documents ?? []).find((d) => d.id === id);
  if (!doc) return null;

  return (
    <SafeAreaView style={{ flex: 1, backgroundColor: t.fond }} edges={['top']}>
      <ScrollView contentContainerStyle={{ padding: 14, gap: 10 }}>
        <EnteteFiche titre={doc.fileName} />
        <Carte titre="Document">
          <LigneInfo nom="Type" valeur={KIND_LABEL[doc.kind] ?? doc.kind} />
          <LigneInfo nom="Taille" valeur={taille(doc.size)} />
          <LigneInfo nom="Rattaché à" valeur={doc.assetReference ?? doc.workOrderReference ?? '—'} />
          <LigneInfo nom="Ajouté par" valeur={doc.uploadedByName ?? '—'} />
          <LigneInfo
            nom="Ajouté le"
            valeur={new Intl.DateTimeFormat('fr-FR', { dateStyle: 'long' }).format(new Date(doc.createdAt))}
          />
        </Carte>
        <Text style={{ color: t.encre3, fontFamily: 'Manrope_400Regular', fontSize: 11.5, textAlign: 'center' }}>
          Ouvrir le fichier se fait depuis le web pour l'instant.
        </Text>
      </ScrollView>
    </SafeAreaView>
  );
}
