33 lines
972 B
Dart
33 lines
972 B
Dart
import 'package:json_annotation/json_annotation.dart';
|
|
part 'debt_person.g.dart';
|
|
|
|
@JsonSerializable()
|
|
|
|
/// Represents a single person in a debt scenario
|
|
class DebtPerson {
|
|
/// Represents a single person in a debt scenario
|
|
DebtPerson({required this.id, required this.name, this.bankAccount});
|
|
|
|
/// Default [DebtPerson] instance for json_serializable
|
|
factory DebtPerson.unknownPerson() => DebtPerson(id: -1, name: "Unknown");
|
|
|
|
/// Generates a class instance from a Map
|
|
factory DebtPerson.fromJson(Map<String, dynamic> json) =>
|
|
_$DebtPersonFromJson(json);
|
|
|
|
/// Converts the data in this instance into a Map
|
|
Map<String, dynamic> toJson() => _$DebtPersonToJson(this);
|
|
|
|
/// Unique identifier
|
|
@JsonKey(required: true, disallowNullValue: true)
|
|
final int id;
|
|
|
|
/// Identifier that the user will see
|
|
@JsonKey(defaultValue: "Unknown")
|
|
String name;
|
|
|
|
/// Person's bank account
|
|
///
|
|
/// Used to generate a QR code payment
|
|
String? bankAccount;
|
|
}
|