RealtimeManager<TModel extends TetherModel<TModel> > constructor
RealtimeManager<TModel extends TetherModel<TModel> > ({
- required SupabaseClient supabaseClient,
- required SqliteDatabase localDb,
- required String supabaseTableName,
- required FromJsonFactory<
TModel> fromJsonFactory, - required Map<
String, SupabaseTableInfo> tableSchemas, - 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>');