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(6, 263734506821907740),
      lastIndexId: const obx_int.IdUid(0, 0),
      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!);
          fbb.startTable(5);
          fbb.addInt64(0, object.id);
          fbb.addOffset(1, keyOffset);
          fbb.addOffset(2, valueOffset);
          fbb.addOffset(3, markerOffset);
          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 object = DbTag(
              key: keyParam, value: valueParam, marker: markerParam)
            ..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;
        })
  };

  return obx_int.ModelDefinition(model, bindings);
}