initSuppliers function

Future<void> initSuppliers(
  1. SharedDatabase database
)

Implementation

Future<void> initSuppliers(SharedDatabase database) async {
  String content = await AssetsUtils.loadTextAsset(
    "statics/init-data/suppliers.txt",
  );

  List<SupplierTypeData> supplierTypes = await database
      .select(database.supplierType)
      .get();
  Map<String, int> supplierTypeMap = {
    for (var v in supplierTypes) v.code: v.id,
  };

  //
  List<String> lines = content.split("\n");
  for (String li in lines) {
    String line = li.trim();
    if (line.startsWith("#") || line.isEmpty) {
      continue;
    }
    List<String> values = line.split(";");
    //
    // @line: "AlbumCode, Name,YoutubeCode,Locked,Published,ImageName"
    //
    String name = values[0].trim();
    String typeCode = values[1].trim();
    String imageName = values[2].trim();
    String email = values[3].trim();
    String description = values[4].trim();

    await database
        .into(database.supplier)
        .insert(
          SupplierCompanion.insert(
            name: name,
            active: true,
            email: email,
            address: Value.absent(),
            phone: Value.absent(),
            description: Value.absentIfNull(description),
            supplierTypeId: supplierTypeMap[typeCode]!,
            imagePath: Value("/static/images/supplier/$imageName"),
          ),
        );
  }
}