RealtimeManager<TModel extends TetherModel<TModel>> constructor

RealtimeManager<TModel extends TetherModel<TModel>>({
  1. required SupabaseClient supabaseClient,
  2. required SqliteDatabase localDb,
  3. required String supabaseTableName,
  4. required FromJsonFactory<TModel> fromJsonFactory,
  5. required Map<String, SupabaseTableInfo> tableSchemas,
  6. String supabaseSchema = 'public',
})

Implementation

RealtimeManager({
  required SupabaseClient supabaseClient,
  required SqliteDatabase localDb,
  required String supabaseTableName,
  required FromJsonFactory<TModel> fromJsonFactory,
  required Map<String, SupabaseTableInfo> tableSchemas,
  String supabaseSchema = 'public',
}) : _supabaseClient = supabaseClient,
      _tableSchemas = tableSchemas,
     _localDb = localDb,
     _supabaseSchema = supabaseSchema,
     _supabaseTableName = supabaseTableName,
     _fromJsonFactory = fromJsonFactory,
     _primaryKeyColumns =
         (tableSchemas['$supabaseSchema.$supabaseTableName']?.primaryKeys
                         .map((e) => e.originalName)
                         .toList() ??
                     [])
                 .isNotEmpty
             ? tableSchemas['$supabaseSchema.$supabaseTableName']!.primaryKeys
                 .map((e) => e.originalName)
                 .toList()
             : throw ArgumentError(
               "Primary keys for table '$supabaseSchema.$supabaseTableName' not found or empty.",
             ),
     _localTableName =
         (tableSchemas['$supabaseSchema.$supabaseTableName']?.localName ??
             (throw ArgumentError(
               "Local table name for '$supabaseSchema.$supabaseTableName' not found.",
             ))),
     _log = tether_logger.Logger('RealtimeManager<$supabaseTableName>');