getObjectBoxModel function

ModelDefinition getObjectBoxModel()

Returns the ObjectBox model definition for this project for use with obx.Store.new.

Implementation

obx_int.ModelDefinition getObjectBoxModel() {
  final model = obx_int.ModelInfo(
    entities: _entities,
    lastEntityId: const obx_int.IdUid(8, 2356961977798202534),
    lastIndexId: const obx_int.IdUid(3, 735436971837042211),
    lastRelationId: const obx_int.IdUid(0, 0),
    lastSequenceId: const obx_int.IdUid(0, 0),
    retiredEntityUids: const [],
    retiredIndexUids: const [],
    retiredPropertyUids: const [4248118904091022656],
    retiredRelationUids: const [],
    modelVersion: 5,
    modelVersionParserMinimum: 5,
    version: 1,
  );

  final bindings = <Type, obx_int.EntityDefinition>{
    DbContactList: obx_int.EntityDefinition<DbContactList>(
      model: _entities[0],
      toOneRelations: (DbContactList object) => [],
      toManyRelations: (DbContactList object) => {},
      getId: (DbContactList object) => object.dbId,
      setId: (DbContactList object, int id) {
        object.dbId = id;
      },
      objectToFB: (DbContactList object, fb.Builder fbb) {
        final pubKeyOffset = fbb.writeString(object.pubKey);
        final contactsOffset = fbb.writeList(
          object.contacts.map(fbb.writeString).toList(growable: false),
        );
        final contactRelaysOffset = fbb.writeList(
          object.contactRelays.map(fbb.writeString).toList(growable: false),
        );
        final petnamesOffset = fbb.writeList(
          object.petnames.map(fbb.writeString).toList(growable: false),
        );
        final followedTagsOffset = fbb.writeList(
          object.followedTags.map(fbb.writeString).toList(growable: false),
        );
        final followedCommunitiesOffset = fbb.writeList(
          object.followedCommunities
              .map(fbb.writeString)
              .toList(growable: false),
        );
        final followedEventsOffset = fbb.writeList(
          object.followedEvents.map(fbb.writeString).toList(growable: false),
        );
        final sourcesOffset = fbb.writeList(
          object.sources.map(fbb.writeString).toList(growable: false),
        );
        fbb.startTable(12);
        fbb.addInt64(0, object.dbId);
        fbb.addOffset(1, pubKeyOffset);
        fbb.addOffset(2, contactsOffset);
        fbb.addOffset(3, contactRelaysOffset);
        fbb.addOffset(4, petnamesOffset);
        fbb.addOffset(5, followedTagsOffset);
        fbb.addOffset(6, followedCommunitiesOffset);
        fbb.addOffset(7, followedEventsOffset);
        fbb.addInt64(8, object.createdAt);
        fbb.addInt64(9, object.loadedTimestamp);
        fbb.addOffset(10, sourcesOffset);
        fbb.finish(fbb.endTable());
        return object.dbId;
      },
      objectFromFB: (obx.Store store, ByteData fbData) {
        final buffer = fb.BufferContext(fbData);
        final rootOffset = buffer.derefObject(0);
        final pubKeyParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 6, '');
        final contactsParam = const fb.ListReader<String>(
          fb.StringReader(asciiOptimization: true),
          lazy: false,
        ).vTableGet(buffer, rootOffset, 8, []);
        final object =
            DbContactList(pubKey: pubKeyParam, contacts: contactsParam)
              ..dbId = const fb.Int64Reader().vTableGet(
                buffer,
                rootOffset,
                4,
                0,
              )
              ..contactRelays = const fb.ListReader<String>(
                fb.StringReader(asciiOptimization: true),
                lazy: false,
              ).vTableGet(buffer, rootOffset, 10, [])
              ..petnames = const fb.ListReader<String>(
                fb.StringReader(asciiOptimization: true),
                lazy: false,
              ).vTableGet(buffer, rootOffset, 12, [])
              ..followedTags = const fb.ListReader<String>(
                fb.StringReader(asciiOptimization: true),
                lazy: false,
              ).vTableGet(buffer, rootOffset, 14, [])
              ..followedCommunities = const fb.ListReader<String>(
                fb.StringReader(asciiOptimization: true),
                lazy: false,
              ).vTableGet(buffer, rootOffset, 16, [])
              ..followedEvents = const fb.ListReader<String>(
                fb.StringReader(asciiOptimization: true),
                lazy: false,
              ).vTableGet(buffer, rootOffset, 18, [])
              ..createdAt = const fb.Int64Reader().vTableGet(
                buffer,
                rootOffset,
                20,
                0,
              )
              ..loadedTimestamp = const fb.Int64Reader().vTableGetNullable(
                buffer,
                rootOffset,
                22,
              )
              ..sources = const fb.ListReader<String>(
                fb.StringReader(asciiOptimization: true),
                lazy: false,
              ).vTableGet(buffer, rootOffset, 24, []);

        return object;
      },
    ),
    DbMetadata: obx_int.EntityDefinition<DbMetadata>(
      model: _entities[1],
      toOneRelations: (DbMetadata object) => [],
      toManyRelations: (DbMetadata object) => {},
      getId: (DbMetadata object) => object.dbId,
      setId: (DbMetadata object, int id) {
        object.dbId = id;
      },
      objectToFB: (DbMetadata object, fb.Builder fbb) {
        final pubKeyOffset = fbb.writeString(object.pubKey);
        final nameOffset = object.name == null
            ? null
            : fbb.writeString(object.name!);
        final displayNameOffset = object.displayName == null
            ? null
            : fbb.writeString(object.displayName!);
        final pictureOffset = object.picture == null
            ? null
            : fbb.writeString(object.picture!);
        final bannerOffset = object.banner == null
            ? null
            : fbb.writeString(object.banner!);
        final websiteOffset = object.website == null
            ? null
            : fbb.writeString(object.website!);
        final aboutOffset = object.about == null
            ? null
            : fbb.writeString(object.about!);
        final nip05Offset = object.nip05 == null
            ? null
            : fbb.writeString(object.nip05!);
        final lud16Offset = object.lud16 == null
            ? null
            : fbb.writeString(object.lud16!);
        final lud06Offset = object.lud06 == null
            ? null
            : fbb.writeString(object.lud06!);
        final splitDisplayNameWordsOffset = object.splitDisplayNameWords == null
            ? null
            : fbb.writeList(
                object.splitDisplayNameWords!
                    .map(fbb.writeString)
                    .toList(growable: false),
              );
        final splitNameWordsOffset = object.splitNameWords == null
            ? null
            : fbb.writeList(
                object.splitNameWords!
                    .map(fbb.writeString)
                    .toList(growable: false),
              );
        fbb.startTable(16);
        fbb.addInt64(0, object.dbId);
        fbb.addOffset(1, pubKeyOffset);
        fbb.addOffset(2, nameOffset);
        fbb.addOffset(3, displayNameOffset);
        fbb.addOffset(4, pictureOffset);
        fbb.addOffset(5, bannerOffset);
        fbb.addOffset(6, websiteOffset);
        fbb.addOffset(7, aboutOffset);
        fbb.addOffset(8, nip05Offset);
        fbb.addOffset(9, lud16Offset);
        fbb.addOffset(10, lud06Offset);
        fbb.addInt64(11, object.updatedAt);
        fbb.addInt64(12, object.refreshedTimestamp);
        fbb.addOffset(13, splitDisplayNameWordsOffset);
        fbb.addOffset(14, splitNameWordsOffset);
        fbb.finish(fbb.endTable());
        return object.dbId;
      },
      objectFromFB: (obx.Store store, ByteData fbData) {
        final buffer = fb.BufferContext(fbData);
        final rootOffset = buffer.derefObject(0);
        final pubKeyParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 6, '');
        final nameParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGetNullable(buffer, rootOffset, 8);
        final displayNameParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGetNullable(buffer, rootOffset, 10);
        final splitNameWordsParam = const fb.ListReader<String>(
          fb.StringReader(asciiOptimization: true),
          lazy: false,
        ).vTableGetNullable(buffer, rootOffset, 32);
        final splitDisplayNameWordsParam = const fb.ListReader<String>(
          fb.StringReader(asciiOptimization: true),
          lazy: false,
        ).vTableGetNullable(buffer, rootOffset, 30);
        final pictureParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGetNullable(buffer, rootOffset, 12);
        final bannerParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGetNullable(buffer, rootOffset, 14);
        final websiteParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGetNullable(buffer, rootOffset, 16);
        final aboutParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGetNullable(buffer, rootOffset, 18);
        final nip05Param = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGetNullable(buffer, rootOffset, 20);
        final lud16Param = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGetNullable(buffer, rootOffset, 22);
        final lud06Param = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGetNullable(buffer, rootOffset, 24);
        final updatedAtParam = const fb.Int64Reader().vTableGetNullable(
          buffer,
          rootOffset,
          26,
        );
        final refreshedTimestampParam = const fb.Int64Reader()
            .vTableGetNullable(buffer, rootOffset, 28);
        final object = DbMetadata(
          pubKey: pubKeyParam,
          name: nameParam,
          displayName: displayNameParam,
          splitNameWords: splitNameWordsParam,
          splitDisplayNameWords: splitDisplayNameWordsParam,
          picture: pictureParam,
          banner: bannerParam,
          website: websiteParam,
          about: aboutParam,
          nip05: nip05Param,
          lud16: lud16Param,
          lud06: lud06Param,
          updatedAt: updatedAtParam,
          refreshedTimestamp: refreshedTimestampParam,
        )..dbId = const fb.Int64Reader().vTableGet(buffer, rootOffset, 4, 0);

        return object;
      },
    ),
    DbNip01Event: obx_int.EntityDefinition<DbNip01Event>(
      model: _entities[2],
      toOneRelations: (DbNip01Event object) => [],
      toManyRelations: (DbNip01Event object) => {},
      getId: (DbNip01Event object) => object.dbId,
      setId: (DbNip01Event object, int id) {
        object.dbId = id;
      },
      objectToFB: (DbNip01Event object, fb.Builder fbb) {
        final nostrIdOffset = fbb.writeString(object.nostrId);
        final pubKeyOffset = fbb.writeString(object.pubKey);
        final contentOffset = fbb.writeString(object.content);
        final sigOffset = fbb.writeString(object.sig);
        final sourcesOffset = fbb.writeList(
          object.sources.map(fbb.writeString).toList(growable: false),
        );
        final dbTagsOffset = fbb.writeList(
          object.dbTags.map(fbb.writeString).toList(growable: false),
        );
        fbb.startTable(11);
        fbb.addInt64(0, object.dbId);
        fbb.addOffset(1, nostrIdOffset);
        fbb.addOffset(2, pubKeyOffset);
        fbb.addInt64(3, object.createdAt);
        fbb.addInt64(4, object.kind);
        fbb.addOffset(5, contentOffset);
        fbb.addOffset(6, sigOffset);
        fbb.addBool(7, object.validSig);
        fbb.addOffset(8, sourcesOffset);
        fbb.addOffset(9, dbTagsOffset);
        fbb.finish(fbb.endTable());
        return object.dbId;
      },
      objectFromFB: (obx.Store store, ByteData fbData) {
        final buffer = fb.BufferContext(fbData);
        final rootOffset = buffer.derefObject(0);
        final pubKeyParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 8, '');
        final kindParam = const fb.Int64Reader().vTableGet(
          buffer,
          rootOffset,
          12,
          0,
        );
        final dbTagsParam = const fb.ListReader<String>(
          fb.StringReader(asciiOptimization: true),
          lazy: false,
        ).vTableGet(buffer, rootOffset, 22, []);
        final contentParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 14, '');
        final createdAtParam = const fb.Int64Reader().vTableGet(
          buffer,
          rootOffset,
          10,
          0,
        );
        final object =
            DbNip01Event(
                pubKey: pubKeyParam,
                kind: kindParam,
                dbTags: dbTagsParam,
                content: contentParam,
                createdAt: createdAtParam,
              )
              ..dbId = const fb.Int64Reader().vTableGet(
                buffer,
                rootOffset,
                4,
                0,
              )
              ..nostrId = const fb.StringReader(
                asciiOptimization: true,
              ).vTableGet(buffer, rootOffset, 6, '')
              ..sig = const fb.StringReader(
                asciiOptimization: true,
              ).vTableGet(buffer, rootOffset, 16, '')
              ..validSig = const fb.BoolReader().vTableGetNullable(
                buffer,
                rootOffset,
                18,
              )
              ..sources = const fb.ListReader<String>(
                fb.StringReader(asciiOptimization: true),
                lazy: false,
              ).vTableGet(buffer, rootOffset, 20, []);

        return object;
      },
    ),
    DbTag: obx_int.EntityDefinition<DbTag>(
      model: _entities[3],
      toOneRelations: (DbTag object) => [],
      toManyRelations: (DbTag object) => {},
      getId: (DbTag object) => object.id,
      setId: (DbTag object, int id) {
        object.id = id;
      },
      objectToFB: (DbTag object, fb.Builder fbb) {
        final keyOffset = fbb.writeString(object.key);
        final valueOffset = fbb.writeString(object.value);
        final markerOffset = object.marker == null
            ? null
            : fbb.writeString(object.marker!);
        final elementsOffset = fbb.writeList(
          object.elements.map(fbb.writeString).toList(growable: false),
        );
        fbb.startTable(6);
        fbb.addInt64(0, object.id);
        fbb.addOffset(1, keyOffset);
        fbb.addOffset(2, valueOffset);
        fbb.addOffset(3, markerOffset);
        fbb.addOffset(4, elementsOffset);
        fbb.finish(fbb.endTable());
        return object.id;
      },
      objectFromFB: (obx.Store store, ByteData fbData) {
        final buffer = fb.BufferContext(fbData);
        final rootOffset = buffer.derefObject(0);
        final keyParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 6, '');
        final valueParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 8, '');
        final markerParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGetNullable(buffer, rootOffset, 10);
        final elementsParam = const fb.ListReader<String>(
          fb.StringReader(asciiOptimization: true),
          lazy: false,
        ).vTableGet(buffer, rootOffset, 12, []);
        final object = DbTag(
          key: keyParam,
          value: valueParam,
          marker: markerParam,
          elements: elementsParam,
        )..id = const fb.Int64Reader().vTableGet(buffer, rootOffset, 4, 0);

        return object;
      },
    ),
    DbNip05: obx_int.EntityDefinition<DbNip05>(
      model: _entities[4],
      toOneRelations: (DbNip05 object) => [],
      toManyRelations: (DbNip05 object) => {},
      getId: (DbNip05 object) => object.dbId,
      setId: (DbNip05 object, int id) {
        object.dbId = id;
      },
      objectToFB: (DbNip05 object, fb.Builder fbb) {
        final pubKeyOffset = fbb.writeString(object.pubKey);
        final nip05Offset = fbb.writeString(object.nip05);
        final relaysOffset = fbb.writeList(
          object.relays.map(fbb.writeString).toList(growable: false),
        );
        fbb.startTable(8);
        fbb.addInt64(0, object.dbId);
        fbb.addOffset(1, pubKeyOffset);
        fbb.addOffset(2, nip05Offset);
        fbb.addBool(3, object.valid);
        fbb.addInt64(5, object.networkFetchTime);
        fbb.addOffset(6, relaysOffset);
        fbb.finish(fbb.endTable());
        return object.dbId;
      },
      objectFromFB: (obx.Store store, ByteData fbData) {
        final buffer = fb.BufferContext(fbData);
        final rootOffset = buffer.derefObject(0);
        final pubKeyParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 6, '');
        final nip05Param = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 8, '');
        final validParam = const fb.BoolReader().vTableGet(
          buffer,
          rootOffset,
          10,
          false,
        );
        final networkFetchTimeParam = const fb.Int64Reader().vTableGetNullable(
          buffer,
          rootOffset,
          14,
        );
        final relaysParam = const fb.ListReader<String>(
          fb.StringReader(asciiOptimization: true),
          lazy: false,
        ).vTableGet(buffer, rootOffset, 16, []);
        final object = DbNip05(
          pubKey: pubKeyParam,
          nip05: nip05Param,
          valid: validParam,
          networkFetchTime: networkFetchTimeParam,
          relays: relaysParam,
        )..dbId = const fb.Int64Reader().vTableGet(buffer, rootOffset, 4, 0);

        return object;
      },
    ),
    DbUserRelayList: obx_int.EntityDefinition<DbUserRelayList>(
      model: _entities[5],
      toOneRelations: (DbUserRelayList object) => [],
      toManyRelations: (DbUserRelayList object) => {},
      getId: (DbUserRelayList object) => object.dbId,
      setId: (DbUserRelayList object, int id) {
        object.dbId = id;
      },
      objectToFB: (DbUserRelayList object, fb.Builder fbb) {
        final pubKeyOffset = fbb.writeString(object.pubKey);
        final relaysJsonOffset = fbb.writeString(object.relaysJson);
        fbb.startTable(6);
        fbb.addInt64(0, object.dbId);
        fbb.addOffset(1, pubKeyOffset);
        fbb.addInt64(2, object.createdAt);
        fbb.addInt64(3, object.refreshedTimestamp);
        fbb.addOffset(4, relaysJsonOffset);
        fbb.finish(fbb.endTable());
        return object.dbId;
      },
      objectFromFB: (obx.Store store, ByteData fbData) {
        final buffer = fb.BufferContext(fbData);
        final rootOffset = buffer.derefObject(0);
        final pubKeyParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 6, '');
        final relaysJsonParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 12, '');
        final createdAtParam = const fb.Int64Reader().vTableGet(
          buffer,
          rootOffset,
          8,
          0,
        );
        final refreshedTimestampParam = const fb.Int64Reader().vTableGet(
          buffer,
          rootOffset,
          10,
          0,
        );
        final object = DbUserRelayList(
          pubKey: pubKeyParam,
          relaysJson: relaysJsonParam,
          createdAt: createdAtParam,
          refreshedTimestamp: refreshedTimestampParam,
        )..dbId = const fb.Int64Reader().vTableGet(buffer, rootOffset, 4, 0);

        return object;
      },
    ),
    DbRelaySet: obx_int.EntityDefinition<DbRelaySet>(
      model: _entities[6],
      toOneRelations: (DbRelaySet object) => [],
      toManyRelations: (DbRelaySet object) => {},
      getId: (DbRelaySet object) => object.dbId,
      setId: (DbRelaySet object, int id) {
        object.dbId = id;
      },
      objectToFB: (DbRelaySet object, fb.Builder fbb) {
        final idOffset = fbb.writeString(object.id);
        final nameOffset = fbb.writeString(object.name);
        final pubKeyOffset = fbb.writeString(object.pubKey);
        final directionOffset = fbb.writeString(object.direction);
        final relaysMapJsonOffset = fbb.writeString(object.relaysMapJson);
        fbb.startTable(9);
        fbb.addInt64(0, object.dbId);
        fbb.addOffset(1, idOffset);
        fbb.addOffset(2, nameOffset);
        fbb.addOffset(3, pubKeyOffset);
        fbb.addInt64(4, object.relayMinCountPerPubkey);
        fbb.addOffset(5, directionOffset);
        fbb.addOffset(6, relaysMapJsonOffset);
        fbb.addBool(7, object.fallbackToBootstrapRelays);
        fbb.finish(fbb.endTable());
        return object.dbId;
      },
      objectFromFB: (obx.Store store, ByteData fbData) {
        final buffer = fb.BufferContext(fbData);
        final rootOffset = buffer.derefObject(0);
        final idParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 6, '');
        final nameParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 8, '');
        final pubKeyParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 10, '');
        final relayMinCountPerPubkeyParam = const fb.Int64Reader().vTableGet(
          buffer,
          rootOffset,
          12,
          0,
        );
        final directionParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 14, '');
        final relaysMapJsonParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 16, '');
        final fallbackToBootstrapRelaysParam = const fb.BoolReader().vTableGet(
          buffer,
          rootOffset,
          18,
          false,
        );
        final object = DbRelaySet(
          id: idParam,
          name: nameParam,
          pubKey: pubKeyParam,
          relayMinCountPerPubkey: relayMinCountPerPubkeyParam,
          direction: directionParam,
          relaysMapJson: relaysMapJsonParam,
          fallbackToBootstrapRelays: fallbackToBootstrapRelaysParam,
        )..dbId = const fb.Int64Reader().vTableGet(buffer, rootOffset, 4, 0);

        return object;
      },
    ),
    DbFilterFetchedRangeRecord:
        obx_int.EntityDefinition<DbFilterFetchedRangeRecord>(
          model: _entities[7],
          toOneRelations: (DbFilterFetchedRangeRecord object) => [],
          toManyRelations: (DbFilterFetchedRangeRecord object) => {},
          getId: (DbFilterFetchedRangeRecord object) => object.dbId,
          setId: (DbFilterFetchedRangeRecord object, int id) {
            object.dbId = id;
          },
          objectToFB: (DbFilterFetchedRangeRecord object, fb.Builder fbb) {
            final filterHashOffset = fbb.writeString(object.filterHash);
            final relayUrlOffset = fbb.writeString(object.relayUrl);
            fbb.startTable(6);
            fbb.addInt64(0, object.dbId);
            fbb.addOffset(1, filterHashOffset);
            fbb.addOffset(2, relayUrlOffset);
            fbb.addInt64(3, object.rangeStart);
            fbb.addInt64(4, object.rangeEnd);
            fbb.finish(fbb.endTable());
            return object.dbId;
          },
          objectFromFB: (obx.Store store, ByteData fbData) {
            final buffer = fb.BufferContext(fbData);
            final rootOffset = buffer.derefObject(0);
            final filterHashParam = const fb.StringReader(
              asciiOptimization: true,
            ).vTableGet(buffer, rootOffset, 6, '');
            final relayUrlParam = const fb.StringReader(
              asciiOptimization: true,
            ).vTableGet(buffer, rootOffset, 8, '');
            final rangeStartParam = const fb.Int64Reader().vTableGet(
              buffer,
              rootOffset,
              10,
              0,
            );
            final rangeEndParam = const fb.Int64Reader().vTableGet(
              buffer,
              rootOffset,
              12,
              0,
            );
            final object =
                DbFilterFetchedRangeRecord(
                    filterHash: filterHashParam,
                    relayUrl: relayUrlParam,
                    rangeStart: rangeStartParam,
                    rangeEnd: rangeEndParam,
                  )
                  ..dbId = const fb.Int64Reader().vTableGet(
                    buffer,
                    rootOffset,
                    4,
                    0,
                  );

            return object;
          },
        ),
  };

  return obx_int.ModelDefinition(model, bindings);
}