store method

  1. @override
Future<int> store([
  1. MP? m
])
inherited

Implementation

@override
store([m]) async {
  MP mp = {
    for (var a in ctrl.allAttributes.values)
      if (this[a.name] case Object v)
        a.name: switch (v) {
          String h when a.format == FormatF.reference => storage[h]?.id,
          EventFractal ev when a.format == FormatF.integer => ev.id,
          _ => v,
        },
    ...?m,
  };

  final id = await super.store(mp);
  if (id == 0) return 0;
  print('stored #$hash $hashCode');
  if (to?.id case int into when deleteOlder) {
    ctrl.query("""
      DELETE FROM fractal
      WHERE id IN (
        SELECT $type.id
        FROM $type
        INNER JOIN event
        ON event.id=$type.id
        WHERE event.created_at < ?
        AND event."to" = ?
      );
    """, [createdAt, into]);
  }
  return id;
}