import 'dart:convert'; import 'package:flutter/services.dart'; import 'package:marco/helpers/services/json_decoder.dart'; import 'package:marco/model/identifier_model.dart'; class Customer extends IdentifierModel { final String firstName, lastName, phoneNumber, projectName, balance; final double ordersCount; final DateTime lastOrder; String get fullName => '$firstName $lastName $projectName'; Customer( super.id, this.firstName, this.lastName, this.phoneNumber, this.balance, this.ordersCount, this.lastOrder, this.projectName, ); static Customer fromJSON(Map json) { JSONDecoder decoder = JSONDecoder(json); String firstName = decoder.getString('first_name'); String lastName = decoder.getString('last_name'); String phoneNumber = decoder.getString('phone_number'); String balance = decoder.getString('balance'); double ordersCount = decoder.getDouble('order_count'); DateTime lastOrder = decoder.getDateTime('last_order'); String projectName = decoder.getString('project_name'); return Customer( decoder.getId, firstName, lastName, phoneNumber, balance, ordersCount, lastOrder, projectName, ); } static List listFromJSON(List list) { return list.map((e) => Customer.fromJSON(e)).toList(); } static List? _dummyList; static Future> get dummyList async { if (_dummyList == null) { dynamic data = json.decode(await getData()); _dummyList = listFromJSON(data); } return _dummyList!.sublist(0, 10); } static Future getData() async { return await rootBundle.loadString('assets/data/customer.json'); } }