Added working edit transaction

This commit is contained in:
Nathan Anderson
2023-07-22 21:29:32 -06:00
parent eba628bb4c
commit 18aad2b3d5
28 changed files with 1959 additions and 430 deletions
+3
View File
@@ -11,11 +11,14 @@ class Budget {
required this.name,
required this.createdAt,
required this.updatedAt,
this.hide = false,
});
final int? id;
final String name;
@JsonKey(fromJson: boolFromJson, toJson: boolToJson)
final bool hide;
@JsonKey(fromJson: dateFromJson, toJson: dateToJson)
final DateTime createdAt;
@JsonKey(fromJson: dateFromJson, toJson: dateToJson)
+2
View File
@@ -11,11 +11,13 @@ Budget _$BudgetFromJson(Map<String, dynamic> json) => Budget(
name: json['name'] as String,
createdAt: dateFromJson(json['created_at'] as int),
updatedAt: dateFromJson(json['updated_at'] as int),
hide: json['hide'] == null ? false : boolFromJson(json['hide'] as int),
);
Map<String, dynamic> _$BudgetToJson(Budget instance) => <String, dynamic>{
'id': instance.id,
'name': instance.name,
'hide': boolToJson(instance.hide),
'created_at': dateToJson(instance.createdAt),
'updated_at': dateToJson(instance.updatedAt),
};
+10 -2
View File
@@ -13,8 +13,10 @@ class BudgetCategory {
required this.budgetId,
required this.name,
required this.color,
required this.createdAt,
this.createdAt,
this.updatedAt,
required this.amount,
this.hide = false,
});
final int budgetId;
@@ -22,11 +24,17 @@ class BudgetCategory {
final String name;
final double amount;
@JsonKey(fromJson: boolFromJson, toJson: boolToJson)
final bool hide;
@JsonKey(fromJson: colorFromJson, toJson: colorToJson)
final Color color;
@JsonKey(fromJson: dateFromJson, toJson: dateToJson)
final DateTime createdAt;
final DateTime? createdAt;
@JsonKey(fromJson: dateFromJson, toJson: dateToJson)
final DateTime? updatedAt;
factory BudgetCategory.fromJson(Map<String, dynamic> json) =>
_$BudgetCategoryFromJson(json);
+4
View File
@@ -13,7 +13,9 @@ BudgetCategory _$BudgetCategoryFromJson(Map<String, dynamic> json) =>
name: json['name'] as String,
color: colorFromJson(json['color'] as String),
createdAt: dateFromJson(json['created_at'] as int),
updatedAt: dateFromJson(json['updated_at'] as int),
amount: (json['amount'] as num).toDouble(),
hide: json['hide'] == null ? false : boolFromJson(json['hide'] as int),
);
Map<String, dynamic> _$BudgetCategoryToJson(BudgetCategory instance) =>
@@ -22,6 +24,8 @@ Map<String, dynamic> _$BudgetCategoryToJson(BudgetCategory instance) =>
'id': instance.id,
'name': instance.name,
'amount': instance.amount,
'hide': boolToJson(instance.hide),
'color': colorToJson(instance.color),
'created_at': dateToJson(instance.createdAt),
'updated_at': dateToJson(instance.updatedAt),
};
+3
View File
@@ -11,10 +11,13 @@ class FamilyModel {
required this.budgetId,
required this.createdAt,
required this.updatedAt,
this.hide = false,
});
final int id, budgetId;
@JsonKey(fromJson: boolFromJson, toJson: boolToJson)
final bool hide;
@JsonKey(fromJson: dateFromJson, toJson: dateToJson)
final DateTime createdAt;
@JsonKey(fromJson: dateFromJson, toJson: dateToJson)
+2
View File
@@ -11,12 +11,14 @@ FamilyModel _$FamilyModelFromJson(Map<String, dynamic> json) => FamilyModel(
budgetId: json['budget_id'] as int,
createdAt: dateFromJson(json['created_at'] as int),
updatedAt: dateFromJson(json['updated_at'] as int),
hide: json['hide'] == null ? false : boolFromJson(json['hide'] as int),
);
Map<String, dynamic> _$FamilyModelToJson(FamilyModel instance) =>
<String, dynamic>{
'id': instance.id,
'budget_id': instance.budgetId,
'hide': boolToJson(instance.hide),
'created_at': dateToJson(instance.createdAt),
'updated_at': dateToJson(instance.updatedAt),
};
+46
View File
@@ -0,0 +1,46 @@
import 'dart:ui';
import 'package:json_annotation/json_annotation.dart';
import '../global/utils.dart';
part 'shared_note.g.dart';
@JsonSerializable()
class SharedNote {
const SharedNote({
this.id,
required this.familyId,
required this.createdByUserId,
required this.content,
this.color,
this.createdAt,
this.updatedAt,
this.isMarkdown = false,
this.hide = false,
});
final int? id;
final int familyId, createdByUserId;
final String content;
@JsonKey(fromJson: optionalColorFromJson, toJson: optionalColorToJson)
final Color? color;
@JsonKey(fromJson: boolFromJson, toJson: boolToJson)
final bool isMarkdown;
@JsonKey(fromJson: boolFromJson, toJson: boolToJson)
final bool hide;
@JsonKey(fromJson: dateFromJson, toJson: dateToJson)
final DateTime? createdAt;
@JsonKey(fromJson: dateFromJson, toJson: dateToJson)
final DateTime? updatedAt;
factory SharedNote.fromJson(Map<String, dynamic> json) =>
_$SharedNoteFromJson(json);
Map<String, dynamic> toJson() => _$SharedNoteToJson(this);
}
+34
View File
@@ -0,0 +1,34 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'shared_note.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
SharedNote _$SharedNoteFromJson(Map<String, dynamic> json) => SharedNote(
id: json['id'] as int?,
familyId: json['family_id'] as int,
createdByUserId: json['created_by_user_id'] as int,
content: json['content'] as String,
color: optionalColorFromJson(json['color'] as String?),
createdAt: dateFromJson(json['created_at'] as int),
updatedAt: dateFromJson(json['updated_at'] as int),
isMarkdown: json['is_markdown'] == null
? false
: boolFromJson(json['is_markdown'] as int),
hide: json['hide'] == null ? false : boolFromJson(json['hide'] as int),
);
Map<String, dynamic> _$SharedNoteToJson(SharedNote instance) =>
<String, dynamic>{
'id': instance.id,
'family_id': instance.familyId,
'created_by_user_id': instance.createdByUserId,
'content': instance.content,
'color': optionalColorToJson(instance.color),
'is_markdown': boolToJson(instance.isMarkdown),
'hide': boolToJson(instance.hide),
'created_at': dateToJson(instance.createdAt),
'updated_at': dateToJson(instance.updatedAt),
};
+30 -5
View File
@@ -14,18 +14,25 @@ class Transaction {
const Transaction({
this.id,
required this.amount,
required this.transactionType,
required this.type,
required this.budgetId,
required this.budgetCategoryId,
this.budgetCategoryId,
required this.addedByUserId,
required this.date,
this.memo,
this.createdAt,
this.updatedAt,
this.hide = false,
});
final int? id;
final int budgetId, budgetCategoryId, addedByUserId;
final int? id, budgetCategoryId;
final int budgetId, addedByUserId;
final double amount;
final TransactionType transactionType;
final String? memo;
final TransactionType type;
@JsonKey(fromJson: boolFromJson, toJson: boolToJson)
final bool hide;
@JsonKey(fromJson: dateFromJson, toJson: dateToJson)
final DateTime date;
@@ -33,8 +40,26 @@ class Transaction {
@JsonKey(fromJson: dateFromJson, toJson: dateToJson)
final DateTime? createdAt;
@JsonKey(fromJson: dateFromJson, toJson: dateToJson)
final DateTime? updatedAt;
factory Transaction.fromJson(Map<String, dynamic> json) =>
_$TransactionFromJson(json);
factory Transaction.copyWith(Transaction trans, Map<String, dynamic> data) =>
Transaction(
id: data['id'] ?? trans.id,
amount: data['amount'] ?? trans.amount,
type: data['type'] ?? trans.type,
budgetId: data['budget_id'] ?? trans.budgetId,
budgetCategoryId: data['budget_category_id'] ?? trans.budgetCategoryId,
addedByUserId: data['added_by_user_id'] ?? trans.addedByUserId,
date: data['date'] ?? trans.date,
memo: data['memo'] ?? trans.memo,
createdAt: data['created_at'] ?? trans.createdAt,
updatedAt: data['updated_at'] ?? trans.updatedAt,
hide: data['hide'] ?? trans.hide,
);
Map<String, dynamic> toJson() => _$TransactionToJson(this);
}
+10 -5
View File
@@ -9,25 +9,30 @@ part of 'transaction_model.dart';
Transaction _$TransactionFromJson(Map<String, dynamic> json) => Transaction(
id: json['id'] as int?,
amount: (json['amount'] as num).toDouble(),
transactionType:
$enumDecode(_$TransactionTypeEnumMap, json['transaction_type']),
type: $enumDecode(_$TransactionTypeEnumMap, json['type']),
budgetId: json['budget_id'] as int,
budgetCategoryId: json['budget_category_id'] as int,
budgetCategoryId: json['budget_category_id'] as int?,
addedByUserId: json['added_by_user_id'] as int,
date: dateFromJson(json['date'] as int),
memo: json['memo'] as String?,
createdAt: dateFromJson(json['created_at'] as int),
updatedAt: dateFromJson(json['updated_at'] as int),
hide: json['hide'] == null ? false : boolFromJson(json['hide'] as int),
);
Map<String, dynamic> _$TransactionToJson(Transaction instance) =>
<String, dynamic>{
'id': instance.id,
'budget_id': instance.budgetId,
'budget_category_id': instance.budgetCategoryId,
'budget_id': instance.budgetId,
'added_by_user_id': instance.addedByUserId,
'amount': instance.amount,
'transaction_type': _$TransactionTypeEnumMap[instance.transactionType]!,
'memo': instance.memo,
'type': _$TransactionTypeEnumMap[instance.type]!,
'hide': boolToJson(instance.hide),
'date': dateToJson(instance.date),
'created_at': dateToJson(instance.createdAt),
'updated_at': dateToJson(instance.updatedAt),
};
const _$TransactionTypeEnumMap = {
+3
View File
@@ -14,12 +14,15 @@ class User {
this.createdAt,
this.updatedAt,
this.lastActivityAt,
this.hide = false,
});
final int? id;
final int familyId, budgetId;
final String name;
@JsonKey(fromJson: boolFromJson, toJson: boolToJson)
final bool hide;
@JsonKey(fromJson: dateFromJson, toJson: dateToJson)
final DateTime? createdAt;
@JsonKey(fromJson: dateFromJson, toJson: dateToJson)
+2
View File
@@ -14,6 +14,7 @@ User _$UserFromJson(Map<String, dynamic> json) => User(
createdAt: dateFromJson(json['created_at'] as int),
updatedAt: dateFromJson(json['updated_at'] as int),
lastActivityAt: dateFromJson(json['last_activity_at'] as int),
hide: json['hide'] == null ? false : boolFromJson(json['hide'] as int),
);
Map<String, dynamic> _$UserToJson(User instance) => <String, dynamic>{
@@ -21,6 +22,7 @@ Map<String, dynamic> _$UserToJson(User instance) => <String, dynamic>{
'family_id': instance.familyId,
'budget_id': instance.budgetId,
'name': instance.name,
'hide': boolToJson(instance.hide),
'created_at': dateToJson(instance.createdAt),
'updated_at': dateToJson(instance.updatedAt),
'last_activity_at': dateToJson(instance.lastActivityAt),