Working auth and added shared notes
This commit is contained in:
@@ -8,6 +8,7 @@ part 'budget.g.dart';
|
||||
class Budget {
|
||||
const Budget({
|
||||
this.id,
|
||||
required this.familyId,
|
||||
required this.name,
|
||||
required this.createdAt,
|
||||
required this.updatedAt,
|
||||
@@ -15,6 +16,7 @@ class Budget {
|
||||
});
|
||||
|
||||
final int? id;
|
||||
final int familyId;
|
||||
final String name;
|
||||
|
||||
@JsonKey(fromJson: boolFromJson, toJson: boolToJson)
|
||||
|
||||
@@ -8,6 +8,7 @@ part of 'budget.dart';
|
||||
|
||||
Budget _$BudgetFromJson(Map<String, dynamic> json) => Budget(
|
||||
id: json['id'] as int?,
|
||||
familyId: json['family_id'] as int,
|
||||
name: json['name'] as String,
|
||||
createdAt: dateFromJson(json['created_at'] as int),
|
||||
updatedAt: dateFromJson(json['updated_at'] as int),
|
||||
@@ -16,6 +17,7 @@ Budget _$BudgetFromJson(Map<String, dynamic> json) => Budget(
|
||||
|
||||
Map<String, dynamic> _$BudgetToJson(Budget instance) => <String, dynamic>{
|
||||
'id': instance.id,
|
||||
'family_id': instance.familyId,
|
||||
'name': instance.name,
|
||||
'hide': boolToJson(instance.hide),
|
||||
'created_at': dateToJson(instance.createdAt),
|
||||
|
||||
@@ -8,13 +8,14 @@ part 'family_model.g.dart';
|
||||
class FamilyModel {
|
||||
const FamilyModel({
|
||||
required this.id,
|
||||
required this.budgetId,
|
||||
required this.code,
|
||||
required this.createdAt,
|
||||
required this.updatedAt,
|
||||
this.hide = false,
|
||||
});
|
||||
|
||||
final int id, budgetId;
|
||||
final int id;
|
||||
final String? code;
|
||||
|
||||
@JsonKey(fromJson: boolFromJson, toJson: boolToJson)
|
||||
final bool hide;
|
||||
|
||||
@@ -8,7 +8,7 @@ part of 'family_model.dart';
|
||||
|
||||
FamilyModel _$FamilyModelFromJson(Map<String, dynamic> json) => FamilyModel(
|
||||
id: json['id'] as int,
|
||||
budgetId: json['budget_id'] as int,
|
||||
code: json['code'] 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),
|
||||
@@ -17,7 +17,7 @@ FamilyModel _$FamilyModelFromJson(Map<String, dynamic> json) => FamilyModel(
|
||||
Map<String, dynamic> _$FamilyModelToJson(FamilyModel instance) =>
|
||||
<String, dynamic>{
|
||||
'id': instance.id,
|
||||
'budget_id': instance.budgetId,
|
||||
'code': instance.code,
|
||||
'hide': boolToJson(instance.hide),
|
||||
'created_at': dateToJson(instance.createdAt),
|
||||
'updated_at': dateToJson(instance.updatedAt),
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import 'dart:convert';
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
@@ -8,27 +9,32 @@ part 'shared_note.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class SharedNote {
|
||||
const SharedNote({
|
||||
SharedNote({
|
||||
this.id,
|
||||
required this.familyId,
|
||||
required this.createdByUserId,
|
||||
required this.content,
|
||||
required this.title,
|
||||
this.color,
|
||||
this.createdAt,
|
||||
this.updatedAt,
|
||||
required this.tagIds,
|
||||
this.isMarkdown = false,
|
||||
this.hide = false,
|
||||
});
|
||||
|
||||
final int? id;
|
||||
final int familyId, createdByUserId;
|
||||
final String content;
|
||||
String content, title;
|
||||
|
||||
@JsonKey(fromJson: _tagIdsFromJson, toJson: _tagIdsToJson)
|
||||
List<int> tagIds;
|
||||
|
||||
@JsonKey(fromJson: optionalColorFromJson, toJson: optionalColorToJson)
|
||||
final Color? color;
|
||||
Color? color;
|
||||
|
||||
@JsonKey(fromJson: boolFromJson, toJson: boolToJson)
|
||||
final bool isMarkdown;
|
||||
bool isMarkdown;
|
||||
|
||||
@JsonKey(fromJson: boolFromJson, toJson: boolToJson)
|
||||
final bool hide;
|
||||
@@ -43,4 +49,20 @@ class SharedNote {
|
||||
_$SharedNoteFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$SharedNoteToJson(this);
|
||||
|
||||
factory SharedNote.copy(SharedNote note) =>
|
||||
SharedNote.fromJson(note.toJson());
|
||||
}
|
||||
|
||||
List<int> _tagIdsFromJson(String tagJson) {
|
||||
final tagsMap = jsonDecode(tagJson) as List<dynamic>;
|
||||
return tagsMap
|
||||
.map(
|
||||
(e) => int.parse(e),
|
||||
)
|
||||
.toList();
|
||||
}
|
||||
|
||||
String _tagIdsToJson(List<int> tagIds) {
|
||||
return jsonEncode(tagIds);
|
||||
}
|
||||
|
||||
@@ -11,9 +11,11 @@ SharedNote _$SharedNoteFromJson(Map<String, dynamic> json) => SharedNote(
|
||||
familyId: json['family_id'] as int,
|
||||
createdByUserId: json['created_by_user_id'] as int,
|
||||
content: json['content'] as String,
|
||||
title: json['title'] as String,
|
||||
color: optionalColorFromJson(json['color'] as String?),
|
||||
createdAt: dateFromJson(json['created_at'] as int),
|
||||
updatedAt: dateFromJson(json['updated_at'] as int),
|
||||
tagIds: _tagIdsFromJson(json['tag_ids'] as String),
|
||||
isMarkdown: json['is_markdown'] == null
|
||||
? false
|
||||
: boolFromJson(json['is_markdown'] as int),
|
||||
@@ -26,6 +28,8 @@ Map<String, dynamic> _$SharedNoteToJson(SharedNote instance) =>
|
||||
'family_id': instance.familyId,
|
||||
'created_by_user_id': instance.createdByUserId,
|
||||
'content': instance.content,
|
||||
'title': instance.title,
|
||||
'tag_ids': _tagIdsToJson(instance.tagIds),
|
||||
'color': optionalColorToJson(instance.color),
|
||||
'is_markdown': boolToJson(instance.isMarkdown),
|
||||
'hide': boolToJson(instance.hide),
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
import '../global/utils.dart';
|
||||
|
||||
part 'tag.g.dart';
|
||||
|
||||
enum TagType {
|
||||
note,
|
||||
}
|
||||
|
||||
@JsonSerializable()
|
||||
class Tag {
|
||||
const Tag({
|
||||
this.id,
|
||||
required this.familyId,
|
||||
required this.createdByUserId,
|
||||
required this.name,
|
||||
required this.type,
|
||||
this.createdAt,
|
||||
this.updatedAt,
|
||||
this.hide = false,
|
||||
});
|
||||
|
||||
final int? id;
|
||||
final int familyId, createdByUserId;
|
||||
final String name;
|
||||
final TagType type;
|
||||
|
||||
@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 Tag.fromJson(Map<String, dynamic> json) => _$TagFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$TagToJson(this);
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'tag.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
Tag _$TagFromJson(Map<String, dynamic> json) => Tag(
|
||||
id: json['id'] as int?,
|
||||
familyId: json['family_id'] as int,
|
||||
createdByUserId: json['created_by_user_id'] as int,
|
||||
name: json['name'] as String,
|
||||
type: $enumDecode(_$TagTypeEnumMap, json['type']),
|
||||
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> _$TagToJson(Tag instance) => <String, dynamic>{
|
||||
'id': instance.id,
|
||||
'family_id': instance.familyId,
|
||||
'created_by_user_id': instance.createdByUserId,
|
||||
'name': instance.name,
|
||||
'type': _$TagTypeEnumMap[instance.type]!,
|
||||
'hide': boolToJson(instance.hide),
|
||||
'created_at': dateToJson(instance.createdAt),
|
||||
'updated_at': dateToJson(instance.updatedAt),
|
||||
};
|
||||
|
||||
const _$TagTypeEnumMap = {
|
||||
TagType.note: 'note',
|
||||
};
|
||||
@@ -0,0 +1,27 @@
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
import '../global/utils.dart';
|
||||
|
||||
part 'token.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class Token {
|
||||
const Token({
|
||||
required this.userId,
|
||||
required this.familyId,
|
||||
required this.generatedAt,
|
||||
required this.expiresAt,
|
||||
});
|
||||
|
||||
final int familyId, userId;
|
||||
|
||||
@JsonKey(fromJson: dateFromJson, toJson: dateToJson)
|
||||
final DateTime generatedAt;
|
||||
|
||||
@JsonKey(fromJson: dateFromJson, toJson: dateToJson)
|
||||
final DateTime expiresAt;
|
||||
|
||||
factory Token.fromJson(Map<String, dynamic> json) => _$TokenFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$TokenToJson(this);
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'token.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
Token _$TokenFromJson(Map<String, dynamic> json) => Token(
|
||||
userId: json['user_id'] as int,
|
||||
familyId: json['family_id'] as int,
|
||||
generatedAt: dateFromJson(json['generated_at'] as int),
|
||||
expiresAt: dateFromJson(json['expires_at'] as int),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$TokenToJson(Token instance) => <String, dynamic>{
|
||||
'family_id': instance.familyId,
|
||||
'user_id': instance.userId,
|
||||
'generated_at': dateToJson(instance.generatedAt),
|
||||
'expires_at': dateToJson(instance.expiresAt),
|
||||
};
|
||||
@@ -11,6 +11,8 @@ class User {
|
||||
required this.name,
|
||||
required this.familyId,
|
||||
required this.budgetId,
|
||||
this.email,
|
||||
this.username,
|
||||
this.createdAt,
|
||||
this.updatedAt,
|
||||
this.lastActivityAt,
|
||||
@@ -20,6 +22,7 @@ class User {
|
||||
final int? id;
|
||||
final int familyId, budgetId;
|
||||
final String name;
|
||||
final String? username, email;
|
||||
|
||||
@JsonKey(fromJson: boolFromJson, toJson: boolToJson)
|
||||
final bool hide;
|
||||
|
||||
@@ -11,6 +11,8 @@ User _$UserFromJson(Map<String, dynamic> json) => User(
|
||||
name: json['name'] as String,
|
||||
familyId: json['family_id'] as int,
|
||||
budgetId: json['budget_id'] as int,
|
||||
email: json['email'] as String?,
|
||||
username: json['username'] as String?,
|
||||
createdAt: dateFromJson(json['created_at'] as int),
|
||||
updatedAt: dateFromJson(json['updated_at'] as int),
|
||||
lastActivityAt: dateFromJson(json['last_activity_at'] as int),
|
||||
@@ -22,6 +24,8 @@ Map<String, dynamic> _$UserToJson(User instance) => <String, dynamic>{
|
||||
'family_id': instance.familyId,
|
||||
'budget_id': instance.budgetId,
|
||||
'name': instance.name,
|
||||
'username': instance.username,
|
||||
'email': instance.email,
|
||||
'hide': boolToJson(instance.hide),
|
||||
'created_at': dateToJson(instance.createdAt),
|
||||
'updated_at': dateToJson(instance.updatedAt),
|
||||
|
||||
Reference in New Issue
Block a user