// Package imports: import 'package:built_collection/built_collection.dart'; import 'package:built_value/built_value.dart'; import 'package:built_value/serializer.dart'; // Project imports: import 'package:invoiceninja_flutter/data/models/entities.dart'; part 'import_model.g.dart'; abstract class PreImportResponse implements Built { factory PreImportResponse() { return _$PreImportResponse._( hash: '', mappings: BuiltMap(), ); } 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._( available: BuiltList(), headers: BuiltList>(), ); } 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 String bankAccountId, required BuiltMap columnMap, }) { return _$ImportRequest._( hash: hash, importType: importType, skipHeader: skipHeader, columnMap: columnMap, bankAccountId: bankAccountId, ); } ImportRequest._(); @override @memoized int get hashCode; String get hash; @BuiltValueField(wireName: 'import_type') String get importType; @BuiltValueField(wireName: 'bank_integration_id') String get bankAccountId; @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.apiValue: 'clients', EntityType.product.apiValue: 'products', EntityType.invoice.apiValue: 'invoices', EntityType.recurringInvoice.apiValue: 'recurring_invoices', EntityType.payment.apiValue: 'payments', EntityType.task.apiValue: 'tasks', EntityType.vendor.apiValue: 'vendors', EntityType.expense.apiValue: 'expenses', EntityType.transaction.apiValue: 'transactions', }; 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); } class ExportType extends EnumClass { const ExportType._(String name) : super(name); static Serializer get serializer => _$exportTypeSerializer; static const ExportType activities = _$activities; static const ExportType clients = _$clients; static const ExportType client_contacts = _$client_contacts; static const ExportType credits = _$credits; static const ExportType documents = _$documents; static const ExportType expenses = _$expenses; static const ExportType invoices = _$invoices; static const ExportType invoice_items = _$invoice_items; static const ExportType quotes = _$quotes; static const ExportType quote_items = _$quote_items; static const ExportType recurring_invoices = _$recurring_invoices; static const ExportType payments = _$payments; static const ExportType products = _$products; static const ExportType tasks = _$tasks; static const ExportType profitloss = _$profitloss; static const ExportType vendor = _$vendor; static const ExportType purchase_order = _$purchase_order; static const ExportType purchase_order_item = _$purchase_order_item; static const ExportType ar_detailed = _$ar_detailed; static const ExportType ar_summary = _$ar_summary; static const ExportType client_balance = _$client_balance; static const ExportType client_sales = _$client_sales; static const ExportType tax_summary = _$tax_summary; static const ExportType user_sales = _$user_sales; static BuiltSet get values => _$exportValues; static ExportType valueOf(String name) => _$exportValueOf(name); }