import 'package:json_annotation/json_annotation.dart';
import 'package:pshared/data/dto/money.dart';

part 'operation_money.g.dart';


@JsonSerializable()
class PaymentOperationMoneySnapshotDTO {
  final MoneyDTO? amount;
  final MoneyDTO? convertedAmount;

  const PaymentOperationMoneySnapshotDTO({this.amount, this.convertedAmount});

  factory PaymentOperationMoneySnapshotDTO.fromJson(
    Map<String, dynamic> json,
  ) => _$PaymentOperationMoneySnapshotDTOFromJson(json);
  Map<String, dynamic> toJson() =>
      _$PaymentOperationMoneySnapshotDTOToJson(this);
}

@JsonSerializable()
class PaymentOperationMoneyDTO {
  final PaymentOperationMoneySnapshotDTO? planned;
  final PaymentOperationMoneySnapshotDTO? executed;

  const PaymentOperationMoneyDTO({this.planned, this.executed});

  factory PaymentOperationMoneyDTO.fromJson(Map<String, dynamic> json) =>
      _$PaymentOperationMoneyDTOFromJson(json);
  Map<String, dynamic> toJson() => _$PaymentOperationMoneyDTOToJson(this);
}
