import 'package:built_collection/built_collection.dart'; import 'package:built_value/built_value.dart'; import 'package:built_value/serializer.dart'; import 'package:flutter/foundation.dart'; import 'package:invoiceninja_flutter/data/models/entities.dart'; part 'import_model.g.dart'; abstract class PreImportResponse implements Built { factory PreImportResponse() { return _$PreImportResponse._(); } PreImportResponse._(); @override @memoized int get hashCode; String get hash; BuiltMap get mappings; static Serializer get serializer => _$preImportResponseSerializer; } abstract class PreImportResponseEntityDetails implements Built { factory PreImportResponseEntityDetails() { return _$PreImportResponseEntityDetails._(); } PreImportResponseEntityDetails._(); @override @memoized int get hashCode; BuiltList get available; BuiltList> get headers; BuiltList get fields1 => headers.isEmpty ? BuiltList() : headers[0]; BuiltList get fields2 => headers.length < 2 ? BuiltList() : headers[1]; static Serializer get serializer => _$preImportResponseEntityDetailsSerializer; } abstract class ImportRequest implements Built { factory ImportRequest({ @required String hash, @required String importType, @required bool skipHeader, @required BuiltMap columnMap, }) { return _$ImportRequest._( hash: hash, importType: importType, skipHeader: skipHeader, columnMap: columnMap, ); } ImportRequest._(); @override @memoized int get hashCode; String get hash; @BuiltValueField(wireName: 'import_type') String get importType; @BuiltValueField(wireName: 'skip_header') bool get skipHeader; @BuiltValueField(wireName: 'column_map') BuiltMap get columnMap; static Serializer get serializer => _$importRequestSerializer; } abstract class ImportRequestMapping implements Built { factory ImportRequestMapping(BuiltMap mapping) { return _$ImportRequestMapping._(mapping: mapping); } ImportRequestMapping._(); @override @memoized int get hashCode; @BuiltValueField(wireName: 'mapping') BuiltMap get mapping; static Serializer get serializer => _$importRequestMappingSerializer; } class ImportType extends EnumClass { const ImportType._(String name) : super(name); static Serializer get serializer => _$importTypeSerializer; static const ImportType csv = _$csv; static const ImportType json = _$json; static const ImportType freshbooks = _$freshbooks; static const ImportType invoice2go = _$invoice2go; static const ImportType invoicely = _$invoicely; static const ImportType waveaccounting = _$waveaccounting; static const ImportType zoho = _$zoho; static BuiltSet get values => _$typeValues; Map get uploadParts { switch (this) { case ImportType.json: return { 'json': 'json', }; case ImportType.csv: return { EntityType.client.toString(): 'clients', EntityType.invoice.toString(): 'invoices', EntityType.payment.toString(): 'payments', EntityType.product.toString(): 'products', EntityType.vendor.toString(): 'vendors', EntityType.expense.toString(): 'expenses', }; case ImportType.freshbooks: case ImportType.invoicely: return { EntityType.client.toString(): 'clients', EntityType.invoice.toString(): 'invoices', }; case ImportType.waveaccounting: return { EntityType.client.toString(): 'clients', EntityType.invoice.toString(): 'accounting', }; case ImportType.zoho: return { EntityType.client.toString(): 'contacts', EntityType.invoice.toString(): 'invoices', }; case ImportType.invoice2go: return { EntityType.invoice.toString(): 'invoices', }; default: return {}; } } static ImportType valueOf(String name) => _$typeValueOf(name); }