import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:island/models/user.dart'; part 'wallet.freezed.dart'; part 'wallet.g.dart'; @freezed sealed class SnWallet with _$SnWallet { const factory SnWallet({ required String id, required List pockets, required String accountId, required SnAccount? account, required DateTime createdAt, required DateTime updatedAt, required DateTime? deletedAt, }) = _SnWallet; factory SnWallet.fromJson(Map json) => _$SnWalletFromJson(json); } @freezed sealed class SnWalletPocket with _$SnWalletPocket { const factory SnWalletPocket({ required String id, required String currency, required double amount, required String walletId, required DateTime createdAt, required DateTime updatedAt, required DateTime? deletedAt, }) = _SnWalletPocket; factory SnWalletPocket.fromJson(Map json) => _$SnWalletPocketFromJson(json); } @freezed sealed class SnTransaction with _$SnTransaction { const factory SnTransaction({ required String id, required String currency, required double amount, required String? remarks, required int type, required String? payerWalletId, required SnWallet? payerWallet, required String? payeeWalletId, required SnWallet? payeeWallet, required DateTime createdAt, required DateTime updatedAt, required DateTime? deletedAt, }) = _SnTransaction; factory SnTransaction.fromJson(Map json) => _$SnTransactionFromJson(json); } @freezed sealed class SnWalletSubscription with _$SnWalletSubscription { const factory SnWalletSubscription({ required String id, required DateTime begunAt, required DateTime endedAt, required String identifier, required bool isActive, required bool isFreeTrial, required int status, required String paymentMethod, required Map paymentDetails, required double basePrice, required String? couponId, required dynamic coupon, required DateTime renewalAt, required String accountId, required SnAccount? account, required bool isAvailable, required double finalPrice, required DateTime createdAt, required DateTime updatedAt, required DateTime? deletedAt, }) = _SnWalletSubscription; factory SnWalletSubscription.fromJson(Map json) => _$SnWalletSubscriptionFromJson(json); }