104 lines
4.1 KiB
Dart
104 lines
4.1 KiB
Dart
class MarketplaceSettlement {
|
|
final int? id;
|
|
final int? userId;
|
|
final int invoiceId;
|
|
final int? salesChannelId;
|
|
final String? channelName;
|
|
final String? settlementRef;
|
|
final DateTime settlementDate;
|
|
final double grossAmount;
|
|
final double commissionFee;
|
|
final double shippingFee;
|
|
final double otherFees;
|
|
final double feeGst;
|
|
final double tcsGstAmount;
|
|
final double tdsAmount;
|
|
final double totalDeductions;
|
|
final double netPayoutAmount;
|
|
final int? payoutWalletId;
|
|
final String status;
|
|
final String? notes;
|
|
final DateTime? createdAt;
|
|
final DateTime? updatedAt;
|
|
|
|
MarketplaceSettlement({
|
|
this.id,
|
|
this.userId,
|
|
required this.invoiceId,
|
|
this.salesChannelId,
|
|
this.channelName,
|
|
this.settlementRef,
|
|
required this.settlementDate,
|
|
required this.grossAmount,
|
|
this.commissionFee = 0.0,
|
|
this.shippingFee = 0.0,
|
|
this.otherFees = 0.0,
|
|
this.feeGst = 0.0,
|
|
this.tcsGstAmount = 0.0,
|
|
this.tdsAmount = 0.0,
|
|
required this.totalDeductions,
|
|
required this.netPayoutAmount,
|
|
this.payoutWalletId,
|
|
this.status = 'SETTLED',
|
|
this.notes,
|
|
this.createdAt,
|
|
this.updatedAt,
|
|
});
|
|
|
|
factory MarketplaceSettlement.fromJson(Map<String, dynamic> json) {
|
|
return MarketplaceSettlement(
|
|
id: json['id'],
|
|
userId: json['userId'] ?? json['user_id'],
|
|
invoiceId: json['invoiceId'] ?? json['invoice_id'] ?? 0,
|
|
salesChannelId: json['salesChannelId'] ?? json['sales_channel_id'],
|
|
channelName: json['channelName'] ?? json['channel_name'],
|
|
settlementRef: json['settlementRef'] ?? json['settlement_ref'],
|
|
settlementDate: json['settlementDate'] != null
|
|
? DateTime.parse(json['settlementDate'])
|
|
: (json['settlement_date'] != null ? DateTime.parse(json['settlement_date']) : DateTime.now()),
|
|
grossAmount: (json['grossAmount'] ?? json['gross_amount'] as num?)?.toDouble() ?? 0.0,
|
|
commissionFee: (json['commissionFee'] ?? json['commission_fee'] as num?)?.toDouble() ?? 0.0,
|
|
shippingFee: (json['shippingFee'] ?? json['shipping_fee'] as num?)?.toDouble() ?? 0.0,
|
|
otherFees: (json['otherFees'] ?? json['other_fees'] as num?)?.toDouble() ?? 0.0,
|
|
feeGst: (json['feeGst'] ?? json['fee_gst'] as num?)?.toDouble() ?? 0.0,
|
|
tcsGstAmount: (json['tcsGstAmount'] ?? json['tcs_gst_amount'] as num?)?.toDouble() ?? 0.0,
|
|
tdsAmount: (json['tdsAmount'] ?? json['tds_amount'] as num?)?.toDouble() ?? 0.0,
|
|
totalDeductions: (json['totalDeductions'] ?? json['total_deductions'] as num?)?.toDouble() ?? 0.0,
|
|
netPayoutAmount: (json['netPayoutAmount'] ?? json['net_payout_amount'] as num?)?.toDouble() ?? 0.0,
|
|
payoutWalletId: json['payoutWalletId'] ?? json['payout_wallet_id'],
|
|
status: json['status'] ?? 'SETTLED',
|
|
notes: json['notes'],
|
|
createdAt: json['createdAt'] != null
|
|
? DateTime.parse(json['createdAt'])
|
|
: (json['created_at'] != null ? DateTime.parse(json['created_at']) : null),
|
|
updatedAt: json['updatedAt'] != null
|
|
? DateTime.parse(json['updatedAt'])
|
|
: (json['updated_at'] != null ? DateTime.parse(json['updated_at']) : null),
|
|
);
|
|
}
|
|
|
|
Map<String, dynamic> toJson() {
|
|
final Map<String, dynamic> data = {};
|
|
if (id != null) data['id'] = id;
|
|
if (userId != null) data['userId'] = userId;
|
|
data['invoiceId'] = invoiceId;
|
|
if (salesChannelId != null) data['salesChannelId'] = salesChannelId;
|
|
if (channelName != null) data['channelName'] = channelName;
|
|
if (settlementRef != null) data['settlementRef'] = settlementRef;
|
|
data['settlementDate'] = settlementDate.toIso8601String().split('T')[0];
|
|
data['grossAmount'] = grossAmount;
|
|
data['commissionFee'] = commissionFee;
|
|
data['shippingFee'] = shippingFee;
|
|
data['otherFees'] = otherFees;
|
|
data['feeGst'] = feeGst;
|
|
data['tcsGstAmount'] = tcsGstAmount;
|
|
data['tdsAmount'] = tdsAmount;
|
|
data['totalDeductions'] = totalDeductions;
|
|
data['netPayoutAmount'] = netPayoutAmount;
|
|
if (payoutWalletId != null) data['payoutWalletId'] = payoutWalletId;
|
|
data['status'] = status;
|
|
if (notes != null) data['notes'] = notes;
|
|
return data;
|
|
}
|
|
}
|