updated the look and feel of the home page
This commit is contained in:
153
lib/screens/transactions/transaction_model.dart
Normal file
153
lib/screens/transactions/transaction_model.dart
Normal file
@@ -0,0 +1,153 @@
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:decimal/decimal.dart';
|
||||
|
||||
part 'transaction_model.g.dart';
|
||||
|
||||
/// JsonConverter for [Decimal] values — reads from [num] (int or double)
|
||||
/// in JSON and writes back as [num].
|
||||
class DecimalJsonConverter implements JsonConverter<Decimal, num> {
|
||||
const DecimalJsonConverter();
|
||||
|
||||
@override
|
||||
Decimal fromJson(num json) => Decimal.parse(json.toString());
|
||||
|
||||
@override
|
||||
num toJson(Decimal object) => object.toDouble();
|
||||
}
|
||||
|
||||
/// JsonConverter for [DateTime] values — reads from ISO‑8601 [String]
|
||||
/// and writes back as ISO‑8601 [String].
|
||||
class DateTimeJsonConverter implements JsonConverter<DateTime, String> {
|
||||
const DateTimeJsonConverter();
|
||||
|
||||
@override
|
||||
DateTime fromJson(String json) => DateTime.parse(json);
|
||||
|
||||
@override
|
||||
String toJson(DateTime object) => object.toIso8601String();
|
||||
}
|
||||
|
||||
/// JsonConverter for a list of key-value entries (additionalData).
|
||||
class AdditionalDataJsonConverter
|
||||
implements JsonConverter<List<Map<String, dynamic>>?, List<dynamic>?> {
|
||||
const AdditionalDataJsonConverter();
|
||||
|
||||
@override
|
||||
List<Map<String, dynamic>>? fromJson(List<dynamic>? json) {
|
||||
return json
|
||||
?.map((e) => Map<String, dynamic>.from(e as Map))
|
||||
.toList();
|
||||
}
|
||||
|
||||
@override
|
||||
List<dynamic>? toJson(List<Map<String, dynamic>>? object) {
|
||||
return object?.map((e) => e as dynamic).toList();
|
||||
}
|
||||
}
|
||||
|
||||
@DecimalJsonConverter()
|
||||
@DateTimeJsonConverter()
|
||||
@AdditionalDataJsonConverter()
|
||||
@JsonSerializable(explicitToJson: true)
|
||||
class TransactionModel {
|
||||
final String? id;
|
||||
final DateTime? createdAt;
|
||||
final String userId;
|
||||
final String trace;
|
||||
final Decimal amount;
|
||||
final Decimal charge;
|
||||
final Decimal gatewayCharge;
|
||||
final Decimal tax;
|
||||
final Decimal totalAmount;
|
||||
final String reference;
|
||||
final String paymentProcessorLabel;
|
||||
final String integrationProcessorLabel;
|
||||
final String confirmationProcessorLabel;
|
||||
final String providerLabel;
|
||||
final String debitPhone;
|
||||
final String debitCurrency;
|
||||
final String debitRef;
|
||||
final String? creditPhone;
|
||||
final String? creditAccount;
|
||||
final String? creditRef;
|
||||
final String? billClientId;
|
||||
final String billName;
|
||||
final String paymentProcessorName;
|
||||
final String? providerImage;
|
||||
final String? paymentProcessorImage;
|
||||
final String confirmationStatus;
|
||||
final String paymentStatus;
|
||||
final String integrationStatus;
|
||||
final String pollingStatus;
|
||||
final String? orderId;
|
||||
final String? orderTrace;
|
||||
final String? orderTransactionTrace;
|
||||
final String? erpSalesRef;
|
||||
final String? erpSalesPaymentRef;
|
||||
final int workflowId;
|
||||
final String? type;
|
||||
final String? authType;
|
||||
final String? responseCode;
|
||||
final String? status;
|
||||
final String? errorMessage;
|
||||
final String? billProductName;
|
||||
final String? creditName;
|
||||
final String? creditEmail;
|
||||
final String? productUid;
|
||||
final String? targetUrl;
|
||||
final List<Map<String, dynamic>>? additionalData;
|
||||
|
||||
const TransactionModel({
|
||||
this.id,
|
||||
this.createdAt,
|
||||
required this.userId,
|
||||
required this.trace,
|
||||
required this.amount,
|
||||
required this.charge,
|
||||
required this.gatewayCharge,
|
||||
required this.tax,
|
||||
required this.totalAmount,
|
||||
required this.reference,
|
||||
required this.paymentProcessorLabel,
|
||||
required this.integrationProcessorLabel,
|
||||
required this.confirmationProcessorLabel,
|
||||
required this.providerLabel,
|
||||
required this.debitPhone,
|
||||
required this.debitCurrency,
|
||||
required this.debitRef,
|
||||
this.creditPhone,
|
||||
this.creditAccount,
|
||||
this.creditRef,
|
||||
this.billClientId,
|
||||
required this.billName,
|
||||
required this.paymentProcessorName,
|
||||
this.providerImage,
|
||||
this.paymentProcessorImage,
|
||||
required this.confirmationStatus,
|
||||
required this.paymentStatus,
|
||||
required this.integrationStatus,
|
||||
required this.pollingStatus,
|
||||
this.orderId,
|
||||
this.orderTrace,
|
||||
this.orderTransactionTrace,
|
||||
this.erpSalesRef,
|
||||
this.erpSalesPaymentRef,
|
||||
required this.workflowId,
|
||||
this.type,
|
||||
this.authType,
|
||||
this.responseCode,
|
||||
this.status,
|
||||
this.errorMessage,
|
||||
this.billProductName,
|
||||
this.creditName,
|
||||
this.creditEmail,
|
||||
this.productUid,
|
||||
this.targetUrl,
|
||||
this.additionalData,
|
||||
});
|
||||
|
||||
factory TransactionModel.fromJson(Map<String, dynamic> json) =>
|
||||
_$TransactionModelFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$TransactionModelToJson(this);
|
||||
}
|
||||
132
lib/screens/transactions/transaction_model.g.dart
Normal file
132
lib/screens/transactions/transaction_model.g.dart
Normal file
@@ -0,0 +1,132 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'transaction_model.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
TransactionModel _$TransactionModelFromJson(Map<String, dynamic> json) =>
|
||||
TransactionModel(
|
||||
id: json['id'] as String?,
|
||||
createdAt: _$JsonConverterFromJson<String, DateTime>(
|
||||
json['createdAt'],
|
||||
const DateTimeJsonConverter().fromJson,
|
||||
),
|
||||
userId: json['userId'] as String,
|
||||
trace: json['trace'] as String,
|
||||
amount: const DecimalJsonConverter().fromJson(json['amount'] as num),
|
||||
charge: const DecimalJsonConverter().fromJson(json['charge'] as num),
|
||||
gatewayCharge: const DecimalJsonConverter().fromJson(
|
||||
json['gatewayCharge'] as num,
|
||||
),
|
||||
tax: const DecimalJsonConverter().fromJson(json['tax'] as num),
|
||||
totalAmount: const DecimalJsonConverter().fromJson(
|
||||
json['totalAmount'] as num,
|
||||
),
|
||||
reference: json['reference'] as String,
|
||||
paymentProcessorLabel: json['paymentProcessorLabel'] as String,
|
||||
integrationProcessorLabel: json['integrationProcessorLabel'] as String,
|
||||
confirmationProcessorLabel: json['confirmationProcessorLabel'] as String,
|
||||
providerLabel: json['providerLabel'] as String,
|
||||
debitPhone: json['debitPhone'] as String,
|
||||
debitCurrency: json['debitCurrency'] as String,
|
||||
debitRef: json['debitRef'] as String,
|
||||
creditPhone: json['creditPhone'] as String?,
|
||||
creditAccount: json['creditAccount'] as String?,
|
||||
creditRef: json['creditRef'] as String?,
|
||||
billClientId: json['billClientId'] as String?,
|
||||
billName: json['billName'] as String,
|
||||
paymentProcessorName: json['paymentProcessorName'] as String,
|
||||
providerImage: json['providerImage'] as String?,
|
||||
paymentProcessorImage: json['paymentProcessorImage'] as String?,
|
||||
confirmationStatus: json['confirmationStatus'] as String,
|
||||
paymentStatus: json['paymentStatus'] as String,
|
||||
integrationStatus: json['integrationStatus'] as String,
|
||||
pollingStatus: json['pollingStatus'] as String,
|
||||
orderId: json['orderId'] as String?,
|
||||
orderTrace: json['orderTrace'] as String?,
|
||||
orderTransactionTrace: json['orderTransactionTrace'] as String?,
|
||||
erpSalesRef: json['erpSalesRef'] as String?,
|
||||
erpSalesPaymentRef: json['erpSalesPaymentRef'] as String?,
|
||||
workflowId: (json['workflowId'] as num).toInt(),
|
||||
type: json['type'] as String?,
|
||||
authType: json['authType'] as String?,
|
||||
responseCode: json['responseCode'] as String?,
|
||||
status: json['status'] as String?,
|
||||
errorMessage: json['errorMessage'] as String?,
|
||||
billProductName: json['billProductName'] as String?,
|
||||
creditName: json['creditName'] as String?,
|
||||
creditEmail: json['creditEmail'] as String?,
|
||||
productUid: json['productUid'] as String?,
|
||||
targetUrl: json['targetUrl'] as String?,
|
||||
additionalData: const AdditionalDataJsonConverter().fromJson(
|
||||
json['additionalData'] as List?,
|
||||
),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$TransactionModelToJson(
|
||||
TransactionModel instance,
|
||||
) => <String, dynamic>{
|
||||
'id': instance.id,
|
||||
'createdAt': _$JsonConverterToJson<String, DateTime>(
|
||||
instance.createdAt,
|
||||
const DateTimeJsonConverter().toJson,
|
||||
),
|
||||
'userId': instance.userId,
|
||||
'trace': instance.trace,
|
||||
'amount': const DecimalJsonConverter().toJson(instance.amount),
|
||||
'charge': const DecimalJsonConverter().toJson(instance.charge),
|
||||
'gatewayCharge': const DecimalJsonConverter().toJson(instance.gatewayCharge),
|
||||
'tax': const DecimalJsonConverter().toJson(instance.tax),
|
||||
'totalAmount': const DecimalJsonConverter().toJson(instance.totalAmount),
|
||||
'reference': instance.reference,
|
||||
'paymentProcessorLabel': instance.paymentProcessorLabel,
|
||||
'integrationProcessorLabel': instance.integrationProcessorLabel,
|
||||
'confirmationProcessorLabel': instance.confirmationProcessorLabel,
|
||||
'providerLabel': instance.providerLabel,
|
||||
'debitPhone': instance.debitPhone,
|
||||
'debitCurrency': instance.debitCurrency,
|
||||
'debitRef': instance.debitRef,
|
||||
'creditPhone': instance.creditPhone,
|
||||
'creditAccount': instance.creditAccount,
|
||||
'creditRef': instance.creditRef,
|
||||
'billClientId': instance.billClientId,
|
||||
'billName': instance.billName,
|
||||
'paymentProcessorName': instance.paymentProcessorName,
|
||||
'providerImage': instance.providerImage,
|
||||
'paymentProcessorImage': instance.paymentProcessorImage,
|
||||
'confirmationStatus': instance.confirmationStatus,
|
||||
'paymentStatus': instance.paymentStatus,
|
||||
'integrationStatus': instance.integrationStatus,
|
||||
'pollingStatus': instance.pollingStatus,
|
||||
'orderId': instance.orderId,
|
||||
'orderTrace': instance.orderTrace,
|
||||
'orderTransactionTrace': instance.orderTransactionTrace,
|
||||
'erpSalesRef': instance.erpSalesRef,
|
||||
'erpSalesPaymentRef': instance.erpSalesPaymentRef,
|
||||
'workflowId': instance.workflowId,
|
||||
'type': instance.type,
|
||||
'authType': instance.authType,
|
||||
'responseCode': instance.responseCode,
|
||||
'status': instance.status,
|
||||
'errorMessage': instance.errorMessage,
|
||||
'billProductName': instance.billProductName,
|
||||
'creditName': instance.creditName,
|
||||
'creditEmail': instance.creditEmail,
|
||||
'productUid': instance.productUid,
|
||||
'targetUrl': instance.targetUrl,
|
||||
'additionalData': const AdditionalDataJsonConverter().toJson(
|
||||
instance.additionalData,
|
||||
),
|
||||
};
|
||||
|
||||
Value? _$JsonConverterFromJson<Json, Value>(
|
||||
Object? json,
|
||||
Value? Function(Json json) fromJson,
|
||||
) => json == null ? null : fromJson(json as Json);
|
||||
|
||||
Json? _$JsonConverterToJson<Json, Value>(
|
||||
Value? value,
|
||||
Json? Function(Value value) toJson,
|
||||
) => value == null ? null : toJson(value);
|
||||
Reference in New Issue
Block a user