import 'package:json_annotation/json_annotation.dart';

import 'package:pshared/data/dto/wallet/asset.dart';

part 'wallet.g.dart';


@JsonSerializable()
class WalletDTO {
  final String walletRef;
  final String organizationRef;
  final String ownerRef;
  final WalletAssetDTO asset;
  final String depositAddress;
  final String status;
  final String name;
  final String? description;
  final Map<String, String>? metadata;
  final String? createdAt;
  final String? updatedAt;

  const WalletDTO({
    required this.walletRef,
    required this.organizationRef,
    required this.ownerRef,
    required this.asset,
    required this.depositAddress,
    required this.status,
    required this.name,
    this.description,
    this.metadata,
    this.createdAt,
    this.updatedAt,
  });

  factory WalletDTO.fromJson(Map<String, dynamic> json) => _$WalletDTOFromJson(json);
  Map<String, dynamic> toJson() => _$WalletDTOToJson(this);
}
