From a177ef5801c48932e3aea83bd672c99305751e7b Mon Sep 17 00:00:00 2001 From: mindnervestech Date: Thu, 14 Jun 2018 12:04:41 +0530 Subject: [PATCH] Created models for REST endpoints --- lib/data/models/credit_model.dart | 94 + lib/data/models/credit_model.g.dart | 636 +++++ lib/data/models/expense_model.dart | 175 ++ lib/data/models/expense_model.g.dart | 1189 +++++++++ lib/data/models/invoice_model.dart | 321 +++ lib/data/models/invoice_model.g.dart | 2182 +++++++++++++++++ lib/data/models/models.dart | 7 + lib/data/models/payment_model.dart | 104 + lib/data/models/payment_model.g.dart | 693 ++++++ lib/data/models/project_model.dart | 102 + lib/data/models/project_model.g.dart | 666 +++++ lib/data/models/serializers.dart | 14 + lib/data/models/serializers.g.dart | 60 + lib/data/models/task_model.dart | 106 + lib/data/models/task_model.g.dart | 679 +++++ lib/data/models/vendor_model.dart | 173 ++ lib/data/models/vendor_model.g.dart | 1233 ++++++++++ lib/data/repositories/credit_repository.dart | 50 + lib/data/repositories/expense_repository.dart | 50 + lib/data/repositories/invoice_repository.dart | 50 + lib/data/repositories/payment_repository.dart | 50 + lib/data/repositories/project_repository.dart | 50 + lib/data/repositories/task_repository.dart | 50 + lib/data/repositories/vendor_repository.dart | 50 + 24 files changed, 8784 insertions(+) create mode 100644 lib/data/models/credit_model.dart create mode 100644 lib/data/models/credit_model.g.dart create mode 100644 lib/data/models/expense_model.dart create mode 100644 lib/data/models/expense_model.g.dart create mode 100644 lib/data/models/invoice_model.dart create mode 100644 lib/data/models/invoice_model.g.dart create mode 100644 lib/data/models/payment_model.dart create mode 100644 lib/data/models/payment_model.g.dart create mode 100644 lib/data/models/project_model.dart create mode 100644 lib/data/models/project_model.g.dart create mode 100644 lib/data/models/task_model.dart create mode 100644 lib/data/models/task_model.g.dart create mode 100644 lib/data/models/vendor_model.dart create mode 100644 lib/data/models/vendor_model.g.dart create mode 100644 lib/data/repositories/credit_repository.dart create mode 100644 lib/data/repositories/expense_repository.dart create mode 100644 lib/data/repositories/invoice_repository.dart create mode 100644 lib/data/repositories/payment_repository.dart create mode 100644 lib/data/repositories/project_repository.dart create mode 100644 lib/data/repositories/task_repository.dart create mode 100644 lib/data/repositories/vendor_repository.dart diff --git a/lib/data/models/credit_model.dart b/lib/data/models/credit_model.dart new file mode 100644 index 000000000..1abb25c6c --- /dev/null +++ b/lib/data/models/credit_model.dart @@ -0,0 +1,94 @@ +import 'package:built_collection/built_collection.dart'; +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:invoiceninja/data/models/entities.dart'; + +part 'credit_model.g.dart'; + +abstract class CreditListResponse implements Built { + + BuiltList get data; + + CreditListResponse._(); + factory CreditListResponse([updates(CreditListResponseBuilder b)]) = _$CreditListResponse; + static Serializer get serializer => _$creditListResponseSerializer; +} + +abstract class CreditItemResponse implements Built { + + CreditEntity get data; + + CreditItemResponse._(); + factory CreditItemResponse([updates(CreditItemResponseBuilder b)]) = _$CreditItemResponse; + static Serializer get serializer => _$creditItemResponseSerializer; +} + + +class CreditFields { + static const String amount = 'amount'; + static const String balance = 'balance'; + static const String creditDate = 'creditDate'; + static const String creditNumber = 'creditNumber'; + static const String privateNotes = 'privateNotes'; + static const String publicNotes = 'publicNotes'; + static const String clientId = 'clientId'; + + static const String updatedAt = 'updatedAt'; + static const String archivedAt = 'archivedAt'; + static const String isDeleted = 'isDeleted'; +} + +abstract class CreditEntity extends Object with BaseEntity implements Built { + + @nullable + double get amount; + + @nullable + double get balance; + + @nullable + @BuiltValueField(wireName: 'credit_date') + String get creditDate; + + @nullable + @BuiltValueField(wireName: 'credit_number') + String get creditNumber; + + @nullable + @BuiltValueField(wireName: 'private_notes') + String get privateNotes; + + @nullable + @BuiltValueField(wireName: 'public_notes') + String get publicNotes; + + @nullable + @BuiltValueField(wireName: 'client_id') + int get clientId; + + + int compareTo(CreditEntity credit, String sortField, bool sortAscending) { + int response = 0; + CreditEntity creditA = sortAscending ? this : credit; + CreditEntity creditB = sortAscending ? credit: this; + + switch (sortField) { + case CreditFields.amount: + response = creditA.amount.compareTo(creditB.amount); + } + + return response; + } + + bool matchesSearch(String search) { + if (search == null || search.isEmpty) { + return true; + } + + return publicNotes.contains(search); + } + + CreditEntity._(); + factory CreditEntity([updates(CreditEntityBuilder b)]) = _$CreditEntity; + static Serializer get serializer => _$creditEntitySerializer; +} diff --git a/lib/data/models/credit_model.g.dart b/lib/data/models/credit_model.g.dart new file mode 100644 index 000000000..23f0388cf --- /dev/null +++ b/lib/data/models/credit_model.g.dart @@ -0,0 +1,636 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'credit_model.dart'; + +// ************************************************************************** +// Generator: BuiltValueGenerator +// ************************************************************************** + +// ignore_for_file: always_put_control_body_on_new_line +// ignore_for_file: annotate_overrides +// ignore_for_file: avoid_annotating_with_dynamic +// ignore_for_file: avoid_returning_this +// ignore_for_file: omit_local_variable_types +// ignore_for_file: prefer_expression_function_bodies +// ignore_for_file: sort_constructors_first + +Serializer _$creditListResponseSerializer = + new _$CreditListResponseSerializer(); +Serializer _$creditItemResponseSerializer = + new _$CreditItemResponseSerializer(); +Serializer _$creditEntitySerializer = + new _$CreditEntitySerializer(); + +class _$CreditListResponseSerializer + implements StructuredSerializer { + @override + final Iterable types = const [CreditListResponse, _$CreditListResponse]; + @override + final String wireName = 'CreditListResponse'; + + @override + Iterable serialize(Serializers serializers, CreditListResponse object, + {FullType specifiedType: FullType.unspecified}) { + final result = [ + 'data', + serializers.serialize(object.data, + specifiedType: + const FullType(BuiltList, const [const FullType(CreditEntity)])), + ]; + + return result; + } + + @override + CreditListResponse deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType: FullType.unspecified}) { + final result = new CreditListResponseBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'data': + result.data.replace(serializers.deserialize(value, + specifiedType: const FullType( + BuiltList, const [const FullType(CreditEntity)])) + as BuiltList); + break; + } + } + + return result.build(); + } +} + +class _$CreditItemResponseSerializer + implements StructuredSerializer { + @override + final Iterable types = const [CreditItemResponse, _$CreditItemResponse]; + @override + final String wireName = 'CreditItemResponse'; + + @override + Iterable serialize(Serializers serializers, CreditItemResponse object, + {FullType specifiedType: FullType.unspecified}) { + final result = [ + 'data', + serializers.serialize(object.data, + specifiedType: const FullType(CreditEntity)), + ]; + + return result; + } + + @override + CreditItemResponse deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType: FullType.unspecified}) { + final result = new CreditItemResponseBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'data': + result.data.replace(serializers.deserialize(value, + specifiedType: const FullType(CreditEntity)) as CreditEntity); + break; + } + } + + return result.build(); + } +} + +class _$CreditEntitySerializer implements StructuredSerializer { + @override + final Iterable types = const [CreditEntity, _$CreditEntity]; + @override + final String wireName = 'CreditEntity'; + + @override + Iterable serialize(Serializers serializers, CreditEntity object, + {FullType specifiedType: FullType.unspecified}) { + final result = []; + if (object.amount != null) { + result + ..add('amount') + ..add(serializers.serialize(object.amount, + specifiedType: const FullType(double))); + } + if (object.balance != null) { + result + ..add('balance') + ..add(serializers.serialize(object.balance, + specifiedType: const FullType(double))); + } + if (object.creditDate != null) { + result + ..add('credit_date') + ..add(serializers.serialize(object.creditDate, + specifiedType: const FullType(String))); + } + if (object.creditNumber != null) { + result + ..add('credit_number') + ..add(serializers.serialize(object.creditNumber, + specifiedType: const FullType(String))); + } + if (object.privateNotes != null) { + result + ..add('private_notes') + ..add(serializers.serialize(object.privateNotes, + specifiedType: const FullType(String))); + } + if (object.publicNotes != null) { + result + ..add('public_notes') + ..add(serializers.serialize(object.publicNotes, + specifiedType: const FullType(String))); + } + if (object.clientId != null) { + result + ..add('client_id') + ..add(serializers.serialize(object.clientId, + specifiedType: const FullType(int))); + } + if (object.id != null) { + result + ..add('id') + ..add(serializers.serialize(object.id, + specifiedType: const FullType(int))); + } + if (object.updatedAt != null) { + result + ..add('updated_at') + ..add(serializers.serialize(object.updatedAt, + specifiedType: const FullType(int))); + } + if (object.archivedAt != null) { + result + ..add('archived_at') + ..add(serializers.serialize(object.archivedAt, + specifiedType: const FullType(int))); + } + if (object.isDeleted != null) { + result + ..add('is_deleted') + ..add(serializers.serialize(object.isDeleted, + specifiedType: const FullType(bool))); + } + + return result; + } + + @override + CreditEntity deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType: FullType.unspecified}) { + final result = new CreditEntityBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'amount': + result.amount = serializers.deserialize(value, + specifiedType: const FullType(double)) as double; + break; + case 'balance': + result.balance = serializers.deserialize(value, + specifiedType: const FullType(double)) as double; + break; + case 'credit_date': + result.creditDate = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'credit_number': + result.creditNumber = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'private_notes': + result.privateNotes = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'public_notes': + result.publicNotes = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'client_id': + result.clientId = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'updated_at': + result.updatedAt = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'archived_at': + result.archivedAt = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'is_deleted': + result.isDeleted = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + break; + } + } + + return result.build(); + } +} + +class _$CreditListResponse extends CreditListResponse { + @override + final BuiltList data; + + factory _$CreditListResponse([void updates(CreditListResponseBuilder b)]) => + (new CreditListResponseBuilder()..update(updates)).build(); + + _$CreditListResponse._({this.data}) : super._() { + if (data == null) + throw new BuiltValueNullFieldError('CreditListResponse', 'data'); + } + + @override + CreditListResponse rebuild(void updates(CreditListResponseBuilder b)) => + (toBuilder()..update(updates)).build(); + + @override + CreditListResponseBuilder toBuilder() => + new CreditListResponseBuilder()..replace(this); + + @override + bool operator ==(dynamic other) { + if (identical(other, this)) return true; + if (other is! CreditListResponse) return false; + return data == other.data; + } + + @override + int get hashCode { + return $jf($jc(0, data.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('CreditListResponse') + ..add('data', data)) + .toString(); + } +} + +class CreditListResponseBuilder + implements Builder { + _$CreditListResponse _$v; + + ListBuilder _data; + ListBuilder get data => + _$this._data ??= new ListBuilder(); + set data(ListBuilder data) => _$this._data = data; + + CreditListResponseBuilder(); + + CreditListResponseBuilder get _$this { + if (_$v != null) { + _data = _$v.data?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(CreditListResponse other) { + if (other == null) throw new ArgumentError.notNull('other'); + _$v = other as _$CreditListResponse; + } + + @override + void update(void updates(CreditListResponseBuilder b)) { + if (updates != null) updates(this); + } + + @override + _$CreditListResponse build() { + _$CreditListResponse _$result; + try { + _$result = _$v ?? new _$CreditListResponse._(data: data.build()); + } catch (_) { + String _$failedField; + try { + _$failedField = 'data'; + data.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + 'CreditListResponse', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$CreditItemResponse extends CreditItemResponse { + @override + final CreditEntity data; + + factory _$CreditItemResponse([void updates(CreditItemResponseBuilder b)]) => + (new CreditItemResponseBuilder()..update(updates)).build(); + + _$CreditItemResponse._({this.data}) : super._() { + if (data == null) + throw new BuiltValueNullFieldError('CreditItemResponse', 'data'); + } + + @override + CreditItemResponse rebuild(void updates(CreditItemResponseBuilder b)) => + (toBuilder()..update(updates)).build(); + + @override + CreditItemResponseBuilder toBuilder() => + new CreditItemResponseBuilder()..replace(this); + + @override + bool operator ==(dynamic other) { + if (identical(other, this)) return true; + if (other is! CreditItemResponse) return false; + return data == other.data; + } + + @override + int get hashCode { + return $jf($jc(0, data.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('CreditItemResponse') + ..add('data', data)) + .toString(); + } +} + +class CreditItemResponseBuilder + implements Builder { + _$CreditItemResponse _$v; + + CreditEntityBuilder _data; + CreditEntityBuilder get data => _$this._data ??= new CreditEntityBuilder(); + set data(CreditEntityBuilder data) => _$this._data = data; + + CreditItemResponseBuilder(); + + CreditItemResponseBuilder get _$this { + if (_$v != null) { + _data = _$v.data?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(CreditItemResponse other) { + if (other == null) throw new ArgumentError.notNull('other'); + _$v = other as _$CreditItemResponse; + } + + @override + void update(void updates(CreditItemResponseBuilder b)) { + if (updates != null) updates(this); + } + + @override + _$CreditItemResponse build() { + _$CreditItemResponse _$result; + try { + _$result = _$v ?? new _$CreditItemResponse._(data: data.build()); + } catch (_) { + String _$failedField; + try { + _$failedField = 'data'; + data.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + 'CreditItemResponse', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$CreditEntity extends CreditEntity { + @override + final double amount; + @override + final double balance; + @override + final String creditDate; + @override + final String creditNumber; + @override + final String privateNotes; + @override + final String publicNotes; + @override + final int clientId; + @override + final int id; + @override + final int updatedAt; + @override + final int archivedAt; + @override + final bool isDeleted; + + factory _$CreditEntity([void updates(CreditEntityBuilder b)]) => + (new CreditEntityBuilder()..update(updates)).build(); + + _$CreditEntity._( + {this.amount, + this.balance, + this.creditDate, + this.creditNumber, + this.privateNotes, + this.publicNotes, + this.clientId, + this.id, + this.updatedAt, + this.archivedAt, + this.isDeleted}) + : super._(); + + @override + CreditEntity rebuild(void updates(CreditEntityBuilder b)) => + (toBuilder()..update(updates)).build(); + + @override + CreditEntityBuilder toBuilder() => new CreditEntityBuilder()..replace(this); + + @override + bool operator ==(dynamic other) { + if (identical(other, this)) return true; + if (other is! CreditEntity) return false; + return amount == other.amount && + balance == other.balance && + creditDate == other.creditDate && + creditNumber == other.creditNumber && + privateNotes == other.privateNotes && + publicNotes == other.publicNotes && + clientId == other.clientId && + id == other.id && + updatedAt == other.updatedAt && + archivedAt == other.archivedAt && + isDeleted == other.isDeleted; + } + + @override + int get hashCode { + return $jf($jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc($jc(0, amount.hashCode), + balance.hashCode), + creditDate.hashCode), + creditNumber.hashCode), + privateNotes.hashCode), + publicNotes.hashCode), + clientId.hashCode), + id.hashCode), + updatedAt.hashCode), + archivedAt.hashCode), + isDeleted.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('CreditEntity') + ..add('amount', amount) + ..add('balance', balance) + ..add('creditDate', creditDate) + ..add('creditNumber', creditNumber) + ..add('privateNotes', privateNotes) + ..add('publicNotes', publicNotes) + ..add('clientId', clientId) + ..add('id', id) + ..add('updatedAt', updatedAt) + ..add('archivedAt', archivedAt) + ..add('isDeleted', isDeleted)) + .toString(); + } +} + +class CreditEntityBuilder + implements Builder { + _$CreditEntity _$v; + + double _amount; + double get amount => _$this._amount; + set amount(double amount) => _$this._amount = amount; + + double _balance; + double get balance => _$this._balance; + set balance(double balance) => _$this._balance = balance; + + String _creditDate; + String get creditDate => _$this._creditDate; + set creditDate(String creditDate) => _$this._creditDate = creditDate; + + String _creditNumber; + String get creditNumber => _$this._creditNumber; + set creditNumber(String creditNumber) => _$this._creditNumber = creditNumber; + + String _privateNotes; + String get privateNotes => _$this._privateNotes; + set privateNotes(String privateNotes) => _$this._privateNotes = privateNotes; + + String _publicNotes; + String get publicNotes => _$this._publicNotes; + set publicNotes(String publicNotes) => _$this._publicNotes = publicNotes; + + int _clientId; + int get clientId => _$this._clientId; + set clientId(int clientId) => _$this._clientId = clientId; + + int _id; + int get id => _$this._id; + set id(int id) => _$this._id = id; + + int _updatedAt; + int get updatedAt => _$this._updatedAt; + set updatedAt(int updatedAt) => _$this._updatedAt = updatedAt; + + int _archivedAt; + int get archivedAt => _$this._archivedAt; + set archivedAt(int archivedAt) => _$this._archivedAt = archivedAt; + + bool _isDeleted; + bool get isDeleted => _$this._isDeleted; + set isDeleted(bool isDeleted) => _$this._isDeleted = isDeleted; + + CreditEntityBuilder(); + + CreditEntityBuilder get _$this { + if (_$v != null) { + _amount = _$v.amount; + _balance = _$v.balance; + _creditDate = _$v.creditDate; + _creditNumber = _$v.creditNumber; + _privateNotes = _$v.privateNotes; + _publicNotes = _$v.publicNotes; + _clientId = _$v.clientId; + _id = _$v.id; + _updatedAt = _$v.updatedAt; + _archivedAt = _$v.archivedAt; + _isDeleted = _$v.isDeleted; + _$v = null; + } + return this; + } + + @override + void replace(CreditEntity other) { + if (other == null) throw new ArgumentError.notNull('other'); + _$v = other as _$CreditEntity; + } + + @override + void update(void updates(CreditEntityBuilder b)) { + if (updates != null) updates(this); + } + + @override + _$CreditEntity build() { + final _$result = _$v ?? + new _$CreditEntity._( + amount: amount, + balance: balance, + creditDate: creditDate, + creditNumber: creditNumber, + privateNotes: privateNotes, + publicNotes: publicNotes, + clientId: clientId, + id: id, + updatedAt: updatedAt, + archivedAt: archivedAt, + isDeleted: isDeleted); + replace(_$result); + return _$result; + } +} diff --git a/lib/data/models/expense_model.dart b/lib/data/models/expense_model.dart new file mode 100644 index 000000000..79796c8ec --- /dev/null +++ b/lib/data/models/expense_model.dart @@ -0,0 +1,175 @@ +import 'package:built_collection/built_collection.dart'; +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:invoiceninja/data/models/entities.dart'; + +part 'expense_model.g.dart'; + +abstract class ExpenseListResponse implements Built { + + BuiltList get data; + + ExpenseListResponse._(); + factory ExpenseListResponse([updates(ExpenseListResponseBuilder b)]) = _$ExpenseListResponse; + static Serializer get serializer => _$expenseListResponseSerializer; +} + +abstract class ExpenseItemResponse implements Built { + + ExpenseEntity get data; + + ExpenseItemResponse._(); + factory ExpenseItemResponse([updates(ExpenseItemResponseBuilder b)]) = _$ExpenseItemResponse; + static Serializer get serializer => _$expenseItemResponseSerializer; +} + + +class ExpenseFields { + static const String privateNotes = 'privateNotes'; + static const String publicNotes = 'publicNotes'; + static const String shouldBeInvoiced = 'shouldBeInvoiced'; + static const String transactionId = 'transactionId'; + static const String transactionReference = 'transactionReference'; + static const String bankId = 'bankId'; + static const String expenseCurrencyId = 'expenseCurrencyId'; + static const String expenseCategoryId = 'expenseCategoryId'; + static const String amount = 'amount'; + static const String expenseDate = 'expenseDate'; + static const String exchangeRate = 'exchangeRate'; + static const String invoiceCurrencyId = 'invoiceCurrencyId'; + static const String taxName1 = 'taxName1'; + static const String taxName2 = 'taxName2'; + static const String taxRate1 = 'taxRate1'; + static const String taxRate2 = 'taxRate2'; + static const String clientId = 'clientId'; + static const String invoiceId = 'invoiceId'; + static const String vendorId = 'vendorId'; + static const String customValue1 = 'customValue1'; + static const String customValue2 = 'customValue2'; + + static const String updatedAt = 'updatedAt'; + static const String archivedAt = 'archivedAt'; + static const String isDeleted = 'isDeleted'; +} + +abstract class ExpenseEntity extends Object with BaseEntity implements Built { + + @nullable + @BuiltValueField(wireName: 'private_notes') + String get privateNotes; + + @nullable + @BuiltValueField(wireName: 'public_notes') + String get publicNotes; + + @nullable + @BuiltValueField(wireName: 'should_be_invoiced') + bool get shouldBeInvoiced; + + @nullable + @BuiltValueField(wireName: 'transaction_id') + String get transactionId; + + @nullable + @BuiltValueField(wireName: 'transaction_reference') + String get transactionReference; + + @nullable + @BuiltValueField(wireName: 'bank_id') + String get bankId; + + @nullable + @BuiltValueField(wireName: 'expense_currency_id') + int get expenseCurrencyId; + + @nullable + @BuiltValueField(wireName: 'expense_category_id') + int get exchangeCurrencyId; + + @nullable + double get amount; + + @nullable + @BuiltValueField(wireName: 'expense_date') + String get expenseDate; + + @nullable + @BuiltValueField(wireName: 'exchange_rate') + double get exchangeRate; + + @nullable + @BuiltValueField(wireName: 'invoiceCurrencyId') + int get invoiceCurrencyId; + + @nullable + @BuiltValueField(wireName: 'tax_name1') + String get taxName1; + + @nullable + @BuiltValueField(wireName: 'tax_rate1') + String get taxRate1; + + @nullable + @BuiltValueField(wireName: 'tax_rate2') + String get taxRate2; + + @nullable + @BuiltValueField(wireName: 'client_id') + int get clientId; + + @nullable + @BuiltValueField(wireName: 'invoice_id') + int get invoiceId; + + @nullable + @BuiltValueField(wireName: 'vendor_id') + int get vendorId; + + @nullable + @BuiltValueField(wireName: 'custom_value1') + String get customValue1; + + @nullable + @BuiltValueField(wireName: 'custom_value2') + String get customValue2; + + @nullable + @BuiltValueField(wireName: 'expense_category') + BuiltList get expenseCtegories; + + + int compareTo(ExpenseEntity expense, String sortField, bool sortAscending) { + int response = 0; + ExpenseEntity creditA = sortAscending ? this : expense; + ExpenseEntity creditB = sortAscending ? expense: this; + + switch (sortField) { + case ExpenseFields.amount: + response = creditA.amount.compareTo(creditB.amount); + } + + return response; + } + + bool matchesSearch(String search) { + if (search == null || search.isEmpty) { + return true; + } + + return privateNotes.contains(search); + } + + ExpenseEntity._(); + factory ExpenseEntity([updates(ExpenseEntityBuilder b)]) = _$ExpenseEntity; + static Serializer get serializer => _$expenseEntitySerializer; +} + +abstract class ExpenseCategoryEntity extends Object with BaseEntity implements Built { + + @nullable + String get name; + + ExpenseCategoryEntity._(); + factory ExpenseCategoryEntity([updates(ExpenseCategoryEntityBuilder b)]) = _$ExpenseCategoryEntity; + static Serializer get serializer => _$expenseCategoryEntitySerializer; +} \ No newline at end of file diff --git a/lib/data/models/expense_model.g.dart b/lib/data/models/expense_model.g.dart new file mode 100644 index 000000000..cb9f03b0b --- /dev/null +++ b/lib/data/models/expense_model.g.dart @@ -0,0 +1,1189 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'expense_model.dart'; + +// ************************************************************************** +// Generator: BuiltValueGenerator +// ************************************************************************** + +// ignore_for_file: always_put_control_body_on_new_line +// ignore_for_file: annotate_overrides +// ignore_for_file: avoid_annotating_with_dynamic +// ignore_for_file: avoid_returning_this +// ignore_for_file: omit_local_variable_types +// ignore_for_file: prefer_expression_function_bodies +// ignore_for_file: sort_constructors_first + +Serializer _$expenseListResponseSerializer = + new _$ExpenseListResponseSerializer(); +Serializer _$expenseItemResponseSerializer = + new _$ExpenseItemResponseSerializer(); +Serializer _$expenseEntitySerializer = + new _$ExpenseEntitySerializer(); +Serializer _$expenseCategoryEntitySerializer = + new _$ExpenseCategoryEntitySerializer(); + +class _$ExpenseListResponseSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + ExpenseListResponse, + _$ExpenseListResponse + ]; + @override + final String wireName = 'ExpenseListResponse'; + + @override + Iterable serialize(Serializers serializers, ExpenseListResponse object, + {FullType specifiedType: FullType.unspecified}) { + final result = [ + 'data', + serializers.serialize(object.data, + specifiedType: + const FullType(BuiltList, const [const FullType(ExpenseEntity)])), + ]; + + return result; + } + + @override + ExpenseListResponse deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType: FullType.unspecified}) { + final result = new ExpenseListResponseBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'data': + result.data.replace(serializers.deserialize(value, + specifiedType: const FullType( + BuiltList, const [const FullType(ExpenseEntity)])) + as BuiltList); + break; + } + } + + return result.build(); + } +} + +class _$ExpenseItemResponseSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + ExpenseItemResponse, + _$ExpenseItemResponse + ]; + @override + final String wireName = 'ExpenseItemResponse'; + + @override + Iterable serialize(Serializers serializers, ExpenseItemResponse object, + {FullType specifiedType: FullType.unspecified}) { + final result = [ + 'data', + serializers.serialize(object.data, + specifiedType: const FullType(ExpenseEntity)), + ]; + + return result; + } + + @override + ExpenseItemResponse deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType: FullType.unspecified}) { + final result = new ExpenseItemResponseBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'data': + result.data.replace(serializers.deserialize(value, + specifiedType: const FullType(ExpenseEntity)) as ExpenseEntity); + break; + } + } + + return result.build(); + } +} + +class _$ExpenseEntitySerializer implements StructuredSerializer { + @override + final Iterable types = const [ExpenseEntity, _$ExpenseEntity]; + @override + final String wireName = 'ExpenseEntity'; + + @override + Iterable serialize(Serializers serializers, ExpenseEntity object, + {FullType specifiedType: FullType.unspecified}) { + final result = []; + if (object.privateNotes != null) { + result + ..add('private_notes') + ..add(serializers.serialize(object.privateNotes, + specifiedType: const FullType(String))); + } + if (object.publicNotes != null) { + result + ..add('public_notes') + ..add(serializers.serialize(object.publicNotes, + specifiedType: const FullType(String))); + } + if (object.shouldBeInvoiced != null) { + result + ..add('should_be_invoiced') + ..add(serializers.serialize(object.shouldBeInvoiced, + specifiedType: const FullType(bool))); + } + if (object.transactionId != null) { + result + ..add('transaction_id') + ..add(serializers.serialize(object.transactionId, + specifiedType: const FullType(String))); + } + if (object.transactionReference != null) { + result + ..add('transaction_reference') + ..add(serializers.serialize(object.transactionReference, + specifiedType: const FullType(String))); + } + if (object.bankId != null) { + result + ..add('bank_id') + ..add(serializers.serialize(object.bankId, + specifiedType: const FullType(String))); + } + if (object.expenseCurrencyId != null) { + result + ..add('expense_currency_id') + ..add(serializers.serialize(object.expenseCurrencyId, + specifiedType: const FullType(int))); + } + if (object.exchangeCurrencyId != null) { + result + ..add('expense_category_id') + ..add(serializers.serialize(object.exchangeCurrencyId, + specifiedType: const FullType(int))); + } + if (object.amount != null) { + result + ..add('amount') + ..add(serializers.serialize(object.amount, + specifiedType: const FullType(double))); + } + if (object.expenseDate != null) { + result + ..add('expense_date') + ..add(serializers.serialize(object.expenseDate, + specifiedType: const FullType(String))); + } + if (object.exchangeRate != null) { + result + ..add('exchange_rate') + ..add(serializers.serialize(object.exchangeRate, + specifiedType: const FullType(double))); + } + if (object.invoiceCurrencyId != null) { + result + ..add('invoiceCurrencyId') + ..add(serializers.serialize(object.invoiceCurrencyId, + specifiedType: const FullType(int))); + } + if (object.taxName1 != null) { + result + ..add('tax_name1') + ..add(serializers.serialize(object.taxName1, + specifiedType: const FullType(String))); + } + if (object.taxRate1 != null) { + result + ..add('tax_rate1') + ..add(serializers.serialize(object.taxRate1, + specifiedType: const FullType(String))); + } + if (object.taxRate2 != null) { + result + ..add('tax_rate2') + ..add(serializers.serialize(object.taxRate2, + specifiedType: const FullType(String))); + } + if (object.clientId != null) { + result + ..add('client_id') + ..add(serializers.serialize(object.clientId, + specifiedType: const FullType(int))); + } + if (object.invoiceId != null) { + result + ..add('invoice_id') + ..add(serializers.serialize(object.invoiceId, + specifiedType: const FullType(int))); + } + if (object.vendorId != null) { + result + ..add('vendor_id') + ..add(serializers.serialize(object.vendorId, + specifiedType: const FullType(int))); + } + if (object.customValue1 != null) { + result + ..add('custom_value1') + ..add(serializers.serialize(object.customValue1, + specifiedType: const FullType(String))); + } + if (object.customValue2 != null) { + result + ..add('custom_value2') + ..add(serializers.serialize(object.customValue2, + specifiedType: const FullType(String))); + } + if (object.expenseCtegories != null) { + result + ..add('expense_category') + ..add(serializers.serialize(object.expenseCtegories, + specifiedType: const FullType( + BuiltList, const [const FullType(ExpenseCategoryEntity)]))); + } + if (object.id != null) { + result + ..add('id') + ..add(serializers.serialize(object.id, + specifiedType: const FullType(int))); + } + if (object.updatedAt != null) { + result + ..add('updated_at') + ..add(serializers.serialize(object.updatedAt, + specifiedType: const FullType(int))); + } + if (object.archivedAt != null) { + result + ..add('archived_at') + ..add(serializers.serialize(object.archivedAt, + specifiedType: const FullType(int))); + } + if (object.isDeleted != null) { + result + ..add('is_deleted') + ..add(serializers.serialize(object.isDeleted, + specifiedType: const FullType(bool))); + } + + return result; + } + + @override + ExpenseEntity deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType: FullType.unspecified}) { + final result = new ExpenseEntityBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'private_notes': + result.privateNotes = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'public_notes': + result.publicNotes = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'should_be_invoiced': + result.shouldBeInvoiced = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + break; + case 'transaction_id': + result.transactionId = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'transaction_reference': + result.transactionReference = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'bank_id': + result.bankId = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'expense_currency_id': + result.expenseCurrencyId = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'expense_category_id': + result.exchangeCurrencyId = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'amount': + result.amount = serializers.deserialize(value, + specifiedType: const FullType(double)) as double; + break; + case 'expense_date': + result.expenseDate = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'exchange_rate': + result.exchangeRate = serializers.deserialize(value, + specifiedType: const FullType(double)) as double; + break; + case 'invoiceCurrencyId': + result.invoiceCurrencyId = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'tax_name1': + result.taxName1 = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'tax_rate1': + result.taxRate1 = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'tax_rate2': + result.taxRate2 = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'client_id': + result.clientId = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'invoice_id': + result.invoiceId = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'vendor_id': + result.vendorId = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'custom_value1': + result.customValue1 = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'custom_value2': + result.customValue2 = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'expense_category': + result.expenseCtegories.replace(serializers.deserialize(value, + specifiedType: const FullType( + BuiltList, const [const FullType(ExpenseCategoryEntity)])) + as BuiltList); + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'updated_at': + result.updatedAt = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'archived_at': + result.archivedAt = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'is_deleted': + result.isDeleted = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + break; + } + } + + return result.build(); + } +} + +class _$ExpenseCategoryEntitySerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + ExpenseCategoryEntity, + _$ExpenseCategoryEntity + ]; + @override + final String wireName = 'ExpenseCategoryEntity'; + + @override + Iterable serialize(Serializers serializers, ExpenseCategoryEntity object, + {FullType specifiedType: FullType.unspecified}) { + final result = []; + if (object.name != null) { + result + ..add('name') + ..add(serializers.serialize(object.name, + specifiedType: const FullType(String))); + } + if (object.id != null) { + result + ..add('id') + ..add(serializers.serialize(object.id, + specifiedType: const FullType(int))); + } + if (object.updatedAt != null) { + result + ..add('updated_at') + ..add(serializers.serialize(object.updatedAt, + specifiedType: const FullType(int))); + } + if (object.archivedAt != null) { + result + ..add('archived_at') + ..add(serializers.serialize(object.archivedAt, + specifiedType: const FullType(int))); + } + if (object.isDeleted != null) { + result + ..add('is_deleted') + ..add(serializers.serialize(object.isDeleted, + specifiedType: const FullType(bool))); + } + + return result; + } + + @override + ExpenseCategoryEntity deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType: FullType.unspecified}) { + final result = new ExpenseCategoryEntityBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'name': + result.name = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'updated_at': + result.updatedAt = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'archived_at': + result.archivedAt = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'is_deleted': + result.isDeleted = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + break; + } + } + + return result.build(); + } +} + +class _$ExpenseListResponse extends ExpenseListResponse { + @override + final BuiltList data; + + factory _$ExpenseListResponse([void updates(ExpenseListResponseBuilder b)]) => + (new ExpenseListResponseBuilder()..update(updates)).build(); + + _$ExpenseListResponse._({this.data}) : super._() { + if (data == null) + throw new BuiltValueNullFieldError('ExpenseListResponse', 'data'); + } + + @override + ExpenseListResponse rebuild(void updates(ExpenseListResponseBuilder b)) => + (toBuilder()..update(updates)).build(); + + @override + ExpenseListResponseBuilder toBuilder() => + new ExpenseListResponseBuilder()..replace(this); + + @override + bool operator ==(dynamic other) { + if (identical(other, this)) return true; + if (other is! ExpenseListResponse) return false; + return data == other.data; + } + + @override + int get hashCode { + return $jf($jc(0, data.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('ExpenseListResponse') + ..add('data', data)) + .toString(); + } +} + +class ExpenseListResponseBuilder + implements Builder { + _$ExpenseListResponse _$v; + + ListBuilder _data; + ListBuilder get data => + _$this._data ??= new ListBuilder(); + set data(ListBuilder data) => _$this._data = data; + + ExpenseListResponseBuilder(); + + ExpenseListResponseBuilder get _$this { + if (_$v != null) { + _data = _$v.data?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(ExpenseListResponse other) { + if (other == null) throw new ArgumentError.notNull('other'); + _$v = other as _$ExpenseListResponse; + } + + @override + void update(void updates(ExpenseListResponseBuilder b)) { + if (updates != null) updates(this); + } + + @override + _$ExpenseListResponse build() { + _$ExpenseListResponse _$result; + try { + _$result = _$v ?? new _$ExpenseListResponse._(data: data.build()); + } catch (_) { + String _$failedField; + try { + _$failedField = 'data'; + data.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + 'ExpenseListResponse', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$ExpenseItemResponse extends ExpenseItemResponse { + @override + final ExpenseEntity data; + + factory _$ExpenseItemResponse([void updates(ExpenseItemResponseBuilder b)]) => + (new ExpenseItemResponseBuilder()..update(updates)).build(); + + _$ExpenseItemResponse._({this.data}) : super._() { + if (data == null) + throw new BuiltValueNullFieldError('ExpenseItemResponse', 'data'); + } + + @override + ExpenseItemResponse rebuild(void updates(ExpenseItemResponseBuilder b)) => + (toBuilder()..update(updates)).build(); + + @override + ExpenseItemResponseBuilder toBuilder() => + new ExpenseItemResponseBuilder()..replace(this); + + @override + bool operator ==(dynamic other) { + if (identical(other, this)) return true; + if (other is! ExpenseItemResponse) return false; + return data == other.data; + } + + @override + int get hashCode { + return $jf($jc(0, data.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('ExpenseItemResponse') + ..add('data', data)) + .toString(); + } +} + +class ExpenseItemResponseBuilder + implements Builder { + _$ExpenseItemResponse _$v; + + ExpenseEntityBuilder _data; + ExpenseEntityBuilder get data => _$this._data ??= new ExpenseEntityBuilder(); + set data(ExpenseEntityBuilder data) => _$this._data = data; + + ExpenseItemResponseBuilder(); + + ExpenseItemResponseBuilder get _$this { + if (_$v != null) { + _data = _$v.data?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(ExpenseItemResponse other) { + if (other == null) throw new ArgumentError.notNull('other'); + _$v = other as _$ExpenseItemResponse; + } + + @override + void update(void updates(ExpenseItemResponseBuilder b)) { + if (updates != null) updates(this); + } + + @override + _$ExpenseItemResponse build() { + _$ExpenseItemResponse _$result; + try { + _$result = _$v ?? new _$ExpenseItemResponse._(data: data.build()); + } catch (_) { + String _$failedField; + try { + _$failedField = 'data'; + data.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + 'ExpenseItemResponse', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$ExpenseEntity extends ExpenseEntity { + @override + final String privateNotes; + @override + final String publicNotes; + @override + final bool shouldBeInvoiced; + @override + final String transactionId; + @override + final String transactionReference; + @override + final String bankId; + @override + final int expenseCurrencyId; + @override + final int exchangeCurrencyId; + @override + final double amount; + @override + final String expenseDate; + @override + final double exchangeRate; + @override + final int invoiceCurrencyId; + @override + final String taxName1; + @override + final String taxRate1; + @override + final String taxRate2; + @override + final int clientId; + @override + final int invoiceId; + @override + final int vendorId; + @override + final String customValue1; + @override + final String customValue2; + @override + final BuiltList expenseCtegories; + @override + final int id; + @override + final int updatedAt; + @override + final int archivedAt; + @override + final bool isDeleted; + + factory _$ExpenseEntity([void updates(ExpenseEntityBuilder b)]) => + (new ExpenseEntityBuilder()..update(updates)).build(); + + _$ExpenseEntity._( + {this.privateNotes, + this.publicNotes, + this.shouldBeInvoiced, + this.transactionId, + this.transactionReference, + this.bankId, + this.expenseCurrencyId, + this.exchangeCurrencyId, + this.amount, + this.expenseDate, + this.exchangeRate, + this.invoiceCurrencyId, + this.taxName1, + this.taxRate1, + this.taxRate2, + this.clientId, + this.invoiceId, + this.vendorId, + this.customValue1, + this.customValue2, + this.expenseCtegories, + this.id, + this.updatedAt, + this.archivedAt, + this.isDeleted}) + : super._(); + + @override + ExpenseEntity rebuild(void updates(ExpenseEntityBuilder b)) => + (toBuilder()..update(updates)).build(); + + @override + ExpenseEntityBuilder toBuilder() => new ExpenseEntityBuilder()..replace(this); + + @override + bool operator ==(dynamic other) { + if (identical(other, this)) return true; + if (other is! ExpenseEntity) return false; + return privateNotes == other.privateNotes && + publicNotes == other.publicNotes && + shouldBeInvoiced == other.shouldBeInvoiced && + transactionId == other.transactionId && + transactionReference == other.transactionReference && + bankId == other.bankId && + expenseCurrencyId == other.expenseCurrencyId && + exchangeCurrencyId == other.exchangeCurrencyId && + amount == other.amount && + expenseDate == other.expenseDate && + exchangeRate == other.exchangeRate && + invoiceCurrencyId == other.invoiceCurrencyId && + taxName1 == other.taxName1 && + taxRate1 == other.taxRate1 && + taxRate2 == other.taxRate2 && + clientId == other.clientId && + invoiceId == other.invoiceId && + vendorId == other.vendorId && + customValue1 == other.customValue1 && + customValue2 == other.customValue2 && + expenseCtegories == other.expenseCtegories && + id == other.id && + updatedAt == other.updatedAt && + archivedAt == other.archivedAt && + isDeleted == other.isDeleted; + } + + @override + int get hashCode { + return $jf($jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc($jc($jc($jc($jc($jc($jc(0, privateNotes.hashCode), publicNotes.hashCode), shouldBeInvoiced.hashCode), transactionId.hashCode), transactionReference.hashCode), bankId.hashCode), + expenseCurrencyId.hashCode), + exchangeCurrencyId.hashCode), + amount.hashCode), + expenseDate.hashCode), + exchangeRate.hashCode), + invoiceCurrencyId.hashCode), + taxName1.hashCode), + taxRate1.hashCode), + taxRate2.hashCode), + clientId.hashCode), + invoiceId.hashCode), + vendorId.hashCode), + customValue1.hashCode), + customValue2.hashCode), + expenseCtegories.hashCode), + id.hashCode), + updatedAt.hashCode), + archivedAt.hashCode), + isDeleted.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('ExpenseEntity') + ..add('privateNotes', privateNotes) + ..add('publicNotes', publicNotes) + ..add('shouldBeInvoiced', shouldBeInvoiced) + ..add('transactionId', transactionId) + ..add('transactionReference', transactionReference) + ..add('bankId', bankId) + ..add('expenseCurrencyId', expenseCurrencyId) + ..add('exchangeCurrencyId', exchangeCurrencyId) + ..add('amount', amount) + ..add('expenseDate', expenseDate) + ..add('exchangeRate', exchangeRate) + ..add('invoiceCurrencyId', invoiceCurrencyId) + ..add('taxName1', taxName1) + ..add('taxRate1', taxRate1) + ..add('taxRate2', taxRate2) + ..add('clientId', clientId) + ..add('invoiceId', invoiceId) + ..add('vendorId', vendorId) + ..add('customValue1', customValue1) + ..add('customValue2', customValue2) + ..add('expenseCtegories', expenseCtegories) + ..add('id', id) + ..add('updatedAt', updatedAt) + ..add('archivedAt', archivedAt) + ..add('isDeleted', isDeleted)) + .toString(); + } +} + +class ExpenseEntityBuilder + implements Builder { + _$ExpenseEntity _$v; + + String _privateNotes; + String get privateNotes => _$this._privateNotes; + set privateNotes(String privateNotes) => _$this._privateNotes = privateNotes; + + String _publicNotes; + String get publicNotes => _$this._publicNotes; + set publicNotes(String publicNotes) => _$this._publicNotes = publicNotes; + + bool _shouldBeInvoiced; + bool get shouldBeInvoiced => _$this._shouldBeInvoiced; + set shouldBeInvoiced(bool shouldBeInvoiced) => + _$this._shouldBeInvoiced = shouldBeInvoiced; + + String _transactionId; + String get transactionId => _$this._transactionId; + set transactionId(String transactionId) => + _$this._transactionId = transactionId; + + String _transactionReference; + String get transactionReference => _$this._transactionReference; + set transactionReference(String transactionReference) => + _$this._transactionReference = transactionReference; + + String _bankId; + String get bankId => _$this._bankId; + set bankId(String bankId) => _$this._bankId = bankId; + + int _expenseCurrencyId; + int get expenseCurrencyId => _$this._expenseCurrencyId; + set expenseCurrencyId(int expenseCurrencyId) => + _$this._expenseCurrencyId = expenseCurrencyId; + + int _exchangeCurrencyId; + int get exchangeCurrencyId => _$this._exchangeCurrencyId; + set exchangeCurrencyId(int exchangeCurrencyId) => + _$this._exchangeCurrencyId = exchangeCurrencyId; + + double _amount; + double get amount => _$this._amount; + set amount(double amount) => _$this._amount = amount; + + String _expenseDate; + String get expenseDate => _$this._expenseDate; + set expenseDate(String expenseDate) => _$this._expenseDate = expenseDate; + + double _exchangeRate; + double get exchangeRate => _$this._exchangeRate; + set exchangeRate(double exchangeRate) => _$this._exchangeRate = exchangeRate; + + int _invoiceCurrencyId; + int get invoiceCurrencyId => _$this._invoiceCurrencyId; + set invoiceCurrencyId(int invoiceCurrencyId) => + _$this._invoiceCurrencyId = invoiceCurrencyId; + + String _taxName1; + String get taxName1 => _$this._taxName1; + set taxName1(String taxName1) => _$this._taxName1 = taxName1; + + String _taxRate1; + String get taxRate1 => _$this._taxRate1; + set taxRate1(String taxRate1) => _$this._taxRate1 = taxRate1; + + String _taxRate2; + String get taxRate2 => _$this._taxRate2; + set taxRate2(String taxRate2) => _$this._taxRate2 = taxRate2; + + int _clientId; + int get clientId => _$this._clientId; + set clientId(int clientId) => _$this._clientId = clientId; + + int _invoiceId; + int get invoiceId => _$this._invoiceId; + set invoiceId(int invoiceId) => _$this._invoiceId = invoiceId; + + int _vendorId; + int get vendorId => _$this._vendorId; + set vendorId(int vendorId) => _$this._vendorId = vendorId; + + String _customValue1; + String get customValue1 => _$this._customValue1; + set customValue1(String customValue1) => _$this._customValue1 = customValue1; + + String _customValue2; + String get customValue2 => _$this._customValue2; + set customValue2(String customValue2) => _$this._customValue2 = customValue2; + + ListBuilder _expenseCtegories; + ListBuilder get expenseCtegories => + _$this._expenseCtegories ??= new ListBuilder(); + set expenseCtegories(ListBuilder expenseCtegories) => + _$this._expenseCtegories = expenseCtegories; + + int _id; + int get id => _$this._id; + set id(int id) => _$this._id = id; + + int _updatedAt; + int get updatedAt => _$this._updatedAt; + set updatedAt(int updatedAt) => _$this._updatedAt = updatedAt; + + int _archivedAt; + int get archivedAt => _$this._archivedAt; + set archivedAt(int archivedAt) => _$this._archivedAt = archivedAt; + + bool _isDeleted; + bool get isDeleted => _$this._isDeleted; + set isDeleted(bool isDeleted) => _$this._isDeleted = isDeleted; + + ExpenseEntityBuilder(); + + ExpenseEntityBuilder get _$this { + if (_$v != null) { + _privateNotes = _$v.privateNotes; + _publicNotes = _$v.publicNotes; + _shouldBeInvoiced = _$v.shouldBeInvoiced; + _transactionId = _$v.transactionId; + _transactionReference = _$v.transactionReference; + _bankId = _$v.bankId; + _expenseCurrencyId = _$v.expenseCurrencyId; + _exchangeCurrencyId = _$v.exchangeCurrencyId; + _amount = _$v.amount; + _expenseDate = _$v.expenseDate; + _exchangeRate = _$v.exchangeRate; + _invoiceCurrencyId = _$v.invoiceCurrencyId; + _taxName1 = _$v.taxName1; + _taxRate1 = _$v.taxRate1; + _taxRate2 = _$v.taxRate2; + _clientId = _$v.clientId; + _invoiceId = _$v.invoiceId; + _vendorId = _$v.vendorId; + _customValue1 = _$v.customValue1; + _customValue2 = _$v.customValue2; + _expenseCtegories = _$v.expenseCtegories?.toBuilder(); + _id = _$v.id; + _updatedAt = _$v.updatedAt; + _archivedAt = _$v.archivedAt; + _isDeleted = _$v.isDeleted; + _$v = null; + } + return this; + } + + @override + void replace(ExpenseEntity other) { + if (other == null) throw new ArgumentError.notNull('other'); + _$v = other as _$ExpenseEntity; + } + + @override + void update(void updates(ExpenseEntityBuilder b)) { + if (updates != null) updates(this); + } + + @override + _$ExpenseEntity build() { + _$ExpenseEntity _$result; + try { + _$result = _$v ?? + new _$ExpenseEntity._( + privateNotes: privateNotes, + publicNotes: publicNotes, + shouldBeInvoiced: shouldBeInvoiced, + transactionId: transactionId, + transactionReference: transactionReference, + bankId: bankId, + expenseCurrencyId: expenseCurrencyId, + exchangeCurrencyId: exchangeCurrencyId, + amount: amount, + expenseDate: expenseDate, + exchangeRate: exchangeRate, + invoiceCurrencyId: invoiceCurrencyId, + taxName1: taxName1, + taxRate1: taxRate1, + taxRate2: taxRate2, + clientId: clientId, + invoiceId: invoiceId, + vendorId: vendorId, + customValue1: customValue1, + customValue2: customValue2, + expenseCtegories: _expenseCtegories?.build(), + id: id, + updatedAt: updatedAt, + archivedAt: archivedAt, + isDeleted: isDeleted); + } catch (_) { + String _$failedField; + try { + _$failedField = 'expenseCtegories'; + _expenseCtegories?.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + 'ExpenseEntity', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$ExpenseCategoryEntity extends ExpenseCategoryEntity { + @override + final String name; + @override + final int id; + @override + final int updatedAt; + @override + final int archivedAt; + @override + final bool isDeleted; + + factory _$ExpenseCategoryEntity( + [void updates(ExpenseCategoryEntityBuilder b)]) => + (new ExpenseCategoryEntityBuilder()..update(updates)).build(); + + _$ExpenseCategoryEntity._( + {this.name, this.id, this.updatedAt, this.archivedAt, this.isDeleted}) + : super._(); + + @override + ExpenseCategoryEntity rebuild(void updates(ExpenseCategoryEntityBuilder b)) => + (toBuilder()..update(updates)).build(); + + @override + ExpenseCategoryEntityBuilder toBuilder() => + new ExpenseCategoryEntityBuilder()..replace(this); + + @override + bool operator ==(dynamic other) { + if (identical(other, this)) return true; + if (other is! ExpenseCategoryEntity) return false; + return name == other.name && + id == other.id && + updatedAt == other.updatedAt && + archivedAt == other.archivedAt && + isDeleted == other.isDeleted; + } + + @override + int get hashCode { + return $jf($jc( + $jc($jc($jc($jc(0, name.hashCode), id.hashCode), updatedAt.hashCode), + archivedAt.hashCode), + isDeleted.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('ExpenseCategoryEntity') + ..add('name', name) + ..add('id', id) + ..add('updatedAt', updatedAt) + ..add('archivedAt', archivedAt) + ..add('isDeleted', isDeleted)) + .toString(); + } +} + +class ExpenseCategoryEntityBuilder + implements Builder { + _$ExpenseCategoryEntity _$v; + + String _name; + String get name => _$this._name; + set name(String name) => _$this._name = name; + + int _id; + int get id => _$this._id; + set id(int id) => _$this._id = id; + + int _updatedAt; + int get updatedAt => _$this._updatedAt; + set updatedAt(int updatedAt) => _$this._updatedAt = updatedAt; + + int _archivedAt; + int get archivedAt => _$this._archivedAt; + set archivedAt(int archivedAt) => _$this._archivedAt = archivedAt; + + bool _isDeleted; + bool get isDeleted => _$this._isDeleted; + set isDeleted(bool isDeleted) => _$this._isDeleted = isDeleted; + + ExpenseCategoryEntityBuilder(); + + ExpenseCategoryEntityBuilder get _$this { + if (_$v != null) { + _name = _$v.name; + _id = _$v.id; + _updatedAt = _$v.updatedAt; + _archivedAt = _$v.archivedAt; + _isDeleted = _$v.isDeleted; + _$v = null; + } + return this; + } + + @override + void replace(ExpenseCategoryEntity other) { + if (other == null) throw new ArgumentError.notNull('other'); + _$v = other as _$ExpenseCategoryEntity; + } + + @override + void update(void updates(ExpenseCategoryEntityBuilder b)) { + if (updates != null) updates(this); + } + + @override + _$ExpenseCategoryEntity build() { + final _$result = _$v ?? + new _$ExpenseCategoryEntity._( + name: name, + id: id, + updatedAt: updatedAt, + archivedAt: archivedAt, + isDeleted: isDeleted); + replace(_$result); + return _$result; + } +} diff --git a/lib/data/models/invoice_model.dart b/lib/data/models/invoice_model.dart new file mode 100644 index 000000000..ac59b3f10 --- /dev/null +++ b/lib/data/models/invoice_model.dart @@ -0,0 +1,321 @@ +import 'package:built_collection/built_collection.dart'; +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:invoiceninja/data/models/entities.dart'; + +part 'invoice_model.g.dart'; + +abstract class InvoiceListResponse implements Built { + + BuiltList get data; + + InvoiceListResponse._(); + factory InvoiceListResponse([updates(InvoiceListResponseBuilder b)]) = _$InvoiceListResponse; + static Serializer get serializer => _$invoiceListResponseSerializer; +} + +abstract class InvoiceItemResponse implements Built { + + InvoiceEntity get data; + + InvoiceItemResponse._(); + factory InvoiceItemResponse([updates(InvoiceItemResponseBuilder b)]) = _$InvoiceItemResponse; + static Serializer get serializer => _$invoiceItemResponseSerializer; +} + +class InvoiceFields { + static const String amount = 'amount'; + static const String balance = 'balance'; + static const String clientId = 'clientId'; + static const String invoiceStatusId = 'invoiceStatusId'; + static const String invoiceNumber = 'invoiceNumber'; + static const String discount = 'discount'; + static const String poNumber = 'poNumber'; + static const String invoiceDate = 'invoiceDate'; + static const String dueDate = 'dueDate'; + static const String terms = 'terms'; + static const String publicNotes = 'publicNotes'; + static const String privateNotes = 'privateNotes'; + static const String invoiceTypeId = 'invoiceTypeId'; + static const String isRecurring = 'isRecurring'; + static const String frequencyId = 'frequencyId'; + static const String startDate = 'startDate'; + static const String endDate = 'endDate'; + + static const String updatedAt = 'updatedAt'; + static const String archivedAt = 'archivedAt'; + static const String isDeleted = 'isDeleted'; +} + + +abstract class InvoiceEntity extends Object with BaseEntity + implements Built { + + @nullable + double get amount; + + @nullable + double get balance; + + @nullable + @BuiltValueField(wireName: 'client_id') + int get clientId; + + @nullable + @BuiltValueField(wireName: 'invoice_status_id') + int get invoiceStatusId; + + @nullable + @BuiltValueField(wireName: 'invoice_number') + String get invoiceNumber; + + @nullable + double get discount; + + @nullable + @BuiltValueField(wireName: 'po_number') + String get poNumber; + + @nullable + @BuiltValueField(wireName: 'invoice_date') + String get invoiceDate; + + @nullable + @BuiltValueField(wireName: 'due_date') + String get dueDate; + + @nullable + String get terms; + + @nullable + @BuiltValueField(wireName: 'public_notes') + String get publicNotes; + + @nullable + @BuiltValueField(wireName: 'private_notes') + String get privateNotes; + + @nullable + @BuiltValueField(wireName: 'invoice_type_id') + int get invoiceTypeId; + + @nullable + @BuiltValueField(wireName: 'is_recurring') + bool get isRecurring; + + @nullable + @BuiltValueField(wireName: 'frequency_id') + int get frequencyId; + + @nullable + @BuiltValueField(wireName: 'start_date') + String get startDate; + + @nullable + @BuiltValueField(wireName: 'end_date') + String get endDate; + + @nullable + @BuiltValueField(wireName: 'last_sent_date') + String get lastSentDate; + + @nullable + @BuiltValueField(wireName: 'recurring_invoice_id') + int get recurringInvoiceId; + + @nullable + @BuiltValueField(wireName: 'tax_name1') + String get taxName1; + + @nullable + @BuiltValueField(wireName: 'tax_rate1') + double get taxRate1; + + @nullable + @BuiltValueField(wireName: 'tax_name2') + String get taxName2; + + @nullable + @BuiltValueField(wireName: 'tax_rate2') + double get taxRate2; + + @nullable + @BuiltValueField(wireName: 'is_amount_discount') + bool get isAmountDiscount; + + @nullable + @BuiltValueField(wireName: 'invoice_footer') + String get invoiceFooter; + + @nullable + double get partial; + + @nullable + @BuiltValueField(wireName: 'partial_due_date') + String get partialDueDate; + + @nullable + @BuiltValueField(wireName: 'has_tasks') + bool get hasTasks; + + @nullable + @BuiltValueField(wireName: 'auto_bill') + bool get autoBill; + + @nullable + @BuiltValueField(wireName: 'custom_value1') + double get customValue1; + + @nullable + @BuiltValueField(wireName: 'custom_value2') + double get customValue2; + + @nullable + @BuiltValueField(wireName: 'custom_taxes1') + bool get customTaxes1; + + @nullable + @BuiltValueField(wireName: 'custom_taxes2') + bool get customTaxes2; + + @nullable + @BuiltValueField(wireName: 'has_expenses') + bool get hasExpenses; + + @nullable + @BuiltValueField(wireName: 'quote_invoice_id') + int get quoteInvoiceId; + + @nullable + @BuiltValueField(wireName: 'custom_text_value1') + String get customTextValue1; + + @nullable + @BuiltValueField(wireName: 'custom_text_value2') + String get customTextValue2; + + @nullable + @BuiltValueField(wireName: 'is_quote') + bool get isQuote; + + @nullable + @BuiltValueField(wireName: 'is_public') + bool get isPublic; + + @nullable + String get filename; + + @nullable + @BuiltValueField(wireName: 'invoice_items') + BuiltList get invoiceItems; + + @nullable + BuiltList get invitations; + + //String get last_login; + //String get custom_messages; + + int compareTo(InvoiceEntity client, String sortField, bool sortAscending) { + int response = 0; + InvoiceEntity clientA = sortAscending ? this : client; + InvoiceEntity clientB = sortAscending ? client: this; + + /* + switch (sortField) { + case ClientFields.cost: + response = clientA.cost.compareTo(clientB.cost); + } + */ + if (response == 0) { + return clientA.invoiceNumber.compareTo(clientB.invoiceNumber); + } else { + return response; + } + } + + bool matchesSearch(String search) { + if (search == null || search.isEmpty) { + return true; + } + + return invoiceNumber.contains(search); + } + + InvoiceEntity._(); + factory InvoiceEntity([updates(InvoiceEntityBuilder b)]) = _$InvoiceEntity; + static Serializer get serializer => _$invoiceEntitySerializer; +} + + +abstract class InvoiceItemEntity extends Object with BaseEntity implements Built { + + @nullable + @BuiltValueField(wireName: 'product_key') + String get productKey; + + @nullable + String get notes; + + @nullable + String get cost; + + @nullable + String get qty; + + @nullable + @BuiltValueField(wireName: 'tax_name1') + String get taxName1; + + @nullable + @BuiltValueField(wireName: 'tax_rate1') + double get taxRate1; + + @nullable + @BuiltValueField(wireName: 'tax_name2') + String get taxName2; + + @nullable + @BuiltValueField(wireName: 'tax_rate2') + double get taxRate2; + + @nullable + @BuiltValueField(wireName: 'invoice_item_type_id') + int get invoiceItemTypeId; + + @nullable + @BuiltValueField(wireName: 'custom_value1') + String get customValue1; + + @nullable + @BuiltValueField(wireName: 'custom_value2') + String get customValue2; + + @nullable + double get discount; + + InvoiceItemEntity._(); + factory InvoiceItemEntity([updates(InvoiceItemEntityBuilder b)]) = _$InvoiceItemEntity; + static Serializer get serializer => _$invoiceItemEntitySerializer; +} + +abstract class InvitationEntity extends Object with BaseEntity implements Built { + + @nullable + String get key; + + @nullable + String get link; + + @nullable + @BuiltValueField(wireName: 'sent_date') + String get sentDate; + + @nullable + @BuiltValueField(wireName: 'viewed_date') + String get viewedDate; + + InvitationEntity._(); + factory InvitationEntity([updates(InvitationEntityBuilder b)]) = _$InvitationEntity; + static Serializer get serializer => _$invitationEntitySerializer; +} diff --git a/lib/data/models/invoice_model.g.dart b/lib/data/models/invoice_model.g.dart new file mode 100644 index 000000000..76623d8e4 --- /dev/null +++ b/lib/data/models/invoice_model.g.dart @@ -0,0 +1,2182 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'invoice_model.dart'; + +// ************************************************************************** +// Generator: BuiltValueGenerator +// ************************************************************************** + +// ignore_for_file: always_put_control_body_on_new_line +// ignore_for_file: annotate_overrides +// ignore_for_file: avoid_annotating_with_dynamic +// ignore_for_file: avoid_returning_this +// ignore_for_file: omit_local_variable_types +// ignore_for_file: prefer_expression_function_bodies +// ignore_for_file: sort_constructors_first + +Serializer _$invoiceListResponseSerializer = + new _$InvoiceListResponseSerializer(); +Serializer _$invoiceItemResponseSerializer = + new _$InvoiceItemResponseSerializer(); +Serializer _$invoiceEntitySerializer = + new _$InvoiceEntitySerializer(); +Serializer _$invoiceItemEntitySerializer = + new _$InvoiceItemEntitySerializer(); +Serializer _$invitationEntitySerializer = + new _$InvitationEntitySerializer(); + +class _$InvoiceListResponseSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + InvoiceListResponse, + _$InvoiceListResponse + ]; + @override + final String wireName = 'InvoiceListResponse'; + + @override + Iterable serialize(Serializers serializers, InvoiceListResponse object, + {FullType specifiedType: FullType.unspecified}) { + final result = [ + 'data', + serializers.serialize(object.data, + specifiedType: + const FullType(BuiltList, const [const FullType(InvoiceEntity)])), + ]; + + return result; + } + + @override + InvoiceListResponse deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType: FullType.unspecified}) { + final result = new InvoiceListResponseBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'data': + result.data.replace(serializers.deserialize(value, + specifiedType: const FullType( + BuiltList, const [const FullType(InvoiceEntity)])) + as BuiltList); + break; + } + } + + return result.build(); + } +} + +class _$InvoiceItemResponseSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + InvoiceItemResponse, + _$InvoiceItemResponse + ]; + @override + final String wireName = 'InvoiceItemResponse'; + + @override + Iterable serialize(Serializers serializers, InvoiceItemResponse object, + {FullType specifiedType: FullType.unspecified}) { + final result = [ + 'data', + serializers.serialize(object.data, + specifiedType: const FullType(InvoiceEntity)), + ]; + + return result; + } + + @override + InvoiceItemResponse deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType: FullType.unspecified}) { + final result = new InvoiceItemResponseBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'data': + result.data.replace(serializers.deserialize(value, + specifiedType: const FullType(InvoiceEntity)) as InvoiceEntity); + break; + } + } + + return result.build(); + } +} + +class _$InvoiceEntitySerializer implements StructuredSerializer { + @override + final Iterable types = const [InvoiceEntity, _$InvoiceEntity]; + @override + final String wireName = 'InvoiceEntity'; + + @override + Iterable serialize(Serializers serializers, InvoiceEntity object, + {FullType specifiedType: FullType.unspecified}) { + final result = []; + if (object.amount != null) { + result + ..add('amount') + ..add(serializers.serialize(object.amount, + specifiedType: const FullType(double))); + } + if (object.balance != null) { + result + ..add('balance') + ..add(serializers.serialize(object.balance, + specifiedType: const FullType(double))); + } + if (object.clientId != null) { + result + ..add('client_id') + ..add(serializers.serialize(object.clientId, + specifiedType: const FullType(int))); + } + if (object.invoiceStatusId != null) { + result + ..add('invoice_status_id') + ..add(serializers.serialize(object.invoiceStatusId, + specifiedType: const FullType(int))); + } + if (object.invoiceNumber != null) { + result + ..add('invoice_number') + ..add(serializers.serialize(object.invoiceNumber, + specifiedType: const FullType(String))); + } + if (object.discount != null) { + result + ..add('discount') + ..add(serializers.serialize(object.discount, + specifiedType: const FullType(double))); + } + if (object.poNumber != null) { + result + ..add('po_number') + ..add(serializers.serialize(object.poNumber, + specifiedType: const FullType(String))); + } + if (object.invoiceDate != null) { + result + ..add('invoice_date') + ..add(serializers.serialize(object.invoiceDate, + specifiedType: const FullType(String))); + } + if (object.dueDate != null) { + result + ..add('due_date') + ..add(serializers.serialize(object.dueDate, + specifiedType: const FullType(String))); + } + if (object.terms != null) { + result + ..add('terms') + ..add(serializers.serialize(object.terms, + specifiedType: const FullType(String))); + } + if (object.publicNotes != null) { + result + ..add('public_notes') + ..add(serializers.serialize(object.publicNotes, + specifiedType: const FullType(String))); + } + if (object.privateNotes != null) { + result + ..add('private_notes') + ..add(serializers.serialize(object.privateNotes, + specifiedType: const FullType(String))); + } + if (object.invoiceTypeId != null) { + result + ..add('invoice_type_id') + ..add(serializers.serialize(object.invoiceTypeId, + specifiedType: const FullType(int))); + } + if (object.isRecurring != null) { + result + ..add('is_recurring') + ..add(serializers.serialize(object.isRecurring, + specifiedType: const FullType(bool))); + } + if (object.frequencyId != null) { + result + ..add('frequency_id') + ..add(serializers.serialize(object.frequencyId, + specifiedType: const FullType(int))); + } + if (object.startDate != null) { + result + ..add('start_date') + ..add(serializers.serialize(object.startDate, + specifiedType: const FullType(String))); + } + if (object.endDate != null) { + result + ..add('end_date') + ..add(serializers.serialize(object.endDate, + specifiedType: const FullType(String))); + } + if (object.lastSentDate != null) { + result + ..add('last_sent_date') + ..add(serializers.serialize(object.lastSentDate, + specifiedType: const FullType(String))); + } + if (object.recurringInvoiceId != null) { + result + ..add('recurring_invoice_id') + ..add(serializers.serialize(object.recurringInvoiceId, + specifiedType: const FullType(int))); + } + if (object.taxName1 != null) { + result + ..add('tax_name1') + ..add(serializers.serialize(object.taxName1, + specifiedType: const FullType(String))); + } + if (object.taxRate1 != null) { + result + ..add('tax_rate1') + ..add(serializers.serialize(object.taxRate1, + specifiedType: const FullType(double))); + } + if (object.taxName2 != null) { + result + ..add('tax_name2') + ..add(serializers.serialize(object.taxName2, + specifiedType: const FullType(String))); + } + if (object.taxRate2 != null) { + result + ..add('tax_rate2') + ..add(serializers.serialize(object.taxRate2, + specifiedType: const FullType(double))); + } + if (object.isAmountDiscount != null) { + result + ..add('is_amount_discount') + ..add(serializers.serialize(object.isAmountDiscount, + specifiedType: const FullType(bool))); + } + if (object.invoiceFooter != null) { + result + ..add('invoice_footer') + ..add(serializers.serialize(object.invoiceFooter, + specifiedType: const FullType(String))); + } + if (object.partial != null) { + result + ..add('partial') + ..add(serializers.serialize(object.partial, + specifiedType: const FullType(double))); + } + if (object.partialDueDate != null) { + result + ..add('partial_due_date') + ..add(serializers.serialize(object.partialDueDate, + specifiedType: const FullType(String))); + } + if (object.hasTasks != null) { + result + ..add('has_tasks') + ..add(serializers.serialize(object.hasTasks, + specifiedType: const FullType(bool))); + } + if (object.autoBill != null) { + result + ..add('auto_bill') + ..add(serializers.serialize(object.autoBill, + specifiedType: const FullType(bool))); + } + if (object.customValue1 != null) { + result + ..add('custom_value1') + ..add(serializers.serialize(object.customValue1, + specifiedType: const FullType(double))); + } + if (object.customValue2 != null) { + result + ..add('custom_value2') + ..add(serializers.serialize(object.customValue2, + specifiedType: const FullType(double))); + } + if (object.customTaxes1 != null) { + result + ..add('custom_taxes1') + ..add(serializers.serialize(object.customTaxes1, + specifiedType: const FullType(bool))); + } + if (object.customTaxes2 != null) { + result + ..add('custom_taxes2') + ..add(serializers.serialize(object.customTaxes2, + specifiedType: const FullType(bool))); + } + if (object.hasExpenses != null) { + result + ..add('has_expenses') + ..add(serializers.serialize(object.hasExpenses, + specifiedType: const FullType(bool))); + } + if (object.quoteInvoiceId != null) { + result + ..add('quote_invoice_id') + ..add(serializers.serialize(object.quoteInvoiceId, + specifiedType: const FullType(int))); + } + if (object.customTextValue1 != null) { + result + ..add('custom_text_value1') + ..add(serializers.serialize(object.customTextValue1, + specifiedType: const FullType(String))); + } + if (object.customTextValue2 != null) { + result + ..add('custom_text_value2') + ..add(serializers.serialize(object.customTextValue2, + specifiedType: const FullType(String))); + } + if (object.isQuote != null) { + result + ..add('is_quote') + ..add(serializers.serialize(object.isQuote, + specifiedType: const FullType(bool))); + } + if (object.isPublic != null) { + result + ..add('is_public') + ..add(serializers.serialize(object.isPublic, + specifiedType: const FullType(bool))); + } + if (object.filename != null) { + result + ..add('filename') + ..add(serializers.serialize(object.filename, + specifiedType: const FullType(String))); + } + if (object.invoiceItems != null) { + result + ..add('invoice_items') + ..add(serializers.serialize(object.invoiceItems, + specifiedType: const FullType( + BuiltList, const [const FullType(InvoiceItemEntity)]))); + } + if (object.invitations != null) { + result + ..add('invitations') + ..add(serializers.serialize(object.invitations, + specifiedType: const FullType( + BuiltList, const [const FullType(InvitationEntity)]))); + } + if (object.id != null) { + result + ..add('id') + ..add(serializers.serialize(object.id, + specifiedType: const FullType(int))); + } + if (object.updatedAt != null) { + result + ..add('updated_at') + ..add(serializers.serialize(object.updatedAt, + specifiedType: const FullType(int))); + } + if (object.archivedAt != null) { + result + ..add('archived_at') + ..add(serializers.serialize(object.archivedAt, + specifiedType: const FullType(int))); + } + if (object.isDeleted != null) { + result + ..add('is_deleted') + ..add(serializers.serialize(object.isDeleted, + specifiedType: const FullType(bool))); + } + + return result; + } + + @override + InvoiceEntity deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType: FullType.unspecified}) { + final result = new InvoiceEntityBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'amount': + result.amount = serializers.deserialize(value, + specifiedType: const FullType(double)) as double; + break; + case 'balance': + result.balance = serializers.deserialize(value, + specifiedType: const FullType(double)) as double; + break; + case 'client_id': + result.clientId = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'invoice_status_id': + result.invoiceStatusId = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'invoice_number': + result.invoiceNumber = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'discount': + result.discount = serializers.deserialize(value, + specifiedType: const FullType(double)) as double; + break; + case 'po_number': + result.poNumber = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'invoice_date': + result.invoiceDate = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'due_date': + result.dueDate = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'terms': + result.terms = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'public_notes': + result.publicNotes = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'private_notes': + result.privateNotes = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'invoice_type_id': + result.invoiceTypeId = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'is_recurring': + result.isRecurring = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + break; + case 'frequency_id': + result.frequencyId = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'start_date': + result.startDate = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'end_date': + result.endDate = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'last_sent_date': + result.lastSentDate = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'recurring_invoice_id': + result.recurringInvoiceId = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'tax_name1': + result.taxName1 = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'tax_rate1': + result.taxRate1 = serializers.deserialize(value, + specifiedType: const FullType(double)) as double; + break; + case 'tax_name2': + result.taxName2 = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'tax_rate2': + result.taxRate2 = serializers.deserialize(value, + specifiedType: const FullType(double)) as double; + break; + case 'is_amount_discount': + result.isAmountDiscount = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + break; + case 'invoice_footer': + result.invoiceFooter = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'partial': + result.partial = serializers.deserialize(value, + specifiedType: const FullType(double)) as double; + break; + case 'partial_due_date': + result.partialDueDate = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'has_tasks': + result.hasTasks = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + break; + case 'auto_bill': + result.autoBill = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + break; + case 'custom_value1': + result.customValue1 = serializers.deserialize(value, + specifiedType: const FullType(double)) as double; + break; + case 'custom_value2': + result.customValue2 = serializers.deserialize(value, + specifiedType: const FullType(double)) as double; + break; + case 'custom_taxes1': + result.customTaxes1 = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + break; + case 'custom_taxes2': + result.customTaxes2 = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + break; + case 'has_expenses': + result.hasExpenses = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + break; + case 'quote_invoice_id': + result.quoteInvoiceId = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'custom_text_value1': + result.customTextValue1 = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'custom_text_value2': + result.customTextValue2 = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'is_quote': + result.isQuote = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + break; + case 'is_public': + result.isPublic = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + break; + case 'filename': + result.filename = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'invoice_items': + result.invoiceItems.replace(serializers.deserialize(value, + specifiedType: const FullType( + BuiltList, const [const FullType(InvoiceItemEntity)])) + as BuiltList); + break; + case 'invitations': + result.invitations.replace(serializers.deserialize(value, + specifiedType: const FullType( + BuiltList, const [const FullType(InvitationEntity)])) + as BuiltList); + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'updated_at': + result.updatedAt = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'archived_at': + result.archivedAt = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'is_deleted': + result.isDeleted = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + break; + } + } + + return result.build(); + } +} + +class _$InvoiceItemEntitySerializer + implements StructuredSerializer { + @override + final Iterable types = const [InvoiceItemEntity, _$InvoiceItemEntity]; + @override + final String wireName = 'InvoiceItemEntity'; + + @override + Iterable serialize(Serializers serializers, InvoiceItemEntity object, + {FullType specifiedType: FullType.unspecified}) { + final result = []; + if (object.productKey != null) { + result + ..add('product_key') + ..add(serializers.serialize(object.productKey, + specifiedType: const FullType(String))); + } + if (object.notes != null) { + result + ..add('notes') + ..add(serializers.serialize(object.notes, + specifiedType: const FullType(String))); + } + if (object.cost != null) { + result + ..add('cost') + ..add(serializers.serialize(object.cost, + specifiedType: const FullType(String))); + } + if (object.qty != null) { + result + ..add('qty') + ..add(serializers.serialize(object.qty, + specifiedType: const FullType(String))); + } + if (object.taxName1 != null) { + result + ..add('tax_name1') + ..add(serializers.serialize(object.taxName1, + specifiedType: const FullType(String))); + } + if (object.taxRate1 != null) { + result + ..add('tax_rate1') + ..add(serializers.serialize(object.taxRate1, + specifiedType: const FullType(double))); + } + if (object.taxName2 != null) { + result + ..add('tax_name2') + ..add(serializers.serialize(object.taxName2, + specifiedType: const FullType(String))); + } + if (object.taxRate2 != null) { + result + ..add('tax_rate2') + ..add(serializers.serialize(object.taxRate2, + specifiedType: const FullType(double))); + } + if (object.invoiceItemTypeId != null) { + result + ..add('invoice_item_type_id') + ..add(serializers.serialize(object.invoiceItemTypeId, + specifiedType: const FullType(int))); + } + if (object.customValue1 != null) { + result + ..add('custom_value1') + ..add(serializers.serialize(object.customValue1, + specifiedType: const FullType(String))); + } + if (object.customValue2 != null) { + result + ..add('custom_value2') + ..add(serializers.serialize(object.customValue2, + specifiedType: const FullType(String))); + } + if (object.discount != null) { + result + ..add('discount') + ..add(serializers.serialize(object.discount, + specifiedType: const FullType(double))); + } + if (object.id != null) { + result + ..add('id') + ..add(serializers.serialize(object.id, + specifiedType: const FullType(int))); + } + if (object.updatedAt != null) { + result + ..add('updated_at') + ..add(serializers.serialize(object.updatedAt, + specifiedType: const FullType(int))); + } + if (object.archivedAt != null) { + result + ..add('archived_at') + ..add(serializers.serialize(object.archivedAt, + specifiedType: const FullType(int))); + } + if (object.isDeleted != null) { + result + ..add('is_deleted') + ..add(serializers.serialize(object.isDeleted, + specifiedType: const FullType(bool))); + } + + return result; + } + + @override + InvoiceItemEntity deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType: FullType.unspecified}) { + final result = new InvoiceItemEntityBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'product_key': + result.productKey = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'notes': + result.notes = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'cost': + result.cost = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'qty': + result.qty = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'tax_name1': + result.taxName1 = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'tax_rate1': + result.taxRate1 = serializers.deserialize(value, + specifiedType: const FullType(double)) as double; + break; + case 'tax_name2': + result.taxName2 = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'tax_rate2': + result.taxRate2 = serializers.deserialize(value, + specifiedType: const FullType(double)) as double; + break; + case 'invoice_item_type_id': + result.invoiceItemTypeId = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'custom_value1': + result.customValue1 = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'custom_value2': + result.customValue2 = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'discount': + result.discount = serializers.deserialize(value, + specifiedType: const FullType(double)) as double; + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'updated_at': + result.updatedAt = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'archived_at': + result.archivedAt = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'is_deleted': + result.isDeleted = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + break; + } + } + + return result.build(); + } +} + +class _$InvitationEntitySerializer + implements StructuredSerializer { + @override + final Iterable types = const [InvitationEntity, _$InvitationEntity]; + @override + final String wireName = 'InvitationEntity'; + + @override + Iterable serialize(Serializers serializers, InvitationEntity object, + {FullType specifiedType: FullType.unspecified}) { + final result = []; + if (object.key != null) { + result + ..add('key') + ..add(serializers.serialize(object.key, + specifiedType: const FullType(String))); + } + if (object.link != null) { + result + ..add('link') + ..add(serializers.serialize(object.link, + specifiedType: const FullType(String))); + } + if (object.sentDate != null) { + result + ..add('sent_date') + ..add(serializers.serialize(object.sentDate, + specifiedType: const FullType(String))); + } + if (object.viewedDate != null) { + result + ..add('viewed_date') + ..add(serializers.serialize(object.viewedDate, + specifiedType: const FullType(String))); + } + if (object.id != null) { + result + ..add('id') + ..add(serializers.serialize(object.id, + specifiedType: const FullType(int))); + } + if (object.updatedAt != null) { + result + ..add('updated_at') + ..add(serializers.serialize(object.updatedAt, + specifiedType: const FullType(int))); + } + if (object.archivedAt != null) { + result + ..add('archived_at') + ..add(serializers.serialize(object.archivedAt, + specifiedType: const FullType(int))); + } + if (object.isDeleted != null) { + result + ..add('is_deleted') + ..add(serializers.serialize(object.isDeleted, + specifiedType: const FullType(bool))); + } + + return result; + } + + @override + InvitationEntity deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType: FullType.unspecified}) { + final result = new InvitationEntityBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'key': + result.key = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'link': + result.link = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'sent_date': + result.sentDate = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'viewed_date': + result.viewedDate = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'updated_at': + result.updatedAt = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'archived_at': + result.archivedAt = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'is_deleted': + result.isDeleted = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + break; + } + } + + return result.build(); + } +} + +class _$InvoiceListResponse extends InvoiceListResponse { + @override + final BuiltList data; + + factory _$InvoiceListResponse([void updates(InvoiceListResponseBuilder b)]) => + (new InvoiceListResponseBuilder()..update(updates)).build(); + + _$InvoiceListResponse._({this.data}) : super._() { + if (data == null) + throw new BuiltValueNullFieldError('InvoiceListResponse', 'data'); + } + + @override + InvoiceListResponse rebuild(void updates(InvoiceListResponseBuilder b)) => + (toBuilder()..update(updates)).build(); + + @override + InvoiceListResponseBuilder toBuilder() => + new InvoiceListResponseBuilder()..replace(this); + + @override + bool operator ==(dynamic other) { + if (identical(other, this)) return true; + if (other is! InvoiceListResponse) return false; + return data == other.data; + } + + @override + int get hashCode { + return $jf($jc(0, data.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('InvoiceListResponse') + ..add('data', data)) + .toString(); + } +} + +class InvoiceListResponseBuilder + implements Builder { + _$InvoiceListResponse _$v; + + ListBuilder _data; + ListBuilder get data => + _$this._data ??= new ListBuilder(); + set data(ListBuilder data) => _$this._data = data; + + InvoiceListResponseBuilder(); + + InvoiceListResponseBuilder get _$this { + if (_$v != null) { + _data = _$v.data?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(InvoiceListResponse other) { + if (other == null) throw new ArgumentError.notNull('other'); + _$v = other as _$InvoiceListResponse; + } + + @override + void update(void updates(InvoiceListResponseBuilder b)) { + if (updates != null) updates(this); + } + + @override + _$InvoiceListResponse build() { + _$InvoiceListResponse _$result; + try { + _$result = _$v ?? new _$InvoiceListResponse._(data: data.build()); + } catch (_) { + String _$failedField; + try { + _$failedField = 'data'; + data.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + 'InvoiceListResponse', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$InvoiceItemResponse extends InvoiceItemResponse { + @override + final InvoiceEntity data; + + factory _$InvoiceItemResponse([void updates(InvoiceItemResponseBuilder b)]) => + (new InvoiceItemResponseBuilder()..update(updates)).build(); + + _$InvoiceItemResponse._({this.data}) : super._() { + if (data == null) + throw new BuiltValueNullFieldError('InvoiceItemResponse', 'data'); + } + + @override + InvoiceItemResponse rebuild(void updates(InvoiceItemResponseBuilder b)) => + (toBuilder()..update(updates)).build(); + + @override + InvoiceItemResponseBuilder toBuilder() => + new InvoiceItemResponseBuilder()..replace(this); + + @override + bool operator ==(dynamic other) { + if (identical(other, this)) return true; + if (other is! InvoiceItemResponse) return false; + return data == other.data; + } + + @override + int get hashCode { + return $jf($jc(0, data.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('InvoiceItemResponse') + ..add('data', data)) + .toString(); + } +} + +class InvoiceItemResponseBuilder + implements Builder { + _$InvoiceItemResponse _$v; + + InvoiceEntityBuilder _data; + InvoiceEntityBuilder get data => _$this._data ??= new InvoiceEntityBuilder(); + set data(InvoiceEntityBuilder data) => _$this._data = data; + + InvoiceItemResponseBuilder(); + + InvoiceItemResponseBuilder get _$this { + if (_$v != null) { + _data = _$v.data?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(InvoiceItemResponse other) { + if (other == null) throw new ArgumentError.notNull('other'); + _$v = other as _$InvoiceItemResponse; + } + + @override + void update(void updates(InvoiceItemResponseBuilder b)) { + if (updates != null) updates(this); + } + + @override + _$InvoiceItemResponse build() { + _$InvoiceItemResponse _$result; + try { + _$result = _$v ?? new _$InvoiceItemResponse._(data: data.build()); + } catch (_) { + String _$failedField; + try { + _$failedField = 'data'; + data.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + 'InvoiceItemResponse', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$InvoiceEntity extends InvoiceEntity { + @override + final double amount; + @override + final double balance; + @override + final int clientId; + @override + final int invoiceStatusId; + @override + final String invoiceNumber; + @override + final double discount; + @override + final String poNumber; + @override + final String invoiceDate; + @override + final String dueDate; + @override + final String terms; + @override + final String publicNotes; + @override + final String privateNotes; + @override + final int invoiceTypeId; + @override + final bool isRecurring; + @override + final int frequencyId; + @override + final String startDate; + @override + final String endDate; + @override + final String lastSentDate; + @override + final int recurringInvoiceId; + @override + final String taxName1; + @override + final double taxRate1; + @override + final String taxName2; + @override + final double taxRate2; + @override + final bool isAmountDiscount; + @override + final String invoiceFooter; + @override + final double partial; + @override + final String partialDueDate; + @override + final bool hasTasks; + @override + final bool autoBill; + @override + final double customValue1; + @override + final double customValue2; + @override + final bool customTaxes1; + @override + final bool customTaxes2; + @override + final bool hasExpenses; + @override + final int quoteInvoiceId; + @override + final String customTextValue1; + @override + final String customTextValue2; + @override + final bool isQuote; + @override + final bool isPublic; + @override + final String filename; + @override + final BuiltList invoiceItems; + @override + final BuiltList invitations; + @override + final int id; + @override + final int updatedAt; + @override + final int archivedAt; + @override + final bool isDeleted; + + factory _$InvoiceEntity([void updates(InvoiceEntityBuilder b)]) => + (new InvoiceEntityBuilder()..update(updates)).build(); + + _$InvoiceEntity._( + {this.amount, + this.balance, + this.clientId, + this.invoiceStatusId, + this.invoiceNumber, + this.discount, + this.poNumber, + this.invoiceDate, + this.dueDate, + this.terms, + this.publicNotes, + this.privateNotes, + this.invoiceTypeId, + this.isRecurring, + this.frequencyId, + this.startDate, + this.endDate, + this.lastSentDate, + this.recurringInvoiceId, + this.taxName1, + this.taxRate1, + this.taxName2, + this.taxRate2, + this.isAmountDiscount, + this.invoiceFooter, + this.partial, + this.partialDueDate, + this.hasTasks, + this.autoBill, + this.customValue1, + this.customValue2, + this.customTaxes1, + this.customTaxes2, + this.hasExpenses, + this.quoteInvoiceId, + this.customTextValue1, + this.customTextValue2, + this.isQuote, + this.isPublic, + this.filename, + this.invoiceItems, + this.invitations, + this.id, + this.updatedAt, + this.archivedAt, + this.isDeleted}) + : super._(); + + @override + InvoiceEntity rebuild(void updates(InvoiceEntityBuilder b)) => + (toBuilder()..update(updates)).build(); + + @override + InvoiceEntityBuilder toBuilder() => new InvoiceEntityBuilder()..replace(this); + + @override + bool operator ==(dynamic other) { + if (identical(other, this)) return true; + if (other is! InvoiceEntity) return false; + return amount == other.amount && + balance == other.balance && + clientId == other.clientId && + invoiceStatusId == other.invoiceStatusId && + invoiceNumber == other.invoiceNumber && + discount == other.discount && + poNumber == other.poNumber && + invoiceDate == other.invoiceDate && + dueDate == other.dueDate && + terms == other.terms && + publicNotes == other.publicNotes && + privateNotes == other.privateNotes && + invoiceTypeId == other.invoiceTypeId && + isRecurring == other.isRecurring && + frequencyId == other.frequencyId && + startDate == other.startDate && + endDate == other.endDate && + lastSentDate == other.lastSentDate && + recurringInvoiceId == other.recurringInvoiceId && + taxName1 == other.taxName1 && + taxRate1 == other.taxRate1 && + taxName2 == other.taxName2 && + taxRate2 == other.taxRate2 && + isAmountDiscount == other.isAmountDiscount && + invoiceFooter == other.invoiceFooter && + partial == other.partial && + partialDueDate == other.partialDueDate && + hasTasks == other.hasTasks && + autoBill == other.autoBill && + customValue1 == other.customValue1 && + customValue2 == other.customValue2 && + customTaxes1 == other.customTaxes1 && + customTaxes2 == other.customTaxes2 && + hasExpenses == other.hasExpenses && + quoteInvoiceId == other.quoteInvoiceId && + customTextValue1 == other.customTextValue1 && + customTextValue2 == other.customTextValue2 && + isQuote == other.isQuote && + isPublic == other.isPublic && + filename == other.filename && + invoiceItems == other.invoiceItems && + invitations == other.invitations && + id == other.id && + updatedAt == other.updatedAt && + archivedAt == other.archivedAt && + isDeleted == other.isDeleted; + } + + @override + int get hashCode { + return $jf($jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc($jc(0, amount.hashCode), balance.hashCode), clientId.hashCode), invoiceStatusId.hashCode), invoiceNumber.hashCode), discount.hashCode), poNumber.hashCode), invoiceDate.hashCode), dueDate.hashCode), terms.hashCode), publicNotes.hashCode), privateNotes.hashCode), invoiceTypeId.hashCode), isRecurring.hashCode), frequencyId.hashCode), startDate.hashCode), endDate.hashCode), lastSentDate.hashCode), recurringInvoiceId.hashCode), taxName1.hashCode), taxRate1.hashCode), taxName2.hashCode), taxRate2.hashCode), isAmountDiscount.hashCode), invoiceFooter.hashCode), partial.hashCode), partialDueDate.hashCode), + hasTasks.hashCode), + autoBill.hashCode), + customValue1.hashCode), + customValue2.hashCode), + customTaxes1.hashCode), + customTaxes2.hashCode), + hasExpenses.hashCode), + quoteInvoiceId.hashCode), + customTextValue1.hashCode), + customTextValue2.hashCode), + isQuote.hashCode), + isPublic.hashCode), + filename.hashCode), + invoiceItems.hashCode), + invitations.hashCode), + id.hashCode), + updatedAt.hashCode), + archivedAt.hashCode), + isDeleted.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('InvoiceEntity') + ..add('amount', amount) + ..add('balance', balance) + ..add('clientId', clientId) + ..add('invoiceStatusId', invoiceStatusId) + ..add('invoiceNumber', invoiceNumber) + ..add('discount', discount) + ..add('poNumber', poNumber) + ..add('invoiceDate', invoiceDate) + ..add('dueDate', dueDate) + ..add('terms', terms) + ..add('publicNotes', publicNotes) + ..add('privateNotes', privateNotes) + ..add('invoiceTypeId', invoiceTypeId) + ..add('isRecurring', isRecurring) + ..add('frequencyId', frequencyId) + ..add('startDate', startDate) + ..add('endDate', endDate) + ..add('lastSentDate', lastSentDate) + ..add('recurringInvoiceId', recurringInvoiceId) + ..add('taxName1', taxName1) + ..add('taxRate1', taxRate1) + ..add('taxName2', taxName2) + ..add('taxRate2', taxRate2) + ..add('isAmountDiscount', isAmountDiscount) + ..add('invoiceFooter', invoiceFooter) + ..add('partial', partial) + ..add('partialDueDate', partialDueDate) + ..add('hasTasks', hasTasks) + ..add('autoBill', autoBill) + ..add('customValue1', customValue1) + ..add('customValue2', customValue2) + ..add('customTaxes1', customTaxes1) + ..add('customTaxes2', customTaxes2) + ..add('hasExpenses', hasExpenses) + ..add('quoteInvoiceId', quoteInvoiceId) + ..add('customTextValue1', customTextValue1) + ..add('customTextValue2', customTextValue2) + ..add('isQuote', isQuote) + ..add('isPublic', isPublic) + ..add('filename', filename) + ..add('invoiceItems', invoiceItems) + ..add('invitations', invitations) + ..add('id', id) + ..add('updatedAt', updatedAt) + ..add('archivedAt', archivedAt) + ..add('isDeleted', isDeleted)) + .toString(); + } +} + +class InvoiceEntityBuilder + implements Builder { + _$InvoiceEntity _$v; + + double _amount; + double get amount => _$this._amount; + set amount(double amount) => _$this._amount = amount; + + double _balance; + double get balance => _$this._balance; + set balance(double balance) => _$this._balance = balance; + + int _clientId; + int get clientId => _$this._clientId; + set clientId(int clientId) => _$this._clientId = clientId; + + int _invoiceStatusId; + int get invoiceStatusId => _$this._invoiceStatusId; + set invoiceStatusId(int invoiceStatusId) => + _$this._invoiceStatusId = invoiceStatusId; + + String _invoiceNumber; + String get invoiceNumber => _$this._invoiceNumber; + set invoiceNumber(String invoiceNumber) => + _$this._invoiceNumber = invoiceNumber; + + double _discount; + double get discount => _$this._discount; + set discount(double discount) => _$this._discount = discount; + + String _poNumber; + String get poNumber => _$this._poNumber; + set poNumber(String poNumber) => _$this._poNumber = poNumber; + + String _invoiceDate; + String get invoiceDate => _$this._invoiceDate; + set invoiceDate(String invoiceDate) => _$this._invoiceDate = invoiceDate; + + String _dueDate; + String get dueDate => _$this._dueDate; + set dueDate(String dueDate) => _$this._dueDate = dueDate; + + String _terms; + String get terms => _$this._terms; + set terms(String terms) => _$this._terms = terms; + + String _publicNotes; + String get publicNotes => _$this._publicNotes; + set publicNotes(String publicNotes) => _$this._publicNotes = publicNotes; + + String _privateNotes; + String get privateNotes => _$this._privateNotes; + set privateNotes(String privateNotes) => _$this._privateNotes = privateNotes; + + int _invoiceTypeId; + int get invoiceTypeId => _$this._invoiceTypeId; + set invoiceTypeId(int invoiceTypeId) => _$this._invoiceTypeId = invoiceTypeId; + + bool _isRecurring; + bool get isRecurring => _$this._isRecurring; + set isRecurring(bool isRecurring) => _$this._isRecurring = isRecurring; + + int _frequencyId; + int get frequencyId => _$this._frequencyId; + set frequencyId(int frequencyId) => _$this._frequencyId = frequencyId; + + String _startDate; + String get startDate => _$this._startDate; + set startDate(String startDate) => _$this._startDate = startDate; + + String _endDate; + String get endDate => _$this._endDate; + set endDate(String endDate) => _$this._endDate = endDate; + + String _lastSentDate; + String get lastSentDate => _$this._lastSentDate; + set lastSentDate(String lastSentDate) => _$this._lastSentDate = lastSentDate; + + int _recurringInvoiceId; + int get recurringInvoiceId => _$this._recurringInvoiceId; + set recurringInvoiceId(int recurringInvoiceId) => + _$this._recurringInvoiceId = recurringInvoiceId; + + String _taxName1; + String get taxName1 => _$this._taxName1; + set taxName1(String taxName1) => _$this._taxName1 = taxName1; + + double _taxRate1; + double get taxRate1 => _$this._taxRate1; + set taxRate1(double taxRate1) => _$this._taxRate1 = taxRate1; + + String _taxName2; + String get taxName2 => _$this._taxName2; + set taxName2(String taxName2) => _$this._taxName2 = taxName2; + + double _taxRate2; + double get taxRate2 => _$this._taxRate2; + set taxRate2(double taxRate2) => _$this._taxRate2 = taxRate2; + + bool _isAmountDiscount; + bool get isAmountDiscount => _$this._isAmountDiscount; + set isAmountDiscount(bool isAmountDiscount) => + _$this._isAmountDiscount = isAmountDiscount; + + String _invoiceFooter; + String get invoiceFooter => _$this._invoiceFooter; + set invoiceFooter(String invoiceFooter) => + _$this._invoiceFooter = invoiceFooter; + + double _partial; + double get partial => _$this._partial; + set partial(double partial) => _$this._partial = partial; + + String _partialDueDate; + String get partialDueDate => _$this._partialDueDate; + set partialDueDate(String partialDueDate) => + _$this._partialDueDate = partialDueDate; + + bool _hasTasks; + bool get hasTasks => _$this._hasTasks; + set hasTasks(bool hasTasks) => _$this._hasTasks = hasTasks; + + bool _autoBill; + bool get autoBill => _$this._autoBill; + set autoBill(bool autoBill) => _$this._autoBill = autoBill; + + double _customValue1; + double get customValue1 => _$this._customValue1; + set customValue1(double customValue1) => _$this._customValue1 = customValue1; + + double _customValue2; + double get customValue2 => _$this._customValue2; + set customValue2(double customValue2) => _$this._customValue2 = customValue2; + + bool _customTaxes1; + bool get customTaxes1 => _$this._customTaxes1; + set customTaxes1(bool customTaxes1) => _$this._customTaxes1 = customTaxes1; + + bool _customTaxes2; + bool get customTaxes2 => _$this._customTaxes2; + set customTaxes2(bool customTaxes2) => _$this._customTaxes2 = customTaxes2; + + bool _hasExpenses; + bool get hasExpenses => _$this._hasExpenses; + set hasExpenses(bool hasExpenses) => _$this._hasExpenses = hasExpenses; + + int _quoteInvoiceId; + int get quoteInvoiceId => _$this._quoteInvoiceId; + set quoteInvoiceId(int quoteInvoiceId) => + _$this._quoteInvoiceId = quoteInvoiceId; + + String _customTextValue1; + String get customTextValue1 => _$this._customTextValue1; + set customTextValue1(String customTextValue1) => + _$this._customTextValue1 = customTextValue1; + + String _customTextValue2; + String get customTextValue2 => _$this._customTextValue2; + set customTextValue2(String customTextValue2) => + _$this._customTextValue2 = customTextValue2; + + bool _isQuote; + bool get isQuote => _$this._isQuote; + set isQuote(bool isQuote) => _$this._isQuote = isQuote; + + bool _isPublic; + bool get isPublic => _$this._isPublic; + set isPublic(bool isPublic) => _$this._isPublic = isPublic; + + String _filename; + String get filename => _$this._filename; + set filename(String filename) => _$this._filename = filename; + + ListBuilder _invoiceItems; + ListBuilder get invoiceItems => + _$this._invoiceItems ??= new ListBuilder(); + set invoiceItems(ListBuilder invoiceItems) => + _$this._invoiceItems = invoiceItems; + + ListBuilder _invitations; + ListBuilder get invitations => + _$this._invitations ??= new ListBuilder(); + set invitations(ListBuilder invitations) => + _$this._invitations = invitations; + + int _id; + int get id => _$this._id; + set id(int id) => _$this._id = id; + + int _updatedAt; + int get updatedAt => _$this._updatedAt; + set updatedAt(int updatedAt) => _$this._updatedAt = updatedAt; + + int _archivedAt; + int get archivedAt => _$this._archivedAt; + set archivedAt(int archivedAt) => _$this._archivedAt = archivedAt; + + bool _isDeleted; + bool get isDeleted => _$this._isDeleted; + set isDeleted(bool isDeleted) => _$this._isDeleted = isDeleted; + + InvoiceEntityBuilder(); + + InvoiceEntityBuilder get _$this { + if (_$v != null) { + _amount = _$v.amount; + _balance = _$v.balance; + _clientId = _$v.clientId; + _invoiceStatusId = _$v.invoiceStatusId; + _invoiceNumber = _$v.invoiceNumber; + _discount = _$v.discount; + _poNumber = _$v.poNumber; + _invoiceDate = _$v.invoiceDate; + _dueDate = _$v.dueDate; + _terms = _$v.terms; + _publicNotes = _$v.publicNotes; + _privateNotes = _$v.privateNotes; + _invoiceTypeId = _$v.invoiceTypeId; + _isRecurring = _$v.isRecurring; + _frequencyId = _$v.frequencyId; + _startDate = _$v.startDate; + _endDate = _$v.endDate; + _lastSentDate = _$v.lastSentDate; + _recurringInvoiceId = _$v.recurringInvoiceId; + _taxName1 = _$v.taxName1; + _taxRate1 = _$v.taxRate1; + _taxName2 = _$v.taxName2; + _taxRate2 = _$v.taxRate2; + _isAmountDiscount = _$v.isAmountDiscount; + _invoiceFooter = _$v.invoiceFooter; + _partial = _$v.partial; + _partialDueDate = _$v.partialDueDate; + _hasTasks = _$v.hasTasks; + _autoBill = _$v.autoBill; + _customValue1 = _$v.customValue1; + _customValue2 = _$v.customValue2; + _customTaxes1 = _$v.customTaxes1; + _customTaxes2 = _$v.customTaxes2; + _hasExpenses = _$v.hasExpenses; + _quoteInvoiceId = _$v.quoteInvoiceId; + _customTextValue1 = _$v.customTextValue1; + _customTextValue2 = _$v.customTextValue2; + _isQuote = _$v.isQuote; + _isPublic = _$v.isPublic; + _filename = _$v.filename; + _invoiceItems = _$v.invoiceItems?.toBuilder(); + _invitations = _$v.invitations?.toBuilder(); + _id = _$v.id; + _updatedAt = _$v.updatedAt; + _archivedAt = _$v.archivedAt; + _isDeleted = _$v.isDeleted; + _$v = null; + } + return this; + } + + @override + void replace(InvoiceEntity other) { + if (other == null) throw new ArgumentError.notNull('other'); + _$v = other as _$InvoiceEntity; + } + + @override + void update(void updates(InvoiceEntityBuilder b)) { + if (updates != null) updates(this); + } + + @override + _$InvoiceEntity build() { + _$InvoiceEntity _$result; + try { + _$result = _$v ?? + new _$InvoiceEntity._( + amount: amount, + balance: balance, + clientId: clientId, + invoiceStatusId: invoiceStatusId, + invoiceNumber: invoiceNumber, + discount: discount, + poNumber: poNumber, + invoiceDate: invoiceDate, + dueDate: dueDate, + terms: terms, + publicNotes: publicNotes, + privateNotes: privateNotes, + invoiceTypeId: invoiceTypeId, + isRecurring: isRecurring, + frequencyId: frequencyId, + startDate: startDate, + endDate: endDate, + lastSentDate: lastSentDate, + recurringInvoiceId: recurringInvoiceId, + taxName1: taxName1, + taxRate1: taxRate1, + taxName2: taxName2, + taxRate2: taxRate2, + isAmountDiscount: isAmountDiscount, + invoiceFooter: invoiceFooter, + partial: partial, + partialDueDate: partialDueDate, + hasTasks: hasTasks, + autoBill: autoBill, + customValue1: customValue1, + customValue2: customValue2, + customTaxes1: customTaxes1, + customTaxes2: customTaxes2, + hasExpenses: hasExpenses, + quoteInvoiceId: quoteInvoiceId, + customTextValue1: customTextValue1, + customTextValue2: customTextValue2, + isQuote: isQuote, + isPublic: isPublic, + filename: filename, + invoiceItems: _invoiceItems?.build(), + invitations: _invitations?.build(), + id: id, + updatedAt: updatedAt, + archivedAt: archivedAt, + isDeleted: isDeleted); + } catch (_) { + String _$failedField; + try { + _$failedField = 'invoiceItems'; + _invoiceItems?.build(); + _$failedField = 'invitations'; + _invitations?.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + 'InvoiceEntity', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$InvoiceItemEntity extends InvoiceItemEntity { + @override + final String productKey; + @override + final String notes; + @override + final String cost; + @override + final String qty; + @override + final String taxName1; + @override + final double taxRate1; + @override + final String taxName2; + @override + final double taxRate2; + @override + final int invoiceItemTypeId; + @override + final String customValue1; + @override + final String customValue2; + @override + final double discount; + @override + final int id; + @override + final int updatedAt; + @override + final int archivedAt; + @override + final bool isDeleted; + + factory _$InvoiceItemEntity([void updates(InvoiceItemEntityBuilder b)]) => + (new InvoiceItemEntityBuilder()..update(updates)).build(); + + _$InvoiceItemEntity._( + {this.productKey, + this.notes, + this.cost, + this.qty, + this.taxName1, + this.taxRate1, + this.taxName2, + this.taxRate2, + this.invoiceItemTypeId, + this.customValue1, + this.customValue2, + this.discount, + this.id, + this.updatedAt, + this.archivedAt, + this.isDeleted}) + : super._(); + + @override + InvoiceItemEntity rebuild(void updates(InvoiceItemEntityBuilder b)) => + (toBuilder()..update(updates)).build(); + + @override + InvoiceItemEntityBuilder toBuilder() => + new InvoiceItemEntityBuilder()..replace(this); + + @override + bool operator ==(dynamic other) { + if (identical(other, this)) return true; + if (other is! InvoiceItemEntity) return false; + return productKey == other.productKey && + notes == other.notes && + cost == other.cost && + qty == other.qty && + taxName1 == other.taxName1 && + taxRate1 == other.taxRate1 && + taxName2 == other.taxName2 && + taxRate2 == other.taxRate2 && + invoiceItemTypeId == other.invoiceItemTypeId && + customValue1 == other.customValue1 && + customValue2 == other.customValue2 && + discount == other.discount && + id == other.id && + updatedAt == other.updatedAt && + archivedAt == other.archivedAt && + isDeleted == other.isDeleted; + } + + @override + int get hashCode { + return $jf($jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + 0, + productKey + .hashCode), + notes.hashCode), + cost.hashCode), + qty.hashCode), + taxName1.hashCode), + taxRate1.hashCode), + taxName2.hashCode), + taxRate2.hashCode), + invoiceItemTypeId.hashCode), + customValue1.hashCode), + customValue2.hashCode), + discount.hashCode), + id.hashCode), + updatedAt.hashCode), + archivedAt.hashCode), + isDeleted.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('InvoiceItemEntity') + ..add('productKey', productKey) + ..add('notes', notes) + ..add('cost', cost) + ..add('qty', qty) + ..add('taxName1', taxName1) + ..add('taxRate1', taxRate1) + ..add('taxName2', taxName2) + ..add('taxRate2', taxRate2) + ..add('invoiceItemTypeId', invoiceItemTypeId) + ..add('customValue1', customValue1) + ..add('customValue2', customValue2) + ..add('discount', discount) + ..add('id', id) + ..add('updatedAt', updatedAt) + ..add('archivedAt', archivedAt) + ..add('isDeleted', isDeleted)) + .toString(); + } +} + +class InvoiceItemEntityBuilder + implements Builder { + _$InvoiceItemEntity _$v; + + String _productKey; + String get productKey => _$this._productKey; + set productKey(String productKey) => _$this._productKey = productKey; + + String _notes; + String get notes => _$this._notes; + set notes(String notes) => _$this._notes = notes; + + String _cost; + String get cost => _$this._cost; + set cost(String cost) => _$this._cost = cost; + + String _qty; + String get qty => _$this._qty; + set qty(String qty) => _$this._qty = qty; + + String _taxName1; + String get taxName1 => _$this._taxName1; + set taxName1(String taxName1) => _$this._taxName1 = taxName1; + + double _taxRate1; + double get taxRate1 => _$this._taxRate1; + set taxRate1(double taxRate1) => _$this._taxRate1 = taxRate1; + + String _taxName2; + String get taxName2 => _$this._taxName2; + set taxName2(String taxName2) => _$this._taxName2 = taxName2; + + double _taxRate2; + double get taxRate2 => _$this._taxRate2; + set taxRate2(double taxRate2) => _$this._taxRate2 = taxRate2; + + int _invoiceItemTypeId; + int get invoiceItemTypeId => _$this._invoiceItemTypeId; + set invoiceItemTypeId(int invoiceItemTypeId) => + _$this._invoiceItemTypeId = invoiceItemTypeId; + + String _customValue1; + String get customValue1 => _$this._customValue1; + set customValue1(String customValue1) => _$this._customValue1 = customValue1; + + String _customValue2; + String get customValue2 => _$this._customValue2; + set customValue2(String customValue2) => _$this._customValue2 = customValue2; + + double _discount; + double get discount => _$this._discount; + set discount(double discount) => _$this._discount = discount; + + int _id; + int get id => _$this._id; + set id(int id) => _$this._id = id; + + int _updatedAt; + int get updatedAt => _$this._updatedAt; + set updatedAt(int updatedAt) => _$this._updatedAt = updatedAt; + + int _archivedAt; + int get archivedAt => _$this._archivedAt; + set archivedAt(int archivedAt) => _$this._archivedAt = archivedAt; + + bool _isDeleted; + bool get isDeleted => _$this._isDeleted; + set isDeleted(bool isDeleted) => _$this._isDeleted = isDeleted; + + InvoiceItemEntityBuilder(); + + InvoiceItemEntityBuilder get _$this { + if (_$v != null) { + _productKey = _$v.productKey; + _notes = _$v.notes; + _cost = _$v.cost; + _qty = _$v.qty; + _taxName1 = _$v.taxName1; + _taxRate1 = _$v.taxRate1; + _taxName2 = _$v.taxName2; + _taxRate2 = _$v.taxRate2; + _invoiceItemTypeId = _$v.invoiceItemTypeId; + _customValue1 = _$v.customValue1; + _customValue2 = _$v.customValue2; + _discount = _$v.discount; + _id = _$v.id; + _updatedAt = _$v.updatedAt; + _archivedAt = _$v.archivedAt; + _isDeleted = _$v.isDeleted; + _$v = null; + } + return this; + } + + @override + void replace(InvoiceItemEntity other) { + if (other == null) throw new ArgumentError.notNull('other'); + _$v = other as _$InvoiceItemEntity; + } + + @override + void update(void updates(InvoiceItemEntityBuilder b)) { + if (updates != null) updates(this); + } + + @override + _$InvoiceItemEntity build() { + final _$result = _$v ?? + new _$InvoiceItemEntity._( + productKey: productKey, + notes: notes, + cost: cost, + qty: qty, + taxName1: taxName1, + taxRate1: taxRate1, + taxName2: taxName2, + taxRate2: taxRate2, + invoiceItemTypeId: invoiceItemTypeId, + customValue1: customValue1, + customValue2: customValue2, + discount: discount, + id: id, + updatedAt: updatedAt, + archivedAt: archivedAt, + isDeleted: isDeleted); + replace(_$result); + return _$result; + } +} + +class _$InvitationEntity extends InvitationEntity { + @override + final String key; + @override + final String link; + @override + final String sentDate; + @override + final String viewedDate; + @override + final int id; + @override + final int updatedAt; + @override + final int archivedAt; + @override + final bool isDeleted; + + factory _$InvitationEntity([void updates(InvitationEntityBuilder b)]) => + (new InvitationEntityBuilder()..update(updates)).build(); + + _$InvitationEntity._( + {this.key, + this.link, + this.sentDate, + this.viewedDate, + this.id, + this.updatedAt, + this.archivedAt, + this.isDeleted}) + : super._(); + + @override + InvitationEntity rebuild(void updates(InvitationEntityBuilder b)) => + (toBuilder()..update(updates)).build(); + + @override + InvitationEntityBuilder toBuilder() => + new InvitationEntityBuilder()..replace(this); + + @override + bool operator ==(dynamic other) { + if (identical(other, this)) return true; + if (other is! InvitationEntity) return false; + return key == other.key && + link == other.link && + sentDate == other.sentDate && + viewedDate == other.viewedDate && + id == other.id && + updatedAt == other.updatedAt && + archivedAt == other.archivedAt && + isDeleted == other.isDeleted; + } + + @override + int get hashCode { + return $jf($jc( + $jc( + $jc( + $jc( + $jc( + $jc($jc($jc(0, key.hashCode), link.hashCode), + sentDate.hashCode), + viewedDate.hashCode), + id.hashCode), + updatedAt.hashCode), + archivedAt.hashCode), + isDeleted.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('InvitationEntity') + ..add('key', key) + ..add('link', link) + ..add('sentDate', sentDate) + ..add('viewedDate', viewedDate) + ..add('id', id) + ..add('updatedAt', updatedAt) + ..add('archivedAt', archivedAt) + ..add('isDeleted', isDeleted)) + .toString(); + } +} + +class InvitationEntityBuilder + implements Builder { + _$InvitationEntity _$v; + + String _key; + String get key => _$this._key; + set key(String key) => _$this._key = key; + + String _link; + String get link => _$this._link; + set link(String link) => _$this._link = link; + + String _sentDate; + String get sentDate => _$this._sentDate; + set sentDate(String sentDate) => _$this._sentDate = sentDate; + + String _viewedDate; + String get viewedDate => _$this._viewedDate; + set viewedDate(String viewedDate) => _$this._viewedDate = viewedDate; + + int _id; + int get id => _$this._id; + set id(int id) => _$this._id = id; + + int _updatedAt; + int get updatedAt => _$this._updatedAt; + set updatedAt(int updatedAt) => _$this._updatedAt = updatedAt; + + int _archivedAt; + int get archivedAt => _$this._archivedAt; + set archivedAt(int archivedAt) => _$this._archivedAt = archivedAt; + + bool _isDeleted; + bool get isDeleted => _$this._isDeleted; + set isDeleted(bool isDeleted) => _$this._isDeleted = isDeleted; + + InvitationEntityBuilder(); + + InvitationEntityBuilder get _$this { + if (_$v != null) { + _key = _$v.key; + _link = _$v.link; + _sentDate = _$v.sentDate; + _viewedDate = _$v.viewedDate; + _id = _$v.id; + _updatedAt = _$v.updatedAt; + _archivedAt = _$v.archivedAt; + _isDeleted = _$v.isDeleted; + _$v = null; + } + return this; + } + + @override + void replace(InvitationEntity other) { + if (other == null) throw new ArgumentError.notNull('other'); + _$v = other as _$InvitationEntity; + } + + @override + void update(void updates(InvitationEntityBuilder b)) { + if (updates != null) updates(this); + } + + @override + _$InvitationEntity build() { + final _$result = _$v ?? + new _$InvitationEntity._( + key: key, + link: link, + sentDate: sentDate, + viewedDate: viewedDate, + id: id, + updatedAt: updatedAt, + archivedAt: archivedAt, + isDeleted: isDeleted); + replace(_$result); + return _$result; + } +} diff --git a/lib/data/models/models.dart b/lib/data/models/models.dart index c0e5609cd..f7a6641bc 100644 --- a/lib/data/models/models.dart +++ b/lib/data/models/models.dart @@ -1,6 +1,13 @@ export 'package:invoiceninja/data/models/entities.dart'; export 'package:invoiceninja/data/models/product_model.dart'; export 'package:invoiceninja/data/models/client_model.dart'; +export 'package:invoiceninja/data/models/credit_model.dart'; +export 'package:invoiceninja/data/models/project_model.dart'; +export 'package:invoiceninja/data/models/payment_model.dart'; +export 'package:invoiceninja/data/models/invoice_model.dart'; +export 'package:invoiceninja/data/models/task_model.dart'; +export 'package:invoiceninja/data/models/expense_model.dart'; +export 'package:invoiceninja/data/models/vendor_model.dart'; import 'package:built_collection/built_collection.dart'; import 'package:built_value/built_value.dart'; import 'package:built_value/serializer.dart'; diff --git a/lib/data/models/payment_model.dart b/lib/data/models/payment_model.dart new file mode 100644 index 000000000..2176f1619 --- /dev/null +++ b/lib/data/models/payment_model.dart @@ -0,0 +1,104 @@ +import 'package:built_collection/built_collection.dart'; +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:invoiceninja/data/models/entities.dart'; + +part 'payment_model.g.dart'; + +abstract class PaymentListResponse implements Built { + + BuiltList get data; + + PaymentListResponse._(); + factory PaymentListResponse([updates(PaymentListResponseBuilder b)]) = _$PaymentListResponse; + static Serializer get serializer => _$paymentListResponseSerializer; +} + +abstract class PaymentItemResponse implements Built { + + PaymentEntity get data; + + PaymentItemResponse._(); + factory PaymentItemResponse([updates(PaymentItemResponseBuilder b)]) = _$PaymentItemResponse; + static Serializer get serializer => _$paymentItemResponseSerializer; +} + + +class PaymentFields { + static const String amount = 'amount'; + static const String transactionReference = 'transactionReference'; + static const String paymentDate = 'paymentDate'; + static const String paymentTypeId = 'paymentTypeId'; + static const String invoiceId = 'invoiceId'; + static const String invoiceNumber = 'invoiceNumber'; + static const String privateNotes = 'privateNotes'; + static const String exchangeRate = 'exchangeRate'; + static const String exchangeCurrencyId = 'exchangeCurrencyId'; + + static const String updatedAt = 'updatedAt'; + static const String archivedAt = 'archivedAt'; + static const String isDeleted = 'isDeleted'; +} + +abstract class PaymentEntity extends Object with BaseEntity implements Built { + + @nullable + double get amount; + + @nullable + @BuiltValueField(wireName: 'transaction_reference') + String get transactionReference; + + @nullable + @BuiltValueField(wireName: 'payment_date') + String get paymentDate; + + @nullable + @BuiltValueField(wireName: 'payment_type_id') + int get paymentTypeId; + + @nullable + @BuiltValueField(wireName: 'invoice_id') + int get invoiceId; + + @nullable + @BuiltValueField(wireName: 'invoice_number') + String get invoice_number; + + @nullable + @BuiltValueField(wireName: 'private_notes') + String get privateNotes; + + @nullable + @BuiltValueField(wireName: 'exchange_rate') + double get exchangeRate; + + @nullable + @BuiltValueField(wireName: 'exchange_currency_id') + int get exchangeCurrencyId; + + int compareTo(PaymentEntity credit, String sortField, bool sortAscending) { + int response = 0; + PaymentEntity creditA = sortAscending ? this : credit; + PaymentEntity creditB = sortAscending ? credit: this; + + switch (sortField) { + case PaymentFields.amount: + response = creditA.amount.compareTo(creditB.amount); + } + + return response; + } + + bool matchesSearch(String search) { + if (search == null || search.isEmpty) { + return true; + } + + return privateNotes.contains(search); + } + + PaymentEntity._(); + factory PaymentEntity([updates(PaymentEntityBuilder b)]) = _$PaymentEntity; + static Serializer get serializer => _$paymentEntitySerializer; +} diff --git a/lib/data/models/payment_model.g.dart b/lib/data/models/payment_model.g.dart new file mode 100644 index 000000000..a4e5c9ef2 --- /dev/null +++ b/lib/data/models/payment_model.g.dart @@ -0,0 +1,693 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'payment_model.dart'; + +// ************************************************************************** +// Generator: BuiltValueGenerator +// ************************************************************************** + +// ignore_for_file: always_put_control_body_on_new_line +// ignore_for_file: annotate_overrides +// ignore_for_file: avoid_annotating_with_dynamic +// ignore_for_file: avoid_returning_this +// ignore_for_file: omit_local_variable_types +// ignore_for_file: prefer_expression_function_bodies +// ignore_for_file: sort_constructors_first + +Serializer _$paymentListResponseSerializer = + new _$PaymentListResponseSerializer(); +Serializer _$paymentItemResponseSerializer = + new _$PaymentItemResponseSerializer(); +Serializer _$paymentEntitySerializer = + new _$PaymentEntitySerializer(); + +class _$PaymentListResponseSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + PaymentListResponse, + _$PaymentListResponse + ]; + @override + final String wireName = 'PaymentListResponse'; + + @override + Iterable serialize(Serializers serializers, PaymentListResponse object, + {FullType specifiedType: FullType.unspecified}) { + final result = [ + 'data', + serializers.serialize(object.data, + specifiedType: + const FullType(BuiltList, const [const FullType(PaymentEntity)])), + ]; + + return result; + } + + @override + PaymentListResponse deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType: FullType.unspecified}) { + final result = new PaymentListResponseBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'data': + result.data.replace(serializers.deserialize(value, + specifiedType: const FullType( + BuiltList, const [const FullType(PaymentEntity)])) + as BuiltList); + break; + } + } + + return result.build(); + } +} + +class _$PaymentItemResponseSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + PaymentItemResponse, + _$PaymentItemResponse + ]; + @override + final String wireName = 'PaymentItemResponse'; + + @override + Iterable serialize(Serializers serializers, PaymentItemResponse object, + {FullType specifiedType: FullType.unspecified}) { + final result = [ + 'data', + serializers.serialize(object.data, + specifiedType: const FullType(PaymentEntity)), + ]; + + return result; + } + + @override + PaymentItemResponse deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType: FullType.unspecified}) { + final result = new PaymentItemResponseBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'data': + result.data.replace(serializers.deserialize(value, + specifiedType: const FullType(PaymentEntity)) as PaymentEntity); + break; + } + } + + return result.build(); + } +} + +class _$PaymentEntitySerializer implements StructuredSerializer { + @override + final Iterable types = const [PaymentEntity, _$PaymentEntity]; + @override + final String wireName = 'PaymentEntity'; + + @override + Iterable serialize(Serializers serializers, PaymentEntity object, + {FullType specifiedType: FullType.unspecified}) { + final result = []; + if (object.amount != null) { + result + ..add('amount') + ..add(serializers.serialize(object.amount, + specifiedType: const FullType(double))); + } + if (object.transactionReference != null) { + result + ..add('transaction_reference') + ..add(serializers.serialize(object.transactionReference, + specifiedType: const FullType(String))); + } + if (object.paymentDate != null) { + result + ..add('payment_date') + ..add(serializers.serialize(object.paymentDate, + specifiedType: const FullType(String))); + } + if (object.paymentTypeId != null) { + result + ..add('payment_type_id') + ..add(serializers.serialize(object.paymentTypeId, + specifiedType: const FullType(int))); + } + if (object.invoiceId != null) { + result + ..add('invoice_id') + ..add(serializers.serialize(object.invoiceId, + specifiedType: const FullType(int))); + } + if (object.invoice_number != null) { + result + ..add('invoice_number') + ..add(serializers.serialize(object.invoice_number, + specifiedType: const FullType(String))); + } + if (object.privateNotes != null) { + result + ..add('private_notes') + ..add(serializers.serialize(object.privateNotes, + specifiedType: const FullType(String))); + } + if (object.exchangeRate != null) { + result + ..add('exchange_rate') + ..add(serializers.serialize(object.exchangeRate, + specifiedType: const FullType(double))); + } + if (object.exchangeCurrencyId != null) { + result + ..add('exchange_currency_id') + ..add(serializers.serialize(object.exchangeCurrencyId, + specifiedType: const FullType(int))); + } + if (object.id != null) { + result + ..add('id') + ..add(serializers.serialize(object.id, + specifiedType: const FullType(int))); + } + if (object.updatedAt != null) { + result + ..add('updated_at') + ..add(serializers.serialize(object.updatedAt, + specifiedType: const FullType(int))); + } + if (object.archivedAt != null) { + result + ..add('archived_at') + ..add(serializers.serialize(object.archivedAt, + specifiedType: const FullType(int))); + } + if (object.isDeleted != null) { + result + ..add('is_deleted') + ..add(serializers.serialize(object.isDeleted, + specifiedType: const FullType(bool))); + } + + return result; + } + + @override + PaymentEntity deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType: FullType.unspecified}) { + final result = new PaymentEntityBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'amount': + result.amount = serializers.deserialize(value, + specifiedType: const FullType(double)) as double; + break; + case 'transaction_reference': + result.transactionReference = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'payment_date': + result.paymentDate = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'payment_type_id': + result.paymentTypeId = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'invoice_id': + result.invoiceId = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'invoice_number': + result.invoice_number = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'private_notes': + result.privateNotes = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'exchange_rate': + result.exchangeRate = serializers.deserialize(value, + specifiedType: const FullType(double)) as double; + break; + case 'exchange_currency_id': + result.exchangeCurrencyId = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'updated_at': + result.updatedAt = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'archived_at': + result.archivedAt = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'is_deleted': + result.isDeleted = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + break; + } + } + + return result.build(); + } +} + +class _$PaymentListResponse extends PaymentListResponse { + @override + final BuiltList data; + + factory _$PaymentListResponse([void updates(PaymentListResponseBuilder b)]) => + (new PaymentListResponseBuilder()..update(updates)).build(); + + _$PaymentListResponse._({this.data}) : super._() { + if (data == null) + throw new BuiltValueNullFieldError('PaymentListResponse', 'data'); + } + + @override + PaymentListResponse rebuild(void updates(PaymentListResponseBuilder b)) => + (toBuilder()..update(updates)).build(); + + @override + PaymentListResponseBuilder toBuilder() => + new PaymentListResponseBuilder()..replace(this); + + @override + bool operator ==(dynamic other) { + if (identical(other, this)) return true; + if (other is! PaymentListResponse) return false; + return data == other.data; + } + + @override + int get hashCode { + return $jf($jc(0, data.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('PaymentListResponse') + ..add('data', data)) + .toString(); + } +} + +class PaymentListResponseBuilder + implements Builder { + _$PaymentListResponse _$v; + + ListBuilder _data; + ListBuilder get data => + _$this._data ??= new ListBuilder(); + set data(ListBuilder data) => _$this._data = data; + + PaymentListResponseBuilder(); + + PaymentListResponseBuilder get _$this { + if (_$v != null) { + _data = _$v.data?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(PaymentListResponse other) { + if (other == null) throw new ArgumentError.notNull('other'); + _$v = other as _$PaymentListResponse; + } + + @override + void update(void updates(PaymentListResponseBuilder b)) { + if (updates != null) updates(this); + } + + @override + _$PaymentListResponse build() { + _$PaymentListResponse _$result; + try { + _$result = _$v ?? new _$PaymentListResponse._(data: data.build()); + } catch (_) { + String _$failedField; + try { + _$failedField = 'data'; + data.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + 'PaymentListResponse', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$PaymentItemResponse extends PaymentItemResponse { + @override + final PaymentEntity data; + + factory _$PaymentItemResponse([void updates(PaymentItemResponseBuilder b)]) => + (new PaymentItemResponseBuilder()..update(updates)).build(); + + _$PaymentItemResponse._({this.data}) : super._() { + if (data == null) + throw new BuiltValueNullFieldError('PaymentItemResponse', 'data'); + } + + @override + PaymentItemResponse rebuild(void updates(PaymentItemResponseBuilder b)) => + (toBuilder()..update(updates)).build(); + + @override + PaymentItemResponseBuilder toBuilder() => + new PaymentItemResponseBuilder()..replace(this); + + @override + bool operator ==(dynamic other) { + if (identical(other, this)) return true; + if (other is! PaymentItemResponse) return false; + return data == other.data; + } + + @override + int get hashCode { + return $jf($jc(0, data.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('PaymentItemResponse') + ..add('data', data)) + .toString(); + } +} + +class PaymentItemResponseBuilder + implements Builder { + _$PaymentItemResponse _$v; + + PaymentEntityBuilder _data; + PaymentEntityBuilder get data => _$this._data ??= new PaymentEntityBuilder(); + set data(PaymentEntityBuilder data) => _$this._data = data; + + PaymentItemResponseBuilder(); + + PaymentItemResponseBuilder get _$this { + if (_$v != null) { + _data = _$v.data?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(PaymentItemResponse other) { + if (other == null) throw new ArgumentError.notNull('other'); + _$v = other as _$PaymentItemResponse; + } + + @override + void update(void updates(PaymentItemResponseBuilder b)) { + if (updates != null) updates(this); + } + + @override + _$PaymentItemResponse build() { + _$PaymentItemResponse _$result; + try { + _$result = _$v ?? new _$PaymentItemResponse._(data: data.build()); + } catch (_) { + String _$failedField; + try { + _$failedField = 'data'; + data.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + 'PaymentItemResponse', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$PaymentEntity extends PaymentEntity { + @override + final double amount; + @override + final String transactionReference; + @override + final String paymentDate; + @override + final int paymentTypeId; + @override + final int invoiceId; + @override + final String invoice_number; + @override + final String privateNotes; + @override + final double exchangeRate; + @override + final int exchangeCurrencyId; + @override + final int id; + @override + final int updatedAt; + @override + final int archivedAt; + @override + final bool isDeleted; + + factory _$PaymentEntity([void updates(PaymentEntityBuilder b)]) => + (new PaymentEntityBuilder()..update(updates)).build(); + + _$PaymentEntity._( + {this.amount, + this.transactionReference, + this.paymentDate, + this.paymentTypeId, + this.invoiceId, + this.invoice_number, + this.privateNotes, + this.exchangeRate, + this.exchangeCurrencyId, + this.id, + this.updatedAt, + this.archivedAt, + this.isDeleted}) + : super._(); + + @override + PaymentEntity rebuild(void updates(PaymentEntityBuilder b)) => + (toBuilder()..update(updates)).build(); + + @override + PaymentEntityBuilder toBuilder() => new PaymentEntityBuilder()..replace(this); + + @override + bool operator ==(dynamic other) { + if (identical(other, this)) return true; + if (other is! PaymentEntity) return false; + return amount == other.amount && + transactionReference == other.transactionReference && + paymentDate == other.paymentDate && + paymentTypeId == other.paymentTypeId && + invoiceId == other.invoiceId && + invoice_number == other.invoice_number && + privateNotes == other.privateNotes && + exchangeRate == other.exchangeRate && + exchangeCurrencyId == other.exchangeCurrencyId && + id == other.id && + updatedAt == other.updatedAt && + archivedAt == other.archivedAt && + isDeleted == other.isDeleted; + } + + @override + int get hashCode { + return $jf($jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc(0, amount.hashCode), + transactionReference + .hashCode), + paymentDate.hashCode), + paymentTypeId.hashCode), + invoiceId.hashCode), + invoice_number.hashCode), + privateNotes.hashCode), + exchangeRate.hashCode), + exchangeCurrencyId.hashCode), + id.hashCode), + updatedAt.hashCode), + archivedAt.hashCode), + isDeleted.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('PaymentEntity') + ..add('amount', amount) + ..add('transactionReference', transactionReference) + ..add('paymentDate', paymentDate) + ..add('paymentTypeId', paymentTypeId) + ..add('invoiceId', invoiceId) + ..add('invoice_number', invoice_number) + ..add('privateNotes', privateNotes) + ..add('exchangeRate', exchangeRate) + ..add('exchangeCurrencyId', exchangeCurrencyId) + ..add('id', id) + ..add('updatedAt', updatedAt) + ..add('archivedAt', archivedAt) + ..add('isDeleted', isDeleted)) + .toString(); + } +} + +class PaymentEntityBuilder + implements Builder { + _$PaymentEntity _$v; + + double _amount; + double get amount => _$this._amount; + set amount(double amount) => _$this._amount = amount; + + String _transactionReference; + String get transactionReference => _$this._transactionReference; + set transactionReference(String transactionReference) => + _$this._transactionReference = transactionReference; + + String _paymentDate; + String get paymentDate => _$this._paymentDate; + set paymentDate(String paymentDate) => _$this._paymentDate = paymentDate; + + int _paymentTypeId; + int get paymentTypeId => _$this._paymentTypeId; + set paymentTypeId(int paymentTypeId) => _$this._paymentTypeId = paymentTypeId; + + int _invoiceId; + int get invoiceId => _$this._invoiceId; + set invoiceId(int invoiceId) => _$this._invoiceId = invoiceId; + + String _invoice_number; + String get invoice_number => _$this._invoice_number; + set invoice_number(String invoice_number) => + _$this._invoice_number = invoice_number; + + String _privateNotes; + String get privateNotes => _$this._privateNotes; + set privateNotes(String privateNotes) => _$this._privateNotes = privateNotes; + + double _exchangeRate; + double get exchangeRate => _$this._exchangeRate; + set exchangeRate(double exchangeRate) => _$this._exchangeRate = exchangeRate; + + int _exchangeCurrencyId; + int get exchangeCurrencyId => _$this._exchangeCurrencyId; + set exchangeCurrencyId(int exchangeCurrencyId) => + _$this._exchangeCurrencyId = exchangeCurrencyId; + + int _id; + int get id => _$this._id; + set id(int id) => _$this._id = id; + + int _updatedAt; + int get updatedAt => _$this._updatedAt; + set updatedAt(int updatedAt) => _$this._updatedAt = updatedAt; + + int _archivedAt; + int get archivedAt => _$this._archivedAt; + set archivedAt(int archivedAt) => _$this._archivedAt = archivedAt; + + bool _isDeleted; + bool get isDeleted => _$this._isDeleted; + set isDeleted(bool isDeleted) => _$this._isDeleted = isDeleted; + + PaymentEntityBuilder(); + + PaymentEntityBuilder get _$this { + if (_$v != null) { + _amount = _$v.amount; + _transactionReference = _$v.transactionReference; + _paymentDate = _$v.paymentDate; + _paymentTypeId = _$v.paymentTypeId; + _invoiceId = _$v.invoiceId; + _invoice_number = _$v.invoice_number; + _privateNotes = _$v.privateNotes; + _exchangeRate = _$v.exchangeRate; + _exchangeCurrencyId = _$v.exchangeCurrencyId; + _id = _$v.id; + _updatedAt = _$v.updatedAt; + _archivedAt = _$v.archivedAt; + _isDeleted = _$v.isDeleted; + _$v = null; + } + return this; + } + + @override + void replace(PaymentEntity other) { + if (other == null) throw new ArgumentError.notNull('other'); + _$v = other as _$PaymentEntity; + } + + @override + void update(void updates(PaymentEntityBuilder b)) { + if (updates != null) updates(this); + } + + @override + _$PaymentEntity build() { + final _$result = _$v ?? + new _$PaymentEntity._( + amount: amount, + transactionReference: transactionReference, + paymentDate: paymentDate, + paymentTypeId: paymentTypeId, + invoiceId: invoiceId, + invoice_number: invoice_number, + privateNotes: privateNotes, + exchangeRate: exchangeRate, + exchangeCurrencyId: exchangeCurrencyId, + id: id, + updatedAt: updatedAt, + archivedAt: archivedAt, + isDeleted: isDeleted); + replace(_$result); + return _$result; + } +} diff --git a/lib/data/models/project_model.dart b/lib/data/models/project_model.dart new file mode 100644 index 000000000..7a792a82a --- /dev/null +++ b/lib/data/models/project_model.dart @@ -0,0 +1,102 @@ +import 'package:built_collection/built_collection.dart'; +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:invoiceninja/data/models/entities.dart'; + +part 'project_model.g.dart'; + +abstract class ProjectListResponse implements Built { + + BuiltList get data; + + ProjectListResponse._(); + factory ProjectListResponse([updates(ProjectListResponseBuilder b)]) = _$ProjectListResponse; + static Serializer get serializer => _$projectListResponseSerializer; +} + +abstract class ProjectItemResponse implements Built { + + ProjectEntity get data; + + ProjectItemResponse._(); + factory ProjectItemResponse([updates(ProjectItemResponseBuilder b)]) = _$ProjectItemResponse; + static Serializer get serializer => _$projectItemResponseSerializer; +} + +class ProjectFields { + static const String name = 'name'; + static const String clientId = 'clientAt'; + static const String taskRate = 'taskRate'; + static const String dueDate = 'due_date'; + static const String privateNotes = 'privateNotes'; + static const String budgetedHours = 'budgetedHours'; + static const String customValue1 = 'customValue1'; + static const String customValue2 = 'customValue2'; + + static const String updatedAt = 'updatedAt'; + static const String archivedAt = 'archivedAt'; + static const String isDeleted = 'isDeleted'; +} + +abstract class ProjectEntity extends Object with BaseEntity implements Built { + + @nullable + String get name; + + @nullable + @BuiltValueField(wireName: 'client_id') + int get clientId; + + @nullable + @BuiltValueField(wireName: 'task_rate') + double get taskRate; + + @nullable + @BuiltValueField(wireName: 'due_date') + String get dueDate; + + @nullable + @BuiltValueField(wireName: 'private_notes') + String get privateNotes; + + @nullable + @BuiltValueField(wireName: 'budgeted_hours') + double get budgetedHours; + + @nullable + @BuiltValueField(wireName: 'custom_value1') + String get customValue1; + + @nullable + @BuiltValueField(wireName: 'custom_value2') + String get customValue2; + + int compareTo(ProjectEntity project, String sortField, bool sortAscending) { + int response = 0; + ProjectEntity projectA = sortAscending ? this : project; + ProjectEntity projectB = sortAscending ? project: this; + + switch (sortField) { + case ProjectFields.taskRate: + response = projectA.taskRate.compareTo(projectB.taskRate); + } + + if (response == 0) { + return projectA.name.compareTo(projectB.name); + } else { + return response; + } + } + + bool matchesSearch(String search) { + if (search == null || search.isEmpty) { + return true; + } + + return name.contains(search); + } + + ProjectEntity._(); + factory ProjectEntity([updates(ProjectEntityBuilder b)]) = _$ProjectEntity; + static Serializer get serializer => _$projectEntitySerializer; +} diff --git a/lib/data/models/project_model.g.dart b/lib/data/models/project_model.g.dart new file mode 100644 index 000000000..9de27b913 --- /dev/null +++ b/lib/data/models/project_model.g.dart @@ -0,0 +1,666 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'project_model.dart'; + +// ************************************************************************** +// Generator: BuiltValueGenerator +// ************************************************************************** + +// ignore_for_file: always_put_control_body_on_new_line +// ignore_for_file: annotate_overrides +// ignore_for_file: avoid_annotating_with_dynamic +// ignore_for_file: avoid_returning_this +// ignore_for_file: omit_local_variable_types +// ignore_for_file: prefer_expression_function_bodies +// ignore_for_file: sort_constructors_first + +Serializer _$projectListResponseSerializer = + new _$ProjectListResponseSerializer(); +Serializer _$projectItemResponseSerializer = + new _$ProjectItemResponseSerializer(); +Serializer _$projectEntitySerializer = + new _$ProjectEntitySerializer(); + +class _$ProjectListResponseSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + ProjectListResponse, + _$ProjectListResponse + ]; + @override + final String wireName = 'ProjectListResponse'; + + @override + Iterable serialize(Serializers serializers, ProjectListResponse object, + {FullType specifiedType: FullType.unspecified}) { + final result = [ + 'data', + serializers.serialize(object.data, + specifiedType: + const FullType(BuiltList, const [const FullType(ProjectEntity)])), + ]; + + return result; + } + + @override + ProjectListResponse deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType: FullType.unspecified}) { + final result = new ProjectListResponseBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'data': + result.data.replace(serializers.deserialize(value, + specifiedType: const FullType( + BuiltList, const [const FullType(ProjectEntity)])) + as BuiltList); + break; + } + } + + return result.build(); + } +} + +class _$ProjectItemResponseSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + ProjectItemResponse, + _$ProjectItemResponse + ]; + @override + final String wireName = 'ProjectItemResponse'; + + @override + Iterable serialize(Serializers serializers, ProjectItemResponse object, + {FullType specifiedType: FullType.unspecified}) { + final result = [ + 'data', + serializers.serialize(object.data, + specifiedType: const FullType(ProjectEntity)), + ]; + + return result; + } + + @override + ProjectItemResponse deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType: FullType.unspecified}) { + final result = new ProjectItemResponseBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'data': + result.data.replace(serializers.deserialize(value, + specifiedType: const FullType(ProjectEntity)) as ProjectEntity); + break; + } + } + + return result.build(); + } +} + +class _$ProjectEntitySerializer implements StructuredSerializer { + @override + final Iterable types = const [ProjectEntity, _$ProjectEntity]; + @override + final String wireName = 'ProjectEntity'; + + @override + Iterable serialize(Serializers serializers, ProjectEntity object, + {FullType specifiedType: FullType.unspecified}) { + final result = []; + if (object.name != null) { + result + ..add('name') + ..add(serializers.serialize(object.name, + specifiedType: const FullType(String))); + } + if (object.clientId != null) { + result + ..add('client_id') + ..add(serializers.serialize(object.clientId, + specifiedType: const FullType(int))); + } + if (object.taskRate != null) { + result + ..add('task_rate') + ..add(serializers.serialize(object.taskRate, + specifiedType: const FullType(double))); + } + if (object.dueDate != null) { + result + ..add('due_date') + ..add(serializers.serialize(object.dueDate, + specifiedType: const FullType(String))); + } + if (object.privateNotes != null) { + result + ..add('private_notes') + ..add(serializers.serialize(object.privateNotes, + specifiedType: const FullType(String))); + } + if (object.budgetedHours != null) { + result + ..add('budgeted_hours') + ..add(serializers.serialize(object.budgetedHours, + specifiedType: const FullType(double))); + } + if (object.customValue1 != null) { + result + ..add('custom_value1') + ..add(serializers.serialize(object.customValue1, + specifiedType: const FullType(String))); + } + if (object.customValue2 != null) { + result + ..add('custom_value2') + ..add(serializers.serialize(object.customValue2, + specifiedType: const FullType(String))); + } + if (object.id != null) { + result + ..add('id') + ..add(serializers.serialize(object.id, + specifiedType: const FullType(int))); + } + if (object.updatedAt != null) { + result + ..add('updated_at') + ..add(serializers.serialize(object.updatedAt, + specifiedType: const FullType(int))); + } + if (object.archivedAt != null) { + result + ..add('archived_at') + ..add(serializers.serialize(object.archivedAt, + specifiedType: const FullType(int))); + } + if (object.isDeleted != null) { + result + ..add('is_deleted') + ..add(serializers.serialize(object.isDeleted, + specifiedType: const FullType(bool))); + } + + return result; + } + + @override + ProjectEntity deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType: FullType.unspecified}) { + final result = new ProjectEntityBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'name': + result.name = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'client_id': + result.clientId = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'task_rate': + result.taskRate = serializers.deserialize(value, + specifiedType: const FullType(double)) as double; + break; + case 'due_date': + result.dueDate = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'private_notes': + result.privateNotes = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'budgeted_hours': + result.budgetedHours = serializers.deserialize(value, + specifiedType: const FullType(double)) as double; + break; + case 'custom_value1': + result.customValue1 = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'custom_value2': + result.customValue2 = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'updated_at': + result.updatedAt = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'archived_at': + result.archivedAt = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'is_deleted': + result.isDeleted = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + break; + } + } + + return result.build(); + } +} + +class _$ProjectListResponse extends ProjectListResponse { + @override + final BuiltList data; + + factory _$ProjectListResponse([void updates(ProjectListResponseBuilder b)]) => + (new ProjectListResponseBuilder()..update(updates)).build(); + + _$ProjectListResponse._({this.data}) : super._() { + if (data == null) + throw new BuiltValueNullFieldError('ProjectListResponse', 'data'); + } + + @override + ProjectListResponse rebuild(void updates(ProjectListResponseBuilder b)) => + (toBuilder()..update(updates)).build(); + + @override + ProjectListResponseBuilder toBuilder() => + new ProjectListResponseBuilder()..replace(this); + + @override + bool operator ==(dynamic other) { + if (identical(other, this)) return true; + if (other is! ProjectListResponse) return false; + return data == other.data; + } + + @override + int get hashCode { + return $jf($jc(0, data.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('ProjectListResponse') + ..add('data', data)) + .toString(); + } +} + +class ProjectListResponseBuilder + implements Builder { + _$ProjectListResponse _$v; + + ListBuilder _data; + ListBuilder get data => + _$this._data ??= new ListBuilder(); + set data(ListBuilder data) => _$this._data = data; + + ProjectListResponseBuilder(); + + ProjectListResponseBuilder get _$this { + if (_$v != null) { + _data = _$v.data?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(ProjectListResponse other) { + if (other == null) throw new ArgumentError.notNull('other'); + _$v = other as _$ProjectListResponse; + } + + @override + void update(void updates(ProjectListResponseBuilder b)) { + if (updates != null) updates(this); + } + + @override + _$ProjectListResponse build() { + _$ProjectListResponse _$result; + try { + _$result = _$v ?? new _$ProjectListResponse._(data: data.build()); + } catch (_) { + String _$failedField; + try { + _$failedField = 'data'; + data.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + 'ProjectListResponse', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$ProjectItemResponse extends ProjectItemResponse { + @override + final ProjectEntity data; + + factory _$ProjectItemResponse([void updates(ProjectItemResponseBuilder b)]) => + (new ProjectItemResponseBuilder()..update(updates)).build(); + + _$ProjectItemResponse._({this.data}) : super._() { + if (data == null) + throw new BuiltValueNullFieldError('ProjectItemResponse', 'data'); + } + + @override + ProjectItemResponse rebuild(void updates(ProjectItemResponseBuilder b)) => + (toBuilder()..update(updates)).build(); + + @override + ProjectItemResponseBuilder toBuilder() => + new ProjectItemResponseBuilder()..replace(this); + + @override + bool operator ==(dynamic other) { + if (identical(other, this)) return true; + if (other is! ProjectItemResponse) return false; + return data == other.data; + } + + @override + int get hashCode { + return $jf($jc(0, data.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('ProjectItemResponse') + ..add('data', data)) + .toString(); + } +} + +class ProjectItemResponseBuilder + implements Builder { + _$ProjectItemResponse _$v; + + ProjectEntityBuilder _data; + ProjectEntityBuilder get data => _$this._data ??= new ProjectEntityBuilder(); + set data(ProjectEntityBuilder data) => _$this._data = data; + + ProjectItemResponseBuilder(); + + ProjectItemResponseBuilder get _$this { + if (_$v != null) { + _data = _$v.data?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(ProjectItemResponse other) { + if (other == null) throw new ArgumentError.notNull('other'); + _$v = other as _$ProjectItemResponse; + } + + @override + void update(void updates(ProjectItemResponseBuilder b)) { + if (updates != null) updates(this); + } + + @override + _$ProjectItemResponse build() { + _$ProjectItemResponse _$result; + try { + _$result = _$v ?? new _$ProjectItemResponse._(data: data.build()); + } catch (_) { + String _$failedField; + try { + _$failedField = 'data'; + data.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + 'ProjectItemResponse', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$ProjectEntity extends ProjectEntity { + @override + final String name; + @override + final int clientId; + @override + final double taskRate; + @override + final String dueDate; + @override + final String privateNotes; + @override + final double budgetedHours; + @override + final String customValue1; + @override + final String customValue2; + @override + final int id; + @override + final int updatedAt; + @override + final int archivedAt; + @override + final bool isDeleted; + + factory _$ProjectEntity([void updates(ProjectEntityBuilder b)]) => + (new ProjectEntityBuilder()..update(updates)).build(); + + _$ProjectEntity._( + {this.name, + this.clientId, + this.taskRate, + this.dueDate, + this.privateNotes, + this.budgetedHours, + this.customValue1, + this.customValue2, + this.id, + this.updatedAt, + this.archivedAt, + this.isDeleted}) + : super._(); + + @override + ProjectEntity rebuild(void updates(ProjectEntityBuilder b)) => + (toBuilder()..update(updates)).build(); + + @override + ProjectEntityBuilder toBuilder() => new ProjectEntityBuilder()..replace(this); + + @override + bool operator ==(dynamic other) { + if (identical(other, this)) return true; + if (other is! ProjectEntity) return false; + return name == other.name && + clientId == other.clientId && + taskRate == other.taskRate && + dueDate == other.dueDate && + privateNotes == other.privateNotes && + budgetedHours == other.budgetedHours && + customValue1 == other.customValue1 && + customValue2 == other.customValue2 && + id == other.id && + updatedAt == other.updatedAt && + archivedAt == other.archivedAt && + isDeleted == other.isDeleted; + } + + @override + int get hashCode { + return $jf($jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc($jc(0, name.hashCode), + clientId.hashCode), + taskRate.hashCode), + dueDate.hashCode), + privateNotes.hashCode), + budgetedHours.hashCode), + customValue1.hashCode), + customValue2.hashCode), + id.hashCode), + updatedAt.hashCode), + archivedAt.hashCode), + isDeleted.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('ProjectEntity') + ..add('name', name) + ..add('clientId', clientId) + ..add('taskRate', taskRate) + ..add('dueDate', dueDate) + ..add('privateNotes', privateNotes) + ..add('budgetedHours', budgetedHours) + ..add('customValue1', customValue1) + ..add('customValue2', customValue2) + ..add('id', id) + ..add('updatedAt', updatedAt) + ..add('archivedAt', archivedAt) + ..add('isDeleted', isDeleted)) + .toString(); + } +} + +class ProjectEntityBuilder + implements Builder { + _$ProjectEntity _$v; + + String _name; + String get name => _$this._name; + set name(String name) => _$this._name = name; + + int _clientId; + int get clientId => _$this._clientId; + set clientId(int clientId) => _$this._clientId = clientId; + + double _taskRate; + double get taskRate => _$this._taskRate; + set taskRate(double taskRate) => _$this._taskRate = taskRate; + + String _dueDate; + String get dueDate => _$this._dueDate; + set dueDate(String dueDate) => _$this._dueDate = dueDate; + + String _privateNotes; + String get privateNotes => _$this._privateNotes; + set privateNotes(String privateNotes) => _$this._privateNotes = privateNotes; + + double _budgetedHours; + double get budgetedHours => _$this._budgetedHours; + set budgetedHours(double budgetedHours) => + _$this._budgetedHours = budgetedHours; + + String _customValue1; + String get customValue1 => _$this._customValue1; + set customValue1(String customValue1) => _$this._customValue1 = customValue1; + + String _customValue2; + String get customValue2 => _$this._customValue2; + set customValue2(String customValue2) => _$this._customValue2 = customValue2; + + int _id; + int get id => _$this._id; + set id(int id) => _$this._id = id; + + int _updatedAt; + int get updatedAt => _$this._updatedAt; + set updatedAt(int updatedAt) => _$this._updatedAt = updatedAt; + + int _archivedAt; + int get archivedAt => _$this._archivedAt; + set archivedAt(int archivedAt) => _$this._archivedAt = archivedAt; + + bool _isDeleted; + bool get isDeleted => _$this._isDeleted; + set isDeleted(bool isDeleted) => _$this._isDeleted = isDeleted; + + ProjectEntityBuilder(); + + ProjectEntityBuilder get _$this { + if (_$v != null) { + _name = _$v.name; + _clientId = _$v.clientId; + _taskRate = _$v.taskRate; + _dueDate = _$v.dueDate; + _privateNotes = _$v.privateNotes; + _budgetedHours = _$v.budgetedHours; + _customValue1 = _$v.customValue1; + _customValue2 = _$v.customValue2; + _id = _$v.id; + _updatedAt = _$v.updatedAt; + _archivedAt = _$v.archivedAt; + _isDeleted = _$v.isDeleted; + _$v = null; + } + return this; + } + + @override + void replace(ProjectEntity other) { + if (other == null) throw new ArgumentError.notNull('other'); + _$v = other as _$ProjectEntity; + } + + @override + void update(void updates(ProjectEntityBuilder b)) { + if (updates != null) updates(this); + } + + @override + _$ProjectEntity build() { + final _$result = _$v ?? + new _$ProjectEntity._( + name: name, + clientId: clientId, + taskRate: taskRate, + dueDate: dueDate, + privateNotes: privateNotes, + budgetedHours: budgetedHours, + customValue1: customValue1, + customValue2: customValue2, + id: id, + updatedAt: updatedAt, + archivedAt: archivedAt, + isDeleted: isDeleted); + replace(_$result); + return _$result; + } +} diff --git a/lib/data/models/serializers.dart b/lib/data/models/serializers.dart index 5e6103d8d..153691d2e 100644 --- a/lib/data/models/serializers.dart +++ b/lib/data/models/serializers.dart @@ -24,6 +24,20 @@ part 'serializers.g.dart'; ProductItemResponse, ClientListResponse, ClientItemResponse, + CreditListResponse, + CreditItemResponse, + ProjectListResponse, + ProjectItemResponse, + PaymentListResponse, + PaymentItemResponse, + InvoiceListResponse, + InvoiceItemResponse, + ExpenseListResponse, + ExpenseItemResponse, + TaskListResponse, + TaskItemResponse, + VendorListResponse, + VendorItemResponse, ]) final Serializers serializers = (_$serializers.toBuilder()..addPlugin(StandardJsonPlugin())).build(); \ No newline at end of file diff --git a/lib/data/models/serializers.g.dart b/lib/data/models/serializers.g.dart index f3fae5a01..d0786e22b 100644 --- a/lib/data/models/serializers.g.dart +++ b/lib/data/models/serializers.g.dart @@ -24,19 +24,44 @@ Serializers _$serializers = (new Serializers().toBuilder() ..add(CompanyEntity.serializer) ..add(CompanyState.serializer) ..add(ContactEntity.serializer) + ..add(CreditEntity.serializer) + ..add(CreditItemResponse.serializer) + ..add(CreditListResponse.serializer) ..add(DashboardEntity.serializer) ..add(DashboardResponse.serializer) ..add(DashboardState.serializer) ..add(EntityState.serializer) ..add(EntityUIState.serializer) ..add(ErrorMessage.serializer) + ..add(ExpenseCategoryEntity.serializer) + ..add(ExpenseEntity.serializer) + ..add(ExpenseItemResponse.serializer) + ..add(ExpenseListResponse.serializer) + ..add(InvitationEntity.serializer) + ..add(InvoiceEntity.serializer) + ..add(InvoiceItemEntity.serializer) + ..add(InvoiceItemResponse.serializer) + ..add(InvoiceListResponse.serializer) ..add(ListUIState.serializer) ..add(LoginResponse.serializer) + ..add(PaymentEntity.serializer) + ..add(PaymentItemResponse.serializer) + ..add(PaymentListResponse.serializer) ..add(ProductEntity.serializer) ..add(ProductItemResponse.serializer) ..add(ProductListResponse.serializer) ..add(ProductState.serializer) + ..add(ProjectEntity.serializer) + ..add(ProjectItemResponse.serializer) + ..add(ProjectListResponse.serializer) + ..add(TaskEntity.serializer) + ..add(TaskItemResponse.serializer) + ..add(TaskListResponse.serializer) ..add(UIState.serializer) + ..add(VendorContactEntity.serializer) + ..add(VendorEntity.serializer) + ..add(VendorItemResponse.serializer) + ..add(VendorListResponse.serializer) ..addBuilderFactory( const FullType(BuiltList, const [const FullType(ClientEntity)]), () => new ListBuilder()) @@ -46,15 +71,50 @@ Serializers _$serializers = (new Serializers().toBuilder() ..addBuilderFactory( const FullType(BuiltList, const [const FullType(ContactEntity)]), () => new ListBuilder()) + ..addBuilderFactory( + const FullType(BuiltList, const [const FullType(CreditEntity)]), + () => new ListBuilder()) ..addBuilderFactory( const FullType(BuiltList, const [const FullType(EntityState)]), () => new ListBuilder()) ..addBuilderFactory( const FullType(BuiltList, const [const FullType(int)]), () => new ListBuilder()) + ..addBuilderFactory( + const FullType( + BuiltList, const [const FullType(ExpenseCategoryEntity)]), + () => new ListBuilder()) + ..addBuilderFactory( + const FullType(BuiltList, const [const FullType(ExpenseEntity)]), + () => new ListBuilder()) + ..addBuilderFactory( + const FullType(BuiltList, const [const FullType(InvoiceEntity)]), + () => new ListBuilder()) + ..addBuilderFactory( + const FullType(BuiltList, const [const FullType(InvoiceItemEntity)]), + () => new ListBuilder()) + ..addBuilderFactory( + const FullType(BuiltList, const [const FullType(InvitationEntity)]), + () => new ListBuilder()) + ..addBuilderFactory( + const FullType(BuiltList, const [const FullType(PaymentEntity)]), + () => new ListBuilder()) ..addBuilderFactory( const FullType(BuiltList, const [const FullType(ProductEntity)]), () => new ListBuilder()) + ..addBuilderFactory( + const FullType(BuiltList, const [const FullType(ProjectEntity)]), + () => new ListBuilder()) + ..addBuilderFactory( + const FullType(BuiltList, const [const FullType(TaskEntity)]), + () => new ListBuilder()) + ..addBuilderFactory( + const FullType( + BuiltList, const [const FullType(VendorContactEntity)]), + () => new ListBuilder()) + ..addBuilderFactory( + const FullType(BuiltList, const [const FullType(VendorEntity)]), + () => new ListBuilder()) ..addBuilderFactory( const FullType(BuiltMap, const [const FullType(int), const FullType(ClientEntity)]), diff --git a/lib/data/models/task_model.dart b/lib/data/models/task_model.dart new file mode 100644 index 000000000..947d7a9d4 --- /dev/null +++ b/lib/data/models/task_model.dart @@ -0,0 +1,106 @@ +import 'package:built_collection/built_collection.dart'; +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:invoiceninja/data/models/entities.dart'; + +part 'task_model.g.dart'; + +abstract class TaskListResponse implements Built { + + BuiltList get data; + + TaskListResponse._(); + factory TaskListResponse([updates(TaskListResponseBuilder b)]) = _$TaskListResponse; + static Serializer get serializer => _$taskListResponseSerializer; +} + +abstract class TaskItemResponse implements Built { + + TaskEntity get data; + + TaskItemResponse._(); + factory TaskItemResponse([updates(TaskItemResponseBuilder b)]) = _$TaskItemResponse; + static Serializer get serializer => _$taskItemResponseSerializer; +} + +class TaskFields { + static const String description = 'description'; + static const String duration = 'duration'; + static const String invoiceId = 'invoiceId'; + static const String clientId = 'clientId'; + static const String projectId = 'projectId'; + static const String timeLog = 'timeLog'; + static const String isRunning = 'isRunning'; + static const String customValue1 = 'customValue1'; + static const String customValue2 = 'customValue2'; + + static const String updatedAt = 'updatedAt'; + static const String archivedAt = 'archivedAt'; + static const String isDeleted = 'isDeleted'; +} + +abstract class TaskEntity extends Object with BaseEntity implements Built { + + @nullable + String get description; + + @nullable + String get duration; + + @nullable + @BuiltValueField(wireName: 'invoice_id') + int get invoiceId; + + @nullable + @BuiltValueField(wireName: 'client_id') + int get clientId; + + @nullable + @BuiltValueField(wireName: 'project_id') + int get projectId; + + @nullable + @BuiltValueField(wireName: 'time_log') + String get timeLog; + + @nullable + @BuiltValueField(wireName: 'is_running') + bool get isRunning; + + @nullable + @BuiltValueField(wireName: 'custom_value1') + String get customValue1; + + @nullable + @BuiltValueField(wireName: 'custom_value2') + String get customValue2; + + int compareTo(TaskEntity task, String sortField, bool sortAscending) { + int response = 0; + TaskEntity taskA = sortAscending ? this : task; + TaskEntity taskB = sortAscending ? task: this; + + switch (sortField) { + case TaskFields.duration: + response = taskA.clientId.compareTo(taskB.clientId); + } + + if (response == 0) { + return taskA.projectId.compareTo(taskB.projectId); + } else { + return response; + } + } + + bool matchesSearch(String search) { + if (search == null || search.isEmpty) { + return true; + } + + return description.contains(search); + } + + TaskEntity._(); + factory TaskEntity([updates(TaskEntityBuilder b)]) = _$TaskEntity; + static Serializer get serializer => _$taskEntitySerializer; +} diff --git a/lib/data/models/task_model.g.dart b/lib/data/models/task_model.g.dart new file mode 100644 index 000000000..a0ac51837 --- /dev/null +++ b/lib/data/models/task_model.g.dart @@ -0,0 +1,679 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'task_model.dart'; + +// ************************************************************************** +// Generator: BuiltValueGenerator +// ************************************************************************** + +// ignore_for_file: always_put_control_body_on_new_line +// ignore_for_file: annotate_overrides +// ignore_for_file: avoid_annotating_with_dynamic +// ignore_for_file: avoid_returning_this +// ignore_for_file: omit_local_variable_types +// ignore_for_file: prefer_expression_function_bodies +// ignore_for_file: sort_constructors_first + +Serializer _$taskListResponseSerializer = + new _$TaskListResponseSerializer(); +Serializer _$taskItemResponseSerializer = + new _$TaskItemResponseSerializer(); +Serializer _$taskEntitySerializer = new _$TaskEntitySerializer(); + +class _$TaskListResponseSerializer + implements StructuredSerializer { + @override + final Iterable types = const [TaskListResponse, _$TaskListResponse]; + @override + final String wireName = 'TaskListResponse'; + + @override + Iterable serialize(Serializers serializers, TaskListResponse object, + {FullType specifiedType: FullType.unspecified}) { + final result = [ + 'data', + serializers.serialize(object.data, + specifiedType: + const FullType(BuiltList, const [const FullType(TaskEntity)])), + ]; + + return result; + } + + @override + TaskListResponse deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType: FullType.unspecified}) { + final result = new TaskListResponseBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'data': + result.data.replace(serializers.deserialize(value, + specifiedType: const FullType( + BuiltList, const [const FullType(TaskEntity)])) as BuiltList); + break; + } + } + + return result.build(); + } +} + +class _$TaskItemResponseSerializer + implements StructuredSerializer { + @override + final Iterable types = const [TaskItemResponse, _$TaskItemResponse]; + @override + final String wireName = 'TaskItemResponse'; + + @override + Iterable serialize(Serializers serializers, TaskItemResponse object, + {FullType specifiedType: FullType.unspecified}) { + final result = [ + 'data', + serializers.serialize(object.data, + specifiedType: const FullType(TaskEntity)), + ]; + + return result; + } + + @override + TaskItemResponse deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType: FullType.unspecified}) { + final result = new TaskItemResponseBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'data': + result.data.replace(serializers.deserialize(value, + specifiedType: const FullType(TaskEntity)) as TaskEntity); + break; + } + } + + return result.build(); + } +} + +class _$TaskEntitySerializer implements StructuredSerializer { + @override + final Iterable types = const [TaskEntity, _$TaskEntity]; + @override + final String wireName = 'TaskEntity'; + + @override + Iterable serialize(Serializers serializers, TaskEntity object, + {FullType specifiedType: FullType.unspecified}) { + final result = []; + if (object.description != null) { + result + ..add('description') + ..add(serializers.serialize(object.description, + specifiedType: const FullType(String))); + } + if (object.duration != null) { + result + ..add('duration') + ..add(serializers.serialize(object.duration, + specifiedType: const FullType(String))); + } + if (object.invoiceId != null) { + result + ..add('invoice_id') + ..add(serializers.serialize(object.invoiceId, + specifiedType: const FullType(int))); + } + if (object.clientId != null) { + result + ..add('client_id') + ..add(serializers.serialize(object.clientId, + specifiedType: const FullType(int))); + } + if (object.projectId != null) { + result + ..add('project_id') + ..add(serializers.serialize(object.projectId, + specifiedType: const FullType(int))); + } + if (object.timeLog != null) { + result + ..add('time_log') + ..add(serializers.serialize(object.timeLog, + specifiedType: const FullType(String))); + } + if (object.isRunning != null) { + result + ..add('is_running') + ..add(serializers.serialize(object.isRunning, + specifiedType: const FullType(bool))); + } + if (object.customValue1 != null) { + result + ..add('custom_value1') + ..add(serializers.serialize(object.customValue1, + specifiedType: const FullType(String))); + } + if (object.customValue2 != null) { + result + ..add('custom_value2') + ..add(serializers.serialize(object.customValue2, + specifiedType: const FullType(String))); + } + if (object.id != null) { + result + ..add('id') + ..add(serializers.serialize(object.id, + specifiedType: const FullType(int))); + } + if (object.updatedAt != null) { + result + ..add('updated_at') + ..add(serializers.serialize(object.updatedAt, + specifiedType: const FullType(int))); + } + if (object.archivedAt != null) { + result + ..add('archived_at') + ..add(serializers.serialize(object.archivedAt, + specifiedType: const FullType(int))); + } + if (object.isDeleted != null) { + result + ..add('is_deleted') + ..add(serializers.serialize(object.isDeleted, + specifiedType: const FullType(bool))); + } + + return result; + } + + @override + TaskEntity deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType: FullType.unspecified}) { + final result = new TaskEntityBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'description': + result.description = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'duration': + result.duration = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'invoice_id': + result.invoiceId = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'client_id': + result.clientId = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'project_id': + result.projectId = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'time_log': + result.timeLog = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'is_running': + result.isRunning = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + break; + case 'custom_value1': + result.customValue1 = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'custom_value2': + result.customValue2 = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'updated_at': + result.updatedAt = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'archived_at': + result.archivedAt = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'is_deleted': + result.isDeleted = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + break; + } + } + + return result.build(); + } +} + +class _$TaskListResponse extends TaskListResponse { + @override + final BuiltList data; + + factory _$TaskListResponse([void updates(TaskListResponseBuilder b)]) => + (new TaskListResponseBuilder()..update(updates)).build(); + + _$TaskListResponse._({this.data}) : super._() { + if (data == null) + throw new BuiltValueNullFieldError('TaskListResponse', 'data'); + } + + @override + TaskListResponse rebuild(void updates(TaskListResponseBuilder b)) => + (toBuilder()..update(updates)).build(); + + @override + TaskListResponseBuilder toBuilder() => + new TaskListResponseBuilder()..replace(this); + + @override + bool operator ==(dynamic other) { + if (identical(other, this)) return true; + if (other is! TaskListResponse) return false; + return data == other.data; + } + + @override + int get hashCode { + return $jf($jc(0, data.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('TaskListResponse')..add('data', data)) + .toString(); + } +} + +class TaskListResponseBuilder + implements Builder { + _$TaskListResponse _$v; + + ListBuilder _data; + ListBuilder get data => + _$this._data ??= new ListBuilder(); + set data(ListBuilder data) => _$this._data = data; + + TaskListResponseBuilder(); + + TaskListResponseBuilder get _$this { + if (_$v != null) { + _data = _$v.data?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(TaskListResponse other) { + if (other == null) throw new ArgumentError.notNull('other'); + _$v = other as _$TaskListResponse; + } + + @override + void update(void updates(TaskListResponseBuilder b)) { + if (updates != null) updates(this); + } + + @override + _$TaskListResponse build() { + _$TaskListResponse _$result; + try { + _$result = _$v ?? new _$TaskListResponse._(data: data.build()); + } catch (_) { + String _$failedField; + try { + _$failedField = 'data'; + data.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + 'TaskListResponse', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$TaskItemResponse extends TaskItemResponse { + @override + final TaskEntity data; + + factory _$TaskItemResponse([void updates(TaskItemResponseBuilder b)]) => + (new TaskItemResponseBuilder()..update(updates)).build(); + + _$TaskItemResponse._({this.data}) : super._() { + if (data == null) + throw new BuiltValueNullFieldError('TaskItemResponse', 'data'); + } + + @override + TaskItemResponse rebuild(void updates(TaskItemResponseBuilder b)) => + (toBuilder()..update(updates)).build(); + + @override + TaskItemResponseBuilder toBuilder() => + new TaskItemResponseBuilder()..replace(this); + + @override + bool operator ==(dynamic other) { + if (identical(other, this)) return true; + if (other is! TaskItemResponse) return false; + return data == other.data; + } + + @override + int get hashCode { + return $jf($jc(0, data.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('TaskItemResponse')..add('data', data)) + .toString(); + } +} + +class TaskItemResponseBuilder + implements Builder { + _$TaskItemResponse _$v; + + TaskEntityBuilder _data; + TaskEntityBuilder get data => _$this._data ??= new TaskEntityBuilder(); + set data(TaskEntityBuilder data) => _$this._data = data; + + TaskItemResponseBuilder(); + + TaskItemResponseBuilder get _$this { + if (_$v != null) { + _data = _$v.data?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(TaskItemResponse other) { + if (other == null) throw new ArgumentError.notNull('other'); + _$v = other as _$TaskItemResponse; + } + + @override + void update(void updates(TaskItemResponseBuilder b)) { + if (updates != null) updates(this); + } + + @override + _$TaskItemResponse build() { + _$TaskItemResponse _$result; + try { + _$result = _$v ?? new _$TaskItemResponse._(data: data.build()); + } catch (_) { + String _$failedField; + try { + _$failedField = 'data'; + data.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + 'TaskItemResponse', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$TaskEntity extends TaskEntity { + @override + final String description; + @override + final String duration; + @override + final int invoiceId; + @override + final int clientId; + @override + final int projectId; + @override + final String timeLog; + @override + final bool isRunning; + @override + final String customValue1; + @override + final String customValue2; + @override + final int id; + @override + final int updatedAt; + @override + final int archivedAt; + @override + final bool isDeleted; + + factory _$TaskEntity([void updates(TaskEntityBuilder b)]) => + (new TaskEntityBuilder()..update(updates)).build(); + + _$TaskEntity._( + {this.description, + this.duration, + this.invoiceId, + this.clientId, + this.projectId, + this.timeLog, + this.isRunning, + this.customValue1, + this.customValue2, + this.id, + this.updatedAt, + this.archivedAt, + this.isDeleted}) + : super._(); + + @override + TaskEntity rebuild(void updates(TaskEntityBuilder b)) => + (toBuilder()..update(updates)).build(); + + @override + TaskEntityBuilder toBuilder() => new TaskEntityBuilder()..replace(this); + + @override + bool operator ==(dynamic other) { + if (identical(other, this)) return true; + if (other is! TaskEntity) return false; + return description == other.description && + duration == other.duration && + invoiceId == other.invoiceId && + clientId == other.clientId && + projectId == other.projectId && + timeLog == other.timeLog && + isRunning == other.isRunning && + customValue1 == other.customValue1 && + customValue2 == other.customValue2 && + id == other.id && + updatedAt == other.updatedAt && + archivedAt == other.archivedAt && + isDeleted == other.isDeleted; + } + + @override + int get hashCode { + return $jf($jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc(0, + description.hashCode), + duration.hashCode), + invoiceId.hashCode), + clientId.hashCode), + projectId.hashCode), + timeLog.hashCode), + isRunning.hashCode), + customValue1.hashCode), + customValue2.hashCode), + id.hashCode), + updatedAt.hashCode), + archivedAt.hashCode), + isDeleted.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('TaskEntity') + ..add('description', description) + ..add('duration', duration) + ..add('invoiceId', invoiceId) + ..add('clientId', clientId) + ..add('projectId', projectId) + ..add('timeLog', timeLog) + ..add('isRunning', isRunning) + ..add('customValue1', customValue1) + ..add('customValue2', customValue2) + ..add('id', id) + ..add('updatedAt', updatedAt) + ..add('archivedAt', archivedAt) + ..add('isDeleted', isDeleted)) + .toString(); + } +} + +class TaskEntityBuilder implements Builder { + _$TaskEntity _$v; + + String _description; + String get description => _$this._description; + set description(String description) => _$this._description = description; + + String _duration; + String get duration => _$this._duration; + set duration(String duration) => _$this._duration = duration; + + int _invoiceId; + int get invoiceId => _$this._invoiceId; + set invoiceId(int invoiceId) => _$this._invoiceId = invoiceId; + + int _clientId; + int get clientId => _$this._clientId; + set clientId(int clientId) => _$this._clientId = clientId; + + int _projectId; + int get projectId => _$this._projectId; + set projectId(int projectId) => _$this._projectId = projectId; + + String _timeLog; + String get timeLog => _$this._timeLog; + set timeLog(String timeLog) => _$this._timeLog = timeLog; + + bool _isRunning; + bool get isRunning => _$this._isRunning; + set isRunning(bool isRunning) => _$this._isRunning = isRunning; + + String _customValue1; + String get customValue1 => _$this._customValue1; + set customValue1(String customValue1) => _$this._customValue1 = customValue1; + + String _customValue2; + String get customValue2 => _$this._customValue2; + set customValue2(String customValue2) => _$this._customValue2 = customValue2; + + int _id; + int get id => _$this._id; + set id(int id) => _$this._id = id; + + int _updatedAt; + int get updatedAt => _$this._updatedAt; + set updatedAt(int updatedAt) => _$this._updatedAt = updatedAt; + + int _archivedAt; + int get archivedAt => _$this._archivedAt; + set archivedAt(int archivedAt) => _$this._archivedAt = archivedAt; + + bool _isDeleted; + bool get isDeleted => _$this._isDeleted; + set isDeleted(bool isDeleted) => _$this._isDeleted = isDeleted; + + TaskEntityBuilder(); + + TaskEntityBuilder get _$this { + if (_$v != null) { + _description = _$v.description; + _duration = _$v.duration; + _invoiceId = _$v.invoiceId; + _clientId = _$v.clientId; + _projectId = _$v.projectId; + _timeLog = _$v.timeLog; + _isRunning = _$v.isRunning; + _customValue1 = _$v.customValue1; + _customValue2 = _$v.customValue2; + _id = _$v.id; + _updatedAt = _$v.updatedAt; + _archivedAt = _$v.archivedAt; + _isDeleted = _$v.isDeleted; + _$v = null; + } + return this; + } + + @override + void replace(TaskEntity other) { + if (other == null) throw new ArgumentError.notNull('other'); + _$v = other as _$TaskEntity; + } + + @override + void update(void updates(TaskEntityBuilder b)) { + if (updates != null) updates(this); + } + + @override + _$TaskEntity build() { + final _$result = _$v ?? + new _$TaskEntity._( + description: description, + duration: duration, + invoiceId: invoiceId, + clientId: clientId, + projectId: projectId, + timeLog: timeLog, + isRunning: isRunning, + customValue1: customValue1, + customValue2: customValue2, + id: id, + updatedAt: updatedAt, + archivedAt: archivedAt, + isDeleted: isDeleted); + replace(_$result); + return _$result; + } +} diff --git a/lib/data/models/vendor_model.dart b/lib/data/models/vendor_model.dart new file mode 100644 index 000000000..c3765688c --- /dev/null +++ b/lib/data/models/vendor_model.dart @@ -0,0 +1,173 @@ +import 'package:built_collection/built_collection.dart'; +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:invoiceninja/data/models/entities.dart'; + +part 'vendor_model.g.dart'; + +abstract class VendorListResponse implements Built { + + BuiltList get data; + + VendorListResponse._(); + factory VendorListResponse([updates(VendorListResponseBuilder b)]) = _$VendorListResponse; + static Serializer get serializer => _$vendorListResponseSerializer; +} + +abstract class VendorItemResponse implements Built { + + VendorEntity get data; + + VendorItemResponse._(); + factory VendorItemResponse([updates(VendorItemResponseBuilder b)]) = _$VendorItemResponse; + static Serializer get serializer => _$vendorItemResponseSerializer; +} + + +class VendorFields { + static const String name = 'name'; + static const String balance = 'balance'; + static const String paidToDate = 'paidToDate'; + static const String address1 = 'address1'; + static const String address2 = 'address2'; + static const String city = 'city'; + static const String state = 'state'; + static const String postalCode = 'postalCode'; + static const String countryId = 'countryId'; + static const String workPhone = 'workPhone'; + static const String privateNotes = 'privateNotes'; + static const String lastLogin = 'lastLogin'; + static const String website = 'website'; + static const String vatNumber = 'vatNumber'; + static const String idNumber = 'idNumber'; + static const String currencyId = 'currencyId'; + static const String customValue1 = 'customValue1'; + static const String customValue2 = 'customValue2'; + + static const String updatedAt = 'updatedAt'; + static const String archivedAt = 'archivedAt'; + static const String isDeleted = 'isDeleted'; +} + +abstract class VendorEntity extends Object with BaseEntity implements Built { + + @nullable + String get name; + + @nullable + double get balance; + + @nullable + @BuiltValueField(wireName: 'paid_to_date') + double get paidToDate; + + @nullable + String get address1; + + @nullable + String get address2; + + @nullable + String get city; + + @nullable + String get state; + + @nullable + @BuiltValueField(wireName: 'postal_code') + String get postalCode; + + @nullable + @BuiltValueField(wireName: 'country_id') + int get countryId; + + @nullable + @BuiltValueField(wireName: 'work_phone') + String get workPhone; + + @nullable + @BuiltValueField(wireName: 'private_notes') + String get privateNotes; + + @nullable + @BuiltValueField(wireName: 'last_login') + String get lastLogin; + + @nullable + String get website; + + @nullable + @BuiltValueField(wireName: 'vat_number') + String get vatNumber; + + @nullable + @BuiltValueField(wireName: 'id_number') + String get idNumber; + + @nullable + @BuiltValueField(wireName: 'currency_id') + int get currencyId; + + @nullable + @BuiltValueField(wireName: 'custom_value1') + String get customValue1; + + @nullable + @BuiltValueField(wireName: 'custom_value2') + String get customValue2; + + @nullable + @BuiltValueField(wireName: 'vendor_contacts') + BuiltList get vendorContacts; + + + int compareTo(VendorEntity vendor, String sortField, bool sortAscending) { + int response = 0; + VendorEntity vendorA = sortAscending ? this : vendor; + VendorEntity vendorB = sortAscending ? vendor: this; + + switch (sortField) { + case VendorFields.name: + response = vendorA.name.compareTo(vendorB.name); + } + + return response; + } + + bool matchesSearch(String search) { + if (search == null || search.isEmpty) { + return true; + } + + return name.contains(search); + } + + VendorEntity._(); + factory VendorEntity([updates(VendorEntityBuilder b)]) = _$VendorEntity; + static Serializer get serializer => _$vendorEntitySerializer; +} + +abstract class VendorContactEntity extends Object with BaseEntity implements Built { + + @nullable + @BuiltValueField(wireName: 'first_name') + String get firstName; + + @nullable + @BuiltValueField(wireName: 'last_name') + String get lastName; + + @nullable + String get email; + + @nullable + @BuiltValueField(wireName: 'is_primary') + bool get isPrimary; + + @nullable + String get phone; + + VendorContactEntity._(); + factory VendorContactEntity([updates(VendorContactEntityBuilder b)]) = _$VendorContactEntity; + static Serializer get serializer => _$vendorContactEntitySerializer; +} \ No newline at end of file diff --git a/lib/data/models/vendor_model.g.dart b/lib/data/models/vendor_model.g.dart new file mode 100644 index 000000000..9f014571c --- /dev/null +++ b/lib/data/models/vendor_model.g.dart @@ -0,0 +1,1233 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'vendor_model.dart'; + +// ************************************************************************** +// Generator: BuiltValueGenerator +// ************************************************************************** + +// ignore_for_file: always_put_control_body_on_new_line +// ignore_for_file: annotate_overrides +// ignore_for_file: avoid_annotating_with_dynamic +// ignore_for_file: avoid_returning_this +// ignore_for_file: omit_local_variable_types +// ignore_for_file: prefer_expression_function_bodies +// ignore_for_file: sort_constructors_first + +Serializer _$vendorListResponseSerializer = + new _$VendorListResponseSerializer(); +Serializer _$vendorItemResponseSerializer = + new _$VendorItemResponseSerializer(); +Serializer _$vendorEntitySerializer = + new _$VendorEntitySerializer(); +Serializer _$vendorContactEntitySerializer = + new _$VendorContactEntitySerializer(); + +class _$VendorListResponseSerializer + implements StructuredSerializer { + @override + final Iterable types = const [VendorListResponse, _$VendorListResponse]; + @override + final String wireName = 'VendorListResponse'; + + @override + Iterable serialize(Serializers serializers, VendorListResponse object, + {FullType specifiedType: FullType.unspecified}) { + final result = [ + 'data', + serializers.serialize(object.data, + specifiedType: + const FullType(BuiltList, const [const FullType(VendorEntity)])), + ]; + + return result; + } + + @override + VendorListResponse deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType: FullType.unspecified}) { + final result = new VendorListResponseBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'data': + result.data.replace(serializers.deserialize(value, + specifiedType: const FullType( + BuiltList, const [const FullType(VendorEntity)])) + as BuiltList); + break; + } + } + + return result.build(); + } +} + +class _$VendorItemResponseSerializer + implements StructuredSerializer { + @override + final Iterable types = const [VendorItemResponse, _$VendorItemResponse]; + @override + final String wireName = 'VendorItemResponse'; + + @override + Iterable serialize(Serializers serializers, VendorItemResponse object, + {FullType specifiedType: FullType.unspecified}) { + final result = [ + 'data', + serializers.serialize(object.data, + specifiedType: const FullType(VendorEntity)), + ]; + + return result; + } + + @override + VendorItemResponse deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType: FullType.unspecified}) { + final result = new VendorItemResponseBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'data': + result.data.replace(serializers.deserialize(value, + specifiedType: const FullType(VendorEntity)) as VendorEntity); + break; + } + } + + return result.build(); + } +} + +class _$VendorEntitySerializer implements StructuredSerializer { + @override + final Iterable types = const [VendorEntity, _$VendorEntity]; + @override + final String wireName = 'VendorEntity'; + + @override + Iterable serialize(Serializers serializers, VendorEntity object, + {FullType specifiedType: FullType.unspecified}) { + final result = []; + if (object.name != null) { + result + ..add('name') + ..add(serializers.serialize(object.name, + specifiedType: const FullType(String))); + } + if (object.balance != null) { + result + ..add('balance') + ..add(serializers.serialize(object.balance, + specifiedType: const FullType(double))); + } + if (object.paidToDate != null) { + result + ..add('paid_to_date') + ..add(serializers.serialize(object.paidToDate, + specifiedType: const FullType(double))); + } + if (object.address1 != null) { + result + ..add('address1') + ..add(serializers.serialize(object.address1, + specifiedType: const FullType(String))); + } + if (object.address2 != null) { + result + ..add('address2') + ..add(serializers.serialize(object.address2, + specifiedType: const FullType(String))); + } + if (object.city != null) { + result + ..add('city') + ..add(serializers.serialize(object.city, + specifiedType: const FullType(String))); + } + if (object.state != null) { + result + ..add('state') + ..add(serializers.serialize(object.state, + specifiedType: const FullType(String))); + } + if (object.postalCode != null) { + result + ..add('postal_code') + ..add(serializers.serialize(object.postalCode, + specifiedType: const FullType(String))); + } + if (object.countryId != null) { + result + ..add('country_id') + ..add(serializers.serialize(object.countryId, + specifiedType: const FullType(int))); + } + if (object.workPhone != null) { + result + ..add('work_phone') + ..add(serializers.serialize(object.workPhone, + specifiedType: const FullType(String))); + } + if (object.privateNotes != null) { + result + ..add('private_notes') + ..add(serializers.serialize(object.privateNotes, + specifiedType: const FullType(String))); + } + if (object.lastLogin != null) { + result + ..add('last_login') + ..add(serializers.serialize(object.lastLogin, + specifiedType: const FullType(String))); + } + if (object.website != null) { + result + ..add('website') + ..add(serializers.serialize(object.website, + specifiedType: const FullType(String))); + } + if (object.vatNumber != null) { + result + ..add('vat_number') + ..add(serializers.serialize(object.vatNumber, + specifiedType: const FullType(String))); + } + if (object.idNumber != null) { + result + ..add('id_number') + ..add(serializers.serialize(object.idNumber, + specifiedType: const FullType(String))); + } + if (object.currencyId != null) { + result + ..add('currency_id') + ..add(serializers.serialize(object.currencyId, + specifiedType: const FullType(int))); + } + if (object.customValue1 != null) { + result + ..add('custom_value1') + ..add(serializers.serialize(object.customValue1, + specifiedType: const FullType(String))); + } + if (object.customValue2 != null) { + result + ..add('custom_value2') + ..add(serializers.serialize(object.customValue2, + specifiedType: const FullType(String))); + } + if (object.vendorContacts != null) { + result + ..add('vendor_contacts') + ..add(serializers.serialize(object.vendorContacts, + specifiedType: const FullType( + BuiltList, const [const FullType(VendorContactEntity)]))); + } + if (object.id != null) { + result + ..add('id') + ..add(serializers.serialize(object.id, + specifiedType: const FullType(int))); + } + if (object.updatedAt != null) { + result + ..add('updated_at') + ..add(serializers.serialize(object.updatedAt, + specifiedType: const FullType(int))); + } + if (object.archivedAt != null) { + result + ..add('archived_at') + ..add(serializers.serialize(object.archivedAt, + specifiedType: const FullType(int))); + } + if (object.isDeleted != null) { + result + ..add('is_deleted') + ..add(serializers.serialize(object.isDeleted, + specifiedType: const FullType(bool))); + } + + return result; + } + + @override + VendorEntity deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType: FullType.unspecified}) { + final result = new VendorEntityBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'name': + result.name = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'balance': + result.balance = serializers.deserialize(value, + specifiedType: const FullType(double)) as double; + break; + case 'paid_to_date': + result.paidToDate = serializers.deserialize(value, + specifiedType: const FullType(double)) as double; + break; + case 'address1': + result.address1 = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'address2': + result.address2 = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'city': + result.city = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'state': + result.state = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'postal_code': + result.postalCode = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'country_id': + result.countryId = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'work_phone': + result.workPhone = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'private_notes': + result.privateNotes = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'last_login': + result.lastLogin = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'website': + result.website = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'vat_number': + result.vatNumber = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'id_number': + result.idNumber = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'currency_id': + result.currencyId = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'custom_value1': + result.customValue1 = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'custom_value2': + result.customValue2 = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'vendor_contacts': + result.vendorContacts.replace(serializers.deserialize(value, + specifiedType: const FullType( + BuiltList, const [const FullType(VendorContactEntity)])) + as BuiltList); + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'updated_at': + result.updatedAt = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'archived_at': + result.archivedAt = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'is_deleted': + result.isDeleted = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + break; + } + } + + return result.build(); + } +} + +class _$VendorContactEntitySerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + VendorContactEntity, + _$VendorContactEntity + ]; + @override + final String wireName = 'VendorContactEntity'; + + @override + Iterable serialize(Serializers serializers, VendorContactEntity object, + {FullType specifiedType: FullType.unspecified}) { + final result = []; + if (object.firstName != null) { + result + ..add('first_name') + ..add(serializers.serialize(object.firstName, + specifiedType: const FullType(String))); + } + if (object.lastName != null) { + result + ..add('last_name') + ..add(serializers.serialize(object.lastName, + specifiedType: const FullType(String))); + } + if (object.email != null) { + result + ..add('email') + ..add(serializers.serialize(object.email, + specifiedType: const FullType(String))); + } + if (object.isPrimary != null) { + result + ..add('is_primary') + ..add(serializers.serialize(object.isPrimary, + specifiedType: const FullType(bool))); + } + if (object.phone != null) { + result + ..add('phone') + ..add(serializers.serialize(object.phone, + specifiedType: const FullType(String))); + } + if (object.id != null) { + result + ..add('id') + ..add(serializers.serialize(object.id, + specifiedType: const FullType(int))); + } + if (object.updatedAt != null) { + result + ..add('updated_at') + ..add(serializers.serialize(object.updatedAt, + specifiedType: const FullType(int))); + } + if (object.archivedAt != null) { + result + ..add('archived_at') + ..add(serializers.serialize(object.archivedAt, + specifiedType: const FullType(int))); + } + if (object.isDeleted != null) { + result + ..add('is_deleted') + ..add(serializers.serialize(object.isDeleted, + specifiedType: const FullType(bool))); + } + + return result; + } + + @override + VendorContactEntity deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType: FullType.unspecified}) { + final result = new VendorContactEntityBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'first_name': + result.firstName = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'last_name': + result.lastName = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'email': + result.email = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'is_primary': + result.isPrimary = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + break; + case 'phone': + result.phone = serializers.deserialize(value, + specifiedType: const FullType(String)) as String; + break; + case 'id': + result.id = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'updated_at': + result.updatedAt = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'archived_at': + result.archivedAt = serializers.deserialize(value, + specifiedType: const FullType(int)) as int; + break; + case 'is_deleted': + result.isDeleted = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool; + break; + } + } + + return result.build(); + } +} + +class _$VendorListResponse extends VendorListResponse { + @override + final BuiltList data; + + factory _$VendorListResponse([void updates(VendorListResponseBuilder b)]) => + (new VendorListResponseBuilder()..update(updates)).build(); + + _$VendorListResponse._({this.data}) : super._() { + if (data == null) + throw new BuiltValueNullFieldError('VendorListResponse', 'data'); + } + + @override + VendorListResponse rebuild(void updates(VendorListResponseBuilder b)) => + (toBuilder()..update(updates)).build(); + + @override + VendorListResponseBuilder toBuilder() => + new VendorListResponseBuilder()..replace(this); + + @override + bool operator ==(dynamic other) { + if (identical(other, this)) return true; + if (other is! VendorListResponse) return false; + return data == other.data; + } + + @override + int get hashCode { + return $jf($jc(0, data.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('VendorListResponse') + ..add('data', data)) + .toString(); + } +} + +class VendorListResponseBuilder + implements Builder { + _$VendorListResponse _$v; + + ListBuilder _data; + ListBuilder get data => + _$this._data ??= new ListBuilder(); + set data(ListBuilder data) => _$this._data = data; + + VendorListResponseBuilder(); + + VendorListResponseBuilder get _$this { + if (_$v != null) { + _data = _$v.data?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(VendorListResponse other) { + if (other == null) throw new ArgumentError.notNull('other'); + _$v = other as _$VendorListResponse; + } + + @override + void update(void updates(VendorListResponseBuilder b)) { + if (updates != null) updates(this); + } + + @override + _$VendorListResponse build() { + _$VendorListResponse _$result; + try { + _$result = _$v ?? new _$VendorListResponse._(data: data.build()); + } catch (_) { + String _$failedField; + try { + _$failedField = 'data'; + data.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + 'VendorListResponse', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$VendorItemResponse extends VendorItemResponse { + @override + final VendorEntity data; + + factory _$VendorItemResponse([void updates(VendorItemResponseBuilder b)]) => + (new VendorItemResponseBuilder()..update(updates)).build(); + + _$VendorItemResponse._({this.data}) : super._() { + if (data == null) + throw new BuiltValueNullFieldError('VendorItemResponse', 'data'); + } + + @override + VendorItemResponse rebuild(void updates(VendorItemResponseBuilder b)) => + (toBuilder()..update(updates)).build(); + + @override + VendorItemResponseBuilder toBuilder() => + new VendorItemResponseBuilder()..replace(this); + + @override + bool operator ==(dynamic other) { + if (identical(other, this)) return true; + if (other is! VendorItemResponse) return false; + return data == other.data; + } + + @override + int get hashCode { + return $jf($jc(0, data.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('VendorItemResponse') + ..add('data', data)) + .toString(); + } +} + +class VendorItemResponseBuilder + implements Builder { + _$VendorItemResponse _$v; + + VendorEntityBuilder _data; + VendorEntityBuilder get data => _$this._data ??= new VendorEntityBuilder(); + set data(VendorEntityBuilder data) => _$this._data = data; + + VendorItemResponseBuilder(); + + VendorItemResponseBuilder get _$this { + if (_$v != null) { + _data = _$v.data?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(VendorItemResponse other) { + if (other == null) throw new ArgumentError.notNull('other'); + _$v = other as _$VendorItemResponse; + } + + @override + void update(void updates(VendorItemResponseBuilder b)) { + if (updates != null) updates(this); + } + + @override + _$VendorItemResponse build() { + _$VendorItemResponse _$result; + try { + _$result = _$v ?? new _$VendorItemResponse._(data: data.build()); + } catch (_) { + String _$failedField; + try { + _$failedField = 'data'; + data.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + 'VendorItemResponse', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$VendorEntity extends VendorEntity { + @override + final String name; + @override + final double balance; + @override + final double paidToDate; + @override + final String address1; + @override + final String address2; + @override + final String city; + @override + final String state; + @override + final String postalCode; + @override + final int countryId; + @override + final String workPhone; + @override + final String privateNotes; + @override + final String lastLogin; + @override + final String website; + @override + final String vatNumber; + @override + final String idNumber; + @override + final int currencyId; + @override + final String customValue1; + @override + final String customValue2; + @override + final BuiltList vendorContacts; + @override + final int id; + @override + final int updatedAt; + @override + final int archivedAt; + @override + final bool isDeleted; + + factory _$VendorEntity([void updates(VendorEntityBuilder b)]) => + (new VendorEntityBuilder()..update(updates)).build(); + + _$VendorEntity._( + {this.name, + this.balance, + this.paidToDate, + this.address1, + this.address2, + this.city, + this.state, + this.postalCode, + this.countryId, + this.workPhone, + this.privateNotes, + this.lastLogin, + this.website, + this.vatNumber, + this.idNumber, + this.currencyId, + this.customValue1, + this.customValue2, + this.vendorContacts, + this.id, + this.updatedAt, + this.archivedAt, + this.isDeleted}) + : super._(); + + @override + VendorEntity rebuild(void updates(VendorEntityBuilder b)) => + (toBuilder()..update(updates)).build(); + + @override + VendorEntityBuilder toBuilder() => new VendorEntityBuilder()..replace(this); + + @override + bool operator ==(dynamic other) { + if (identical(other, this)) return true; + if (other is! VendorEntity) return false; + return name == other.name && + balance == other.balance && + paidToDate == other.paidToDate && + address1 == other.address1 && + address2 == other.address2 && + city == other.city && + state == other.state && + postalCode == other.postalCode && + countryId == other.countryId && + workPhone == other.workPhone && + privateNotes == other.privateNotes && + lastLogin == other.lastLogin && + website == other.website && + vatNumber == other.vatNumber && + idNumber == other.idNumber && + currencyId == other.currencyId && + customValue1 == other.customValue1 && + customValue2 == other.customValue2 && + vendorContacts == other.vendorContacts && + id == other.id && + updatedAt == other.updatedAt && + archivedAt == other.archivedAt && + isDeleted == other.isDeleted; + } + + @override + int get hashCode { + return $jf($jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc($jc($jc($jc($jc(0, name.hashCode), balance.hashCode), paidToDate.hashCode), address1.hashCode), + address2.hashCode), + city.hashCode), + state.hashCode), + postalCode.hashCode), + countryId.hashCode), + workPhone.hashCode), + privateNotes.hashCode), + lastLogin.hashCode), + website.hashCode), + vatNumber.hashCode), + idNumber.hashCode), + currencyId.hashCode), + customValue1.hashCode), + customValue2.hashCode), + vendorContacts.hashCode), + id.hashCode), + updatedAt.hashCode), + archivedAt.hashCode), + isDeleted.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('VendorEntity') + ..add('name', name) + ..add('balance', balance) + ..add('paidToDate', paidToDate) + ..add('address1', address1) + ..add('address2', address2) + ..add('city', city) + ..add('state', state) + ..add('postalCode', postalCode) + ..add('countryId', countryId) + ..add('workPhone', workPhone) + ..add('privateNotes', privateNotes) + ..add('lastLogin', lastLogin) + ..add('website', website) + ..add('vatNumber', vatNumber) + ..add('idNumber', idNumber) + ..add('currencyId', currencyId) + ..add('customValue1', customValue1) + ..add('customValue2', customValue2) + ..add('vendorContacts', vendorContacts) + ..add('id', id) + ..add('updatedAt', updatedAt) + ..add('archivedAt', archivedAt) + ..add('isDeleted', isDeleted)) + .toString(); + } +} + +class VendorEntityBuilder + implements Builder { + _$VendorEntity _$v; + + String _name; + String get name => _$this._name; + set name(String name) => _$this._name = name; + + double _balance; + double get balance => _$this._balance; + set balance(double balance) => _$this._balance = balance; + + double _paidToDate; + double get paidToDate => _$this._paidToDate; + set paidToDate(double paidToDate) => _$this._paidToDate = paidToDate; + + String _address1; + String get address1 => _$this._address1; + set address1(String address1) => _$this._address1 = address1; + + String _address2; + String get address2 => _$this._address2; + set address2(String address2) => _$this._address2 = address2; + + String _city; + String get city => _$this._city; + set city(String city) => _$this._city = city; + + String _state; + String get state => _$this._state; + set state(String state) => _$this._state = state; + + String _postalCode; + String get postalCode => _$this._postalCode; + set postalCode(String postalCode) => _$this._postalCode = postalCode; + + int _countryId; + int get countryId => _$this._countryId; + set countryId(int countryId) => _$this._countryId = countryId; + + String _workPhone; + String get workPhone => _$this._workPhone; + set workPhone(String workPhone) => _$this._workPhone = workPhone; + + String _privateNotes; + String get privateNotes => _$this._privateNotes; + set privateNotes(String privateNotes) => _$this._privateNotes = privateNotes; + + String _lastLogin; + String get lastLogin => _$this._lastLogin; + set lastLogin(String lastLogin) => _$this._lastLogin = lastLogin; + + String _website; + String get website => _$this._website; + set website(String website) => _$this._website = website; + + String _vatNumber; + String get vatNumber => _$this._vatNumber; + set vatNumber(String vatNumber) => _$this._vatNumber = vatNumber; + + String _idNumber; + String get idNumber => _$this._idNumber; + set idNumber(String idNumber) => _$this._idNumber = idNumber; + + int _currencyId; + int get currencyId => _$this._currencyId; + set currencyId(int currencyId) => _$this._currencyId = currencyId; + + String _customValue1; + String get customValue1 => _$this._customValue1; + set customValue1(String customValue1) => _$this._customValue1 = customValue1; + + String _customValue2; + String get customValue2 => _$this._customValue2; + set customValue2(String customValue2) => _$this._customValue2 = customValue2; + + ListBuilder _vendorContacts; + ListBuilder get vendorContacts => + _$this._vendorContacts ??= new ListBuilder(); + set vendorContacts(ListBuilder vendorContacts) => + _$this._vendorContacts = vendorContacts; + + int _id; + int get id => _$this._id; + set id(int id) => _$this._id = id; + + int _updatedAt; + int get updatedAt => _$this._updatedAt; + set updatedAt(int updatedAt) => _$this._updatedAt = updatedAt; + + int _archivedAt; + int get archivedAt => _$this._archivedAt; + set archivedAt(int archivedAt) => _$this._archivedAt = archivedAt; + + bool _isDeleted; + bool get isDeleted => _$this._isDeleted; + set isDeleted(bool isDeleted) => _$this._isDeleted = isDeleted; + + VendorEntityBuilder(); + + VendorEntityBuilder get _$this { + if (_$v != null) { + _name = _$v.name; + _balance = _$v.balance; + _paidToDate = _$v.paidToDate; + _address1 = _$v.address1; + _address2 = _$v.address2; + _city = _$v.city; + _state = _$v.state; + _postalCode = _$v.postalCode; + _countryId = _$v.countryId; + _workPhone = _$v.workPhone; + _privateNotes = _$v.privateNotes; + _lastLogin = _$v.lastLogin; + _website = _$v.website; + _vatNumber = _$v.vatNumber; + _idNumber = _$v.idNumber; + _currencyId = _$v.currencyId; + _customValue1 = _$v.customValue1; + _customValue2 = _$v.customValue2; + _vendorContacts = _$v.vendorContacts?.toBuilder(); + _id = _$v.id; + _updatedAt = _$v.updatedAt; + _archivedAt = _$v.archivedAt; + _isDeleted = _$v.isDeleted; + _$v = null; + } + return this; + } + + @override + void replace(VendorEntity other) { + if (other == null) throw new ArgumentError.notNull('other'); + _$v = other as _$VendorEntity; + } + + @override + void update(void updates(VendorEntityBuilder b)) { + if (updates != null) updates(this); + } + + @override + _$VendorEntity build() { + _$VendorEntity _$result; + try { + _$result = _$v ?? + new _$VendorEntity._( + name: name, + balance: balance, + paidToDate: paidToDate, + address1: address1, + address2: address2, + city: city, + state: state, + postalCode: postalCode, + countryId: countryId, + workPhone: workPhone, + privateNotes: privateNotes, + lastLogin: lastLogin, + website: website, + vatNumber: vatNumber, + idNumber: idNumber, + currencyId: currencyId, + customValue1: customValue1, + customValue2: customValue2, + vendorContacts: _vendorContacts?.build(), + id: id, + updatedAt: updatedAt, + archivedAt: archivedAt, + isDeleted: isDeleted); + } catch (_) { + String _$failedField; + try { + _$failedField = 'vendorContacts'; + _vendorContacts?.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + 'VendorEntity', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +class _$VendorContactEntity extends VendorContactEntity { + @override + final String firstName; + @override + final String lastName; + @override + final String email; + @override + final bool isPrimary; + @override + final String phone; + @override + final int id; + @override + final int updatedAt; + @override + final int archivedAt; + @override + final bool isDeleted; + + factory _$VendorContactEntity([void updates(VendorContactEntityBuilder b)]) => + (new VendorContactEntityBuilder()..update(updates)).build(); + + _$VendorContactEntity._( + {this.firstName, + this.lastName, + this.email, + this.isPrimary, + this.phone, + this.id, + this.updatedAt, + this.archivedAt, + this.isDeleted}) + : super._(); + + @override + VendorContactEntity rebuild(void updates(VendorContactEntityBuilder b)) => + (toBuilder()..update(updates)).build(); + + @override + VendorContactEntityBuilder toBuilder() => + new VendorContactEntityBuilder()..replace(this); + + @override + bool operator ==(dynamic other) { + if (identical(other, this)) return true; + if (other is! VendorContactEntity) return false; + return firstName == other.firstName && + lastName == other.lastName && + email == other.email && + isPrimary == other.isPrimary && + phone == other.phone && + id == other.id && + updatedAt == other.updatedAt && + archivedAt == other.archivedAt && + isDeleted == other.isDeleted; + } + + @override + int get hashCode { + return $jf($jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc( + $jc($jc(0, firstName.hashCode), + lastName.hashCode), + email.hashCode), + isPrimary.hashCode), + phone.hashCode), + id.hashCode), + updatedAt.hashCode), + archivedAt.hashCode), + isDeleted.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('VendorContactEntity') + ..add('firstName', firstName) + ..add('lastName', lastName) + ..add('email', email) + ..add('isPrimary', isPrimary) + ..add('phone', phone) + ..add('id', id) + ..add('updatedAt', updatedAt) + ..add('archivedAt', archivedAt) + ..add('isDeleted', isDeleted)) + .toString(); + } +} + +class VendorContactEntityBuilder + implements Builder { + _$VendorContactEntity _$v; + + String _firstName; + String get firstName => _$this._firstName; + set firstName(String firstName) => _$this._firstName = firstName; + + String _lastName; + String get lastName => _$this._lastName; + set lastName(String lastName) => _$this._lastName = lastName; + + String _email; + String get email => _$this._email; + set email(String email) => _$this._email = email; + + bool _isPrimary; + bool get isPrimary => _$this._isPrimary; + set isPrimary(bool isPrimary) => _$this._isPrimary = isPrimary; + + String _phone; + String get phone => _$this._phone; + set phone(String phone) => _$this._phone = phone; + + int _id; + int get id => _$this._id; + set id(int id) => _$this._id = id; + + int _updatedAt; + int get updatedAt => _$this._updatedAt; + set updatedAt(int updatedAt) => _$this._updatedAt = updatedAt; + + int _archivedAt; + int get archivedAt => _$this._archivedAt; + set archivedAt(int archivedAt) => _$this._archivedAt = archivedAt; + + bool _isDeleted; + bool get isDeleted => _$this._isDeleted; + set isDeleted(bool isDeleted) => _$this._isDeleted = isDeleted; + + VendorContactEntityBuilder(); + + VendorContactEntityBuilder get _$this { + if (_$v != null) { + _firstName = _$v.firstName; + _lastName = _$v.lastName; + _email = _$v.email; + _isPrimary = _$v.isPrimary; + _phone = _$v.phone; + _id = _$v.id; + _updatedAt = _$v.updatedAt; + _archivedAt = _$v.archivedAt; + _isDeleted = _$v.isDeleted; + _$v = null; + } + return this; + } + + @override + void replace(VendorContactEntity other) { + if (other == null) throw new ArgumentError.notNull('other'); + _$v = other as _$VendorContactEntity; + } + + @override + void update(void updates(VendorContactEntityBuilder b)) { + if (updates != null) updates(this); + } + + @override + _$VendorContactEntity build() { + final _$result = _$v ?? + new _$VendorContactEntity._( + firstName: firstName, + lastName: lastName, + email: email, + isPrimary: isPrimary, + phone: phone, + id: id, + updatedAt: updatedAt, + archivedAt: archivedAt, + isDeleted: isDeleted); + replace(_$result); + return _$result; + } +} diff --git a/lib/data/repositories/credit_repository.dart b/lib/data/repositories/credit_repository.dart new file mode 100644 index 000000000..4a79044ce --- /dev/null +++ b/lib/data/repositories/credit_repository.dart @@ -0,0 +1,50 @@ +import 'dart:async'; +import 'dart:core'; +import 'dart:convert'; +import 'package:invoiceninja/data/models/serializers.dart'; +import 'package:built_collection/built_collection.dart'; + +import 'package:invoiceninja/redux/auth/auth_state.dart'; +import 'package:invoiceninja/data/models/models.dart'; +import 'package:invoiceninja/data/web_client.dart'; + +class CreditsRepository { + final WebClient webClient; + + const CreditsRepository({ + this.webClient = const WebClient(), + }); + + Future> loadList(CompanyEntity company, AuthState auth) async { + + final response = await webClient.get( + auth.url + '/credits?per_page=500', company.token); + + CreditListResponse creditResponse = serializers.deserializeWith( + CreditListResponse.serializer, response); + + return creditResponse.data; + } + + Future saveData(CompanyEntity company, AuthState auth, CreditEntity credit, [EntityAction action]) async { + + var data = serializers.serializeWith(CreditEntity.serializer, credit); + var response; + + if (credit.id == null) { + response = await webClient.post( + auth.url + '/credits', company.token, json.encode(data)); + } else { + var url = auth.url + '/credits/' + credit.id.toString(); + if (action != null) { + url += '?action=' + action.toString(); + } + response = await webClient.put(url, company.token, json.encode(data)); + } + + CreditItemResponse creditResponse = serializers.deserializeWith( + CreditItemResponse.serializer, response); + + return creditResponse.data; + } +} \ No newline at end of file diff --git a/lib/data/repositories/expense_repository.dart b/lib/data/repositories/expense_repository.dart new file mode 100644 index 000000000..6150b1d98 --- /dev/null +++ b/lib/data/repositories/expense_repository.dart @@ -0,0 +1,50 @@ +import 'dart:async'; +import 'dart:core'; +import 'dart:convert'; +import 'package:invoiceninja/data/models/serializers.dart'; +import 'package:built_collection/built_collection.dart'; + +import 'package:invoiceninja/redux/auth/auth_state.dart'; +import 'package:invoiceninja/data/models/models.dart'; +import 'package:invoiceninja/data/web_client.dart'; + +class ExpenseRepository { + final WebClient webClient; + + const ExpenseRepository({ + this.webClient = const WebClient(), + }); + + Future> loadList(CompanyEntity company, AuthState auth) async { + + final response = await webClient.get( + auth.url + '/expenses?per_page=500', company.token); + + ExpenseListResponse expenseResponse = serializers.deserializeWith( + ExpenseListResponse.serializer, response); + + return expenseResponse.data; + } + + Future saveData(CompanyEntity company, AuthState auth, ExpenseEntity expense, [EntityAction action]) async { + + var data = serializers.serializeWith(ExpenseEntity.serializer, expense); + var response; + + if (expense.id == null) { + response = await webClient.post( + auth.url + '/expenses', company.token, json.encode(data)); + } else { + var url = auth.url + '/expenses/' + expense.id.toString(); + if (action != null) { + url += '?action=' + action.toString(); + } + response = await webClient.put(url, company.token, json.encode(data)); + } + + ExpenseItemResponse expenseResponse = serializers.deserializeWith( + ExpenseItemResponse.serializer, response); + + return expenseResponse.data; + } +} \ No newline at end of file diff --git a/lib/data/repositories/invoice_repository.dart b/lib/data/repositories/invoice_repository.dart new file mode 100644 index 000000000..d54037b6c --- /dev/null +++ b/lib/data/repositories/invoice_repository.dart @@ -0,0 +1,50 @@ +import 'dart:async'; +import 'dart:core'; +import 'dart:convert'; +import 'package:invoiceninja/data/models/serializers.dart'; +import 'package:built_collection/built_collection.dart'; + +import 'package:invoiceninja/redux/auth/auth_state.dart'; +import 'package:invoiceninja/data/models/models.dart'; +import 'package:invoiceninja/data/web_client.dart'; + +class InvoiceRepository { + final WebClient webClient; + + const InvoiceRepository({ + this.webClient = const WebClient(), + }); + + Future> loadList(CompanyEntity company, AuthState auth) async { + + final response = await webClient.get( + auth.url + '/invoices?per_page=500', company.token); + + InvoiceListResponse invoiceResponse = serializers.deserializeWith( + InvoiceListResponse.serializer, response); + + return invoiceResponse.data; + } + + Future saveData(CompanyEntity company, AuthState auth, InvoiceEntity invoice, [EntityAction action]) async { + + var data = serializers.serializeWith(InvoiceEntity.serializer, invoice); + var response; + + if (invoice.id == null) { + response = await webClient.post( + auth.url + '/invoices', company.token, json.encode(data)); + } else { + var url = auth.url + '/invoices/' + invoice.id.toString(); + if (action != null) { + url += '?action=' + action.toString(); + } + response = await webClient.put(url, company.token, json.encode(data)); + } + + InvoiceItemResponse invoiceResponse = serializers.deserializeWith( + InvoiceItemResponse.serializer, response); + + return invoiceResponse.data; + } +} \ No newline at end of file diff --git a/lib/data/repositories/payment_repository.dart b/lib/data/repositories/payment_repository.dart new file mode 100644 index 000000000..49f8dc8ee --- /dev/null +++ b/lib/data/repositories/payment_repository.dart @@ -0,0 +1,50 @@ +import 'dart:async'; +import 'dart:core'; +import 'dart:convert'; +import 'package:invoiceninja/data/models/serializers.dart'; +import 'package:built_collection/built_collection.dart'; + +import 'package:invoiceninja/redux/auth/auth_state.dart'; +import 'package:invoiceninja/data/models/models.dart'; +import 'package:invoiceninja/data/web_client.dart'; + +class PaymentsRepository { + final WebClient webClient; + + const PaymentsRepository({ + this.webClient = const WebClient(), + }); + + Future> loadList(CompanyEntity company, AuthState auth) async { + + final response = await webClient.get( + auth.url + '/payments?per_page=500', company.token); + + PaymentListResponse paymentResponse = serializers.deserializeWith( + PaymentListResponse.serializer, response); + + return paymentResponse.data; + } + + Future saveData(CompanyEntity company, AuthState auth, PaymentEntity payment, [EntityAction action]) async { + + var data = serializers.serializeWith(PaymentEntity.serializer, payment); + var response; + + if (payment.id == null) { + response = await webClient.post( + auth.url + '/payments', company.token, json.encode(data)); + } else { + var url = auth.url + '/payments/' + payment.id.toString(); + if (action != null) { + url += '?action=' + action.toString(); + } + response = await webClient.put(url, company.token, json.encode(data)); + } + + PaymentItemResponse paymentResponse = serializers.deserializeWith( + PaymentItemResponse.serializer, response); + + return paymentResponse.data; + } +} \ No newline at end of file diff --git a/lib/data/repositories/project_repository.dart b/lib/data/repositories/project_repository.dart new file mode 100644 index 000000000..e0a62c5a7 --- /dev/null +++ b/lib/data/repositories/project_repository.dart @@ -0,0 +1,50 @@ +import 'dart:async'; +import 'dart:core'; +import 'dart:convert'; +import 'package:invoiceninja/data/models/serializers.dart'; +import 'package:built_collection/built_collection.dart'; + +import 'package:invoiceninja/redux/auth/auth_state.dart'; +import 'package:invoiceninja/data/models/models.dart'; +import 'package:invoiceninja/data/web_client.dart'; + +class ProjectsRepository { + final WebClient webClient; + + const ProjectsRepository({ + this.webClient = const WebClient(), + }); + + Future> loadList(CompanyEntity company, AuthState auth) async { + + final response = await webClient.get( + auth.url + '/projects?per_page=500', company.token); + + ProjectListResponse projectResponse = serializers.deserializeWith( + ProjectListResponse.serializer, response); + + return projectResponse.data; + } + + Future saveData(CompanyEntity company, AuthState auth, ProjectEntity project, [EntityAction action]) async { + + var data = serializers.serializeWith(ProjectEntity.serializer, project); + var response; + + if (project.id == null) { + response = await webClient.post( + auth.url + '/projects', company.token, json.encode(data)); + } else { + var url = auth.url + '/projects/' + project.id.toString(); + if (action != null) { + url += '?action=' + action.toString(); + } + response = await webClient.put(url, company.token, json.encode(data)); + } + + ProjectItemResponse projectResponse = serializers.deserializeWith( + ProjectItemResponse.serializer, response); + + return projectResponse.data; + } +} \ No newline at end of file diff --git a/lib/data/repositories/task_repository.dart b/lib/data/repositories/task_repository.dart new file mode 100644 index 000000000..03f64708d --- /dev/null +++ b/lib/data/repositories/task_repository.dart @@ -0,0 +1,50 @@ +import 'dart:async'; +import 'dart:core'; +import 'dart:convert'; +import 'package:invoiceninja/data/models/serializers.dart'; +import 'package:built_collection/built_collection.dart'; + +import 'package:invoiceninja/redux/auth/auth_state.dart'; +import 'package:invoiceninja/data/models/models.dart'; +import 'package:invoiceninja/data/web_client.dart'; + +class TasksRepository { + final WebClient webClient; + + const TasksRepository({ + this.webClient = const WebClient(), + }); + + Future> loadList(CompanyEntity company, AuthState auth) async { + + final response = await webClient.get( + auth.url + '/tasks?per_page=500', company.token); + + TaskListResponse taskResponse = serializers.deserializeWith( + TaskListResponse.serializer, response); + + return taskResponse.data; + } + + Future saveData(CompanyEntity company, AuthState auth, TaskEntity task, [EntityAction action]) async { + + var data = serializers.serializeWith(TaskEntity.serializer, task); + var response; + + if (task.id == null) { + response = await webClient.post( + auth.url + '/tasks', company.token, json.encode(data)); + } else { + var url = auth.url + '/tasks/' + task.id.toString(); + if (action != null) { + url += '?action=' + action.toString(); + } + response = await webClient.put(url, company.token, json.encode(data)); + } + + TaskItemResponse taskResponse = serializers.deserializeWith( + TaskItemResponse.serializer, response); + + return taskResponse.data; + } +} \ No newline at end of file diff --git a/lib/data/repositories/vendor_repository.dart b/lib/data/repositories/vendor_repository.dart new file mode 100644 index 000000000..f8ba7f9b7 --- /dev/null +++ b/lib/data/repositories/vendor_repository.dart @@ -0,0 +1,50 @@ +import 'dart:async'; +import 'dart:core'; +import 'dart:convert'; +import 'package:invoiceninja/data/models/serializers.dart'; +import 'package:built_collection/built_collection.dart'; + +import 'package:invoiceninja/redux/auth/auth_state.dart'; +import 'package:invoiceninja/data/models/models.dart'; +import 'package:invoiceninja/data/web_client.dart'; + +class VendorRepository { + final WebClient webClient; + + const VendorRepository({ + this.webClient = const WebClient(), + }); + + Future> loadList(CompanyEntity company, AuthState auth) async { + + final response = await webClient.get( + auth.url + '/vendors?per_page=500', company.token); + + VendorListResponse vendorResponse = serializers.deserializeWith( + VendorListResponse.serializer, response); + + return vendorResponse.data; + } + + Future saveData(CompanyEntity company, AuthState auth, VendorEntity vendor, [EntityAction action]) async { + + var data = serializers.serializeWith(VendorEntity.serializer, vendor); + var response; + + if (vendor.id == null) { + response = await webClient.post( + auth.url + '/vendors', company.token, json.encode(data)); + } else { + var url = auth.url + '/vendors/' + vendor.id.toString(); + if (action != null) { + url += '?action=' + action.toString(); + } + response = await webClient.put(url, company.token, json.encode(data)); + } + + VendorItemResponse vendorResponse = serializers.deserializeWith( + VendorItemResponse.serializer, response); + + return vendorResponse.data; + } +} \ No newline at end of file