use PhobosFramework\Database\Schema\SchemaRegistry;
// En un middleware, según el tenant del request:
SchemaRegistry::getInstance()->register('ventas', "tenant_{$tenantId}");
// Ahora toda entidad con $schema = 'ventas' escribe/lee en "tenant_42"."invoices"
// 1. auto (por defecto): SERIAL/IDENTITY; el id se lee con INSERT ... RETURNING
class Account extends TableEntity {
protected static array $pk = ['id'];
protected static string $keyStrategy = 'auto';
public ?int $id = null;
}
// 2. uuidv7: el framework genera un UUIDv7 en PHP antes del INSERT (sin round-trip)
class Document extends TableEntity {
protected static array $pk = ['id'];
protected static string $keyStrategy = 'uuidv7';
public mixed $id = null; // columna UUID
}
// 3. manual: la aplicación asigna el valor
class Setting extends TableEntity {
protected static array $pk = ['key'];
protected static string $keyStrategy = 'manual';
public string $key = '';
}