Line data Source code
1 : // Copyright 2024 The terCAD team. All rights reserved.
2 : // Use of this source code is governed by a CC BY-NC-ND 4.0 license that can be found in the LICENSE file.
3 :
4 : import 'package:app_finance/_classes/herald/app_locale.dart';
5 : import 'package:app_finance/_classes/structure/abstract_app_data.dart';
6 : import 'package:app_finance/_classes/storage/app_data.dart';
7 : import 'package:app_finance/_configs/automation_type.dart';
8 :
9 : class PaymentAppData extends AbstractAppData {
10 : Map<String, dynamic> data;
11 : int days;
12 :
13 0 : PaymentAppData({
14 : required super.title,
15 : required this.data,
16 : super.uuid,
17 : super.updatedAt,
18 : super.hidden,
19 : this.days = 1,
20 : });
21 :
22 0 : @override
23 : String getClassName() => 'PaymentAppData';
24 :
25 0 : @override
26 : AppDataType getType() => AppDataType.payments;
27 :
28 0 : @override
29 : PaymentAppData clone() {
30 0 : return PaymentAppData(
31 0 : title: super.title,
32 0 : uuid: super.uuid,
33 0 : updatedAt: super.updatedAt,
34 0 : hidden: super.hidden,
35 0 : data: data,
36 0 : days: days,
37 : );
38 : }
39 :
40 0 : factory PaymentAppData.fromJson(Map<String, dynamic> json) {
41 0 : return PaymentAppData(
42 0 : title: json['title'],
43 0 : uuid: json['uuid'],
44 0 : updatedAt: DateTime.parse(json['updatedAt']),
45 0 : hidden: json['hidden'],
46 0 : data: json['data'],
47 0 : days: json['days'] ?? 1,
48 : );
49 : }
50 :
51 0 : @override
52 0 : Map<String, dynamic> toJson() => {
53 0 : 'uuid': uuid,
54 0 : 'title': title,
55 0 : 'updatedAt': updatedAt.toIso8601String(),
56 0 : 'hidden': hidden,
57 0 : 'data': data,
58 0 : 'days': days,
59 : };
60 :
61 0 : @override
62 : String get description =>
63 0 : title == AppAutomationType.days.name ? AppLocale.labels.afterNDays(days) : AutomationType.getLabel(title);
64 : }
|