clean_repo_objectbox 1.2.2-RELEASE.20221217 icon indicating copy to clipboard operation
clean_repo_objectbox: ^1.2.2-RELEASE.20221217 copied to clipboard

`clean_repo_objectbox` pretende ser un framework para facilitar y abstraer el uso de la BD ObjectBox en aplicaciones con Clean Arquitecture

clean_repo_objectbox #

clean_repo_objectbox pretende ser un framework para facilitar y abstraer el uso de la BD ObjectBox en aplicaciones con Clean Arquitecture

Table of Contents #

Ejemplo de uso #

A continuación el código de como usarlo para hacer un CRUD repo que interactúe con ObjectBox y se integre con facilidad a Clean.

Entidad #

@Entity() 
class ParentEntity extends BasicEntityObject<ParentDomain> {
  static final ParentConverter CONVERTER = ParentConverter();//see example for details

  @Id()
  int id;

  String name;

  @Property(type: PropertyType.date)
  DateTime bornDay;

  ///todo: docs => no se puede estandarizar, es una buena práctica
  ParentEntity.fromDomain(ParentDomain domain)
      : id = domain.id,
        name = domain.name,
        bornDay = domain.bornDay;

  //@Backlink()
  //final childs = ToMany<ChildEntity>();

  ParentEntity(this.name, this.bornDay,
      {this.id = 0}); //default construct, DON'T REMOVE

  //this is the one to use
  ParentEntity.build({required this.name, this.id = 0, DateTime? date})
      : bornDay = date ?? DateTime.now();

  @override
  ParentDomain toDomain() {
    return ParentDomain(id: id, name: name, bornDay: bornDay);
  }
}

Definición #

import 'package:clean_repo_objectbox/CleanObjectBoxExporter.dart';
import 'package:clean_repo_objectbox_example/repo/objectbox_repo_exporter.dart';

abstract class ParentRepoExternal extends ObjectBoxCRUDRepositoryExternal<ParentEntity> {
}

Implementación #

import 'package:clean_repo_objectbox/CleanObjectBoxExporter.dart';
import 'package:clean_repo_objectbox_example/repo/objectbox_repo_exporter.dart';
import 'package:objectbox/objectbox.dart';

class ParentRepoExternalImpl
    extends DefaultObjectBoxCRUDRepositoryExternal<ParentEntity>
    implements ParentRepoExternal {
  ParentRepoExternalImpl(Store store) : super(store);
}

Init #

Store store = await openStore().then((value) {
  ParentRepo PARENT_REPO = ParentRepoImpl(ParentRepoExternalImpl(value));
  return value;
});
1
likes
110
pub points
17%
popularity

Publisher

unverified uploader

`clean_repo_objectbox` pretende ser un framework para facilitar y abstraer el uso de la BD ObjectBox en aplicaciones con Clean Arquitecture

Repository (GitHub)

Documentation

API reference

License

Icon for licenses.Apache-2.0 (LICENSE)

Dependencies

clean_core, flat_buffers, flutter, objectbox, objectbox_flutter_libs

More

Packages that depend on clean_repo_objectbox