/**
 * Appwrite-Client – **native** (iOS/Android).
 *
 * Es gibt zwei Fassungen dieser Datei: diese und `appwrite.web.ts`. Metro löst
 * die Endung nach Plattform auf, der Rest der App importiert immer nur
 * `@/lib/appwrite` und merkt vom Unterschied nichts.
 *
 * Warum überhaupt zwei: `react-native-appwrite` bringt native Abhängigkeiten
 * mit (URL-Polyfill, Dateizugriff) und läuft nicht im Browser; das Web-SDK
 * `appwrite` kennt umgekehrt kein React Native. Beide exportieren dieselben
 * Klassen, deshalb ist die Trennung hier billig – und wäre später teuer.
 */
import 'react-native-url-polyfill/auto';
import { Account, Client, Storage, TablesDB, Teams } from 'react-native-appwrite';

import { appwriteConfig } from './config';

export const client = new Client()
  .setEndpoint(appwriteConfig.endpoint)
  .setProject(appwriteConfig.project);

// TODO (E2): .setPlatform('<bundle-id>') sobald die native App-Kennung feststeht
// und in der Appwrite-Konsole als Platform registriert ist. Ohne das lehnt
// Appwrite Anfragen aus dem nativen Build ab.

export const account = new Account(client);
export const tables = new TablesDB(client);
export const storage = new Storage(client);
export const teams = new Teams(client);

export { ID, Permission, Query, Role } from 'react-native-appwrite';
export const databaseId = appwriteConfig.databaseId;
