Skip to content

Commit 9623816

Browse files
pr feedback
1 parent beecccd commit 9623816

File tree

8 files changed

+344
-508
lines changed

8 files changed

+344
-508
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"_meta":{"description":"This file contains a serialized version of schema entities for drift.","version":"1.2.0"},"options":{"store_date_time_values_as_text":true},"entities":[{"id":0,"references":[],"type":"table","data":{"name":"user_entity","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"name","getter_name":"name","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"is_admin","getter_name":"isAdmin","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"is_admin\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"is_admin\" IN (0, 1))"},"default_dart":"const CustomExpression('0')","default_client_dart":null,"dsl_features":[]},{"name":"email","getter_name":"email","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"profile_image_path","getter_name":"profileImagePath","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":"const CustomExpression('\\'\\'')","default_client_dart":null,"dsl_features":[]},{"name":"updated_at","getter_name":"updatedAt","moor_type":"dateTime","nullable":false,"customConstraints":null,"default_dart":"const CustomExpression('CURRENT_TIMESTAMP')","default_client_dart":null,"dsl_features":[]},{"name":"quota_size_in_bytes","getter_name":"quotaSizeInBytes","moor_type":"int","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"quota_usage_in_bytes","getter_name":"quotaUsageInBytes","moor_type":"int","nullable":false,"customConstraints":null,"default_dart":"const CustomExpression('0')","default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[],"explicit_pk":["id"]}},{"id":1,"references":[0],"type":"table","data":{"name":"user_metadata_entity","was_declared_in_moor":false,"columns":[{"name":"user_id","getter_name":"userId","moor_type":"string","nullable":false,"customConstraints":null,"defaultConstraints":"REFERENCES user_entity (id) ON DELETE CASCADE","dialectAwareDefaultConstraints":{"sqlite":"REFERENCES user_entity (id) ON DELETE CASCADE"},"default_dart":null,"default_client_dart":null,"dsl_features":["unknown"]},{"name":"preferences","getter_name":"preferences","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"userPreferenceConverter","dart_type_name":"UserPreferences"}}],"is_virtual":false,"without_rowid":false,"constraints":[],"explicit_pk":["user_id"]}},{"id":2,"references":[0],"type":"table","data":{"name":"partner_entity","was_declared_in_moor":false,"columns":[{"name":"shared_by_id","getter_name":"sharedById","moor_type":"string","nullable":false,"customConstraints":null,"defaultConstraints":"REFERENCES user_entity (id) ON DELETE CASCADE","dialectAwareDefaultConstraints":{"sqlite":"REFERENCES user_entity (id) ON DELETE CASCADE"},"default_dart":null,"default_client_dart":null,"dsl_features":["unknown"]},{"name":"shared_with_id","getter_name":"sharedWithId","moor_type":"string","nullable":false,"customConstraints":null,"defaultConstraints":"REFERENCES user_entity (id) ON DELETE CASCADE","dialectAwareDefaultConstraints":{"sqlite":"REFERENCES user_entity (id) ON DELETE CASCADE"},"default_dart":null,"default_client_dart":null,"dsl_features":["unknown"]},{"name":"in_timeline","getter_name":"inTimeline","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"in_timeline\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"in_timeline\" IN (0, 1))"},"default_dart":"const CustomExpression('0')","default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[],"explicit_pk":["shared_by_id","shared_with_id"]}}]}
1+
{"_meta":{"description":"This file contains a serialized version of schema entities for drift.","version":"1.2.0"},"options":{"store_date_time_values_as_text":true},"entities":[{"id":0,"references":[],"type":"table","data":{"name":"user_entity","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"blob","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"name","getter_name":"name","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"is_admin","getter_name":"isAdmin","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"is_admin\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"is_admin\" IN (0, 1))"},"default_dart":"const CustomExpression('0')","default_client_dart":null,"dsl_features":[]},{"name":"email","getter_name":"email","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"profile_image_path","getter_name":"profileImagePath","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"updated_at","getter_name":"updatedAt","moor_type":"dateTime","nullable":false,"customConstraints":null,"default_dart":"const CustomExpression('CURRENT_TIMESTAMP')","default_client_dart":null,"dsl_features":[]},{"name":"quota_size_in_bytes","getter_name":"quotaSizeInBytes","moor_type":"int","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"quota_usage_in_bytes","getter_name":"quotaUsageInBytes","moor_type":"int","nullable":false,"customConstraints":null,"default_dart":"const CustomExpression('0')","default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":true,"constraints":[],"strict":true,"explicit_pk":["id"]}},{"id":1,"references":[0],"type":"table","data":{"name":"user_metadata_entity","was_declared_in_moor":false,"columns":[{"name":"user_id","getter_name":"userId","moor_type":"blob","nullable":false,"customConstraints":null,"defaultConstraints":"REFERENCES user_entity (id) ON DELETE CASCADE","dialectAwareDefaultConstraints":{"sqlite":"REFERENCES user_entity (id) ON DELETE CASCADE"},"default_dart":null,"default_client_dart":null,"dsl_features":["unknown"]},{"name":"preferences","getter_name":"preferences","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"userPreferenceConverter","dart_type_name":"UserPreferences"}}],"is_virtual":false,"without_rowid":true,"constraints":[],"strict":true,"explicit_pk":["user_id"]}},{"id":2,"references":[0],"type":"table","data":{"name":"partner_entity","was_declared_in_moor":false,"columns":[{"name":"shared_by_id","getter_name":"sharedById","moor_type":"blob","nullable":false,"customConstraints":null,"defaultConstraints":"REFERENCES user_entity (id) ON DELETE CASCADE","dialectAwareDefaultConstraints":{"sqlite":"REFERENCES user_entity (id) ON DELETE CASCADE"},"default_dart":null,"default_client_dart":null,"dsl_features":["unknown"]},{"name":"shared_with_id","getter_name":"sharedWithId","moor_type":"blob","nullable":false,"customConstraints":null,"defaultConstraints":"REFERENCES user_entity (id) ON DELETE CASCADE","dialectAwareDefaultConstraints":{"sqlite":"REFERENCES user_entity (id) ON DELETE CASCADE"},"default_dart":null,"default_client_dart":null,"dsl_features":["unknown"]},{"name":"in_timeline","getter_name":"inTimeline","moor_type":"bool","nullable":false,"customConstraints":null,"defaultConstraints":"CHECK (\"in_timeline\" IN (0, 1))","dialectAwareDefaultConstraints":{"sqlite":"CHECK (\"in_timeline\" IN (0, 1))"},"default_dart":"const CustomExpression('0')","default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":true,"constraints":[],"strict":true,"explicit_pk":["shared_by_id","shared_with_id"]}}]}
Lines changed: 55 additions & 208 deletions
Original file line numberDiff line numberDiff line change
@@ -1,107 +1,5 @@
11
import 'dart:ui';
22

3-
enum UserMetadata {
4-
preferences,
5-
}
6-
7-
class _BaseUserPreference {
8-
final bool enabled;
9-
10-
const _BaseUserPreference({required this.enabled});
11-
12-
@override
13-
bool operator ==(covariant _BaseUserPreference other) {
14-
if (identical(this, other)) return true;
15-
16-
return other.enabled == enabled;
17-
}
18-
19-
@override
20-
int get hashCode => enabled.hashCode;
21-
}
22-
23-
class UserFolderPreference extends _BaseUserPreference {
24-
const UserFolderPreference({super.enabled = false});
25-
26-
Map<String, Object?> toMap() {
27-
return {"folders-Enabled": enabled};
28-
}
29-
30-
factory UserFolderPreference.fromMap(Map<String, Object?> map) {
31-
return UserFolderPreference(
32-
enabled: map["folders-Enabled"] as bool? ?? false,
33-
);
34-
}
35-
}
36-
37-
class UserMemoryPreference extends _BaseUserPreference {
38-
const UserMemoryPreference({super.enabled = true});
39-
40-
Map<String, Object?> toMap() {
41-
return {"memories-Enabled": enabled};
42-
}
43-
44-
factory UserMemoryPreference.fromMap(Map<String, Object?> map) {
45-
return UserMemoryPreference(
46-
enabled: map["memories-Enabled"] as bool? ?? true,
47-
);
48-
}
49-
}
50-
51-
class UserPeoplePreference extends _BaseUserPreference {
52-
const UserPeoplePreference({super.enabled = true});
53-
54-
Map<String, Object?> toMap() {
55-
return {"people-Enabled": enabled};
56-
}
57-
58-
factory UserPeoplePreference.fromMap(Map<String, Object?> map) {
59-
return UserPeoplePreference(
60-
enabled: map["people-Enabled"] as bool? ?? true,
61-
);
62-
}
63-
}
64-
65-
class UserRatingPreference extends _BaseUserPreference {
66-
const UserRatingPreference({super.enabled = false});
67-
68-
Map<String, Object?> toMap() {
69-
return {"ratings-Enabled": enabled};
70-
}
71-
72-
factory UserRatingPreference.fromMap(Map<String, Object?> map) {
73-
return UserRatingPreference(
74-
enabled: map["ratings-Enabled"] as bool? ?? false,
75-
);
76-
}
77-
}
78-
79-
class UserSharedLinksPreference extends _BaseUserPreference {
80-
const UserSharedLinksPreference({super.enabled = true});
81-
82-
Map<String, Object?> toMap() {
83-
return {"sharedLinks-Enabled": enabled};
84-
}
85-
86-
factory UserSharedLinksPreference.fromMap(Map<String, Object?> map) {
87-
return UserSharedLinksPreference(
88-
enabled: map["sharedLinks-Enabled"] as bool? ?? true,
89-
);
90-
}
91-
}
92-
93-
class UserTagPreference extends _BaseUserPreference {
94-
const UserTagPreference({super.enabled = false});
95-
96-
Map<String, Object?> toMap() {
97-
return {"tags-Enabled": enabled};
98-
}
99-
100-
factory UserTagPreference.fromMap(Map<String, Object?> map) {
101-
return UserTagPreference(enabled: map["tags-Enabled"] as bool? ?? false);
102-
}
103-
}
104-
1053
enum AvatarColor {
1064
// do not change this order or reuse indices for other purposes, adding is OK
1075
primary("primary"),
@@ -133,126 +31,75 @@ enum AvatarColor {
13331
};
13432
}
13533

136-
class UserAvatarPreference {
137-
final AvatarColor color;
138-
139-
const UserAvatarPreference({this.color = AvatarColor.primary});
140-
141-
@override
142-
bool operator ==(covariant UserAvatarPreference other) {
143-
if (identical(this, other)) return true;
144-
145-
return other.color == color;
146-
}
147-
148-
@override
149-
int get hashCode => color.hashCode;
150-
151-
Map<String, Object?> toMap() {
152-
return {"avatar-Color": color.value};
153-
}
154-
155-
factory UserAvatarPreference.fromMap(Map<String, Object?> map) {
156-
return UserAvatarPreference(
157-
color: AvatarColor.values.firstWhere(
158-
(e) => e.value == map["avatar-Color"] as String?,
159-
orElse: () => AvatarColor.primary,
160-
),
161-
);
162-
}
163-
}
164-
165-
class UserPurchasePreference {
166-
final bool showSupportBadge;
167-
168-
const UserPurchasePreference({this.showSupportBadge = true});
169-
170-
@override
171-
bool operator ==(covariant UserPurchasePreference other) {
172-
if (identical(this, other)) return true;
173-
174-
return other.showSupportBadge == showSupportBadge;
175-
}
176-
177-
@override
178-
int get hashCode => showSupportBadge.hashCode;
179-
180-
Map<String, Object?> toMap() {
181-
return {"purchase-ShowSupportBadge": showSupportBadge};
182-
}
183-
184-
factory UserPurchasePreference.fromMap(Map<String, Object?> map) {
185-
return UserPurchasePreference(
186-
showSupportBadge: map["purchase-ShowSupportBadge"] as bool? ?? true,
187-
);
188-
}
189-
}
190-
19134
class UserPreferences {
192-
final UserFolderPreference folders;
193-
final UserMemoryPreference memories;
194-
final UserPeoplePreference people;
195-
final UserRatingPreference ratings;
196-
final UserSharedLinksPreference sharedLinks;
197-
final UserTagPreference tags;
198-
final UserAvatarPreference avatar;
199-
final UserPurchasePreference purchase;
35+
final bool foldersEnabled;
36+
final bool memoriesEnabled;
37+
final bool peopleEnabled;
38+
final bool ratingsEnabled;
39+
final bool sharedLinksEnabled;
40+
final bool tagsEnabled;
41+
final AvatarColor userAvatarColor;
42+
final bool showSupportBadge;
20043

20144
const UserPreferences({
202-
this.folders = const UserFolderPreference(),
203-
this.memories = const UserMemoryPreference(),
204-
this.people = const UserPeoplePreference(),
205-
this.ratings = const UserRatingPreference(),
206-
this.sharedLinks = const UserSharedLinksPreference(),
207-
this.tags = const UserTagPreference(),
208-
this.avatar = const UserAvatarPreference(),
209-
this.purchase = const UserPurchasePreference(),
45+
this.foldersEnabled = false,
46+
this.memoriesEnabled = true,
47+
this.peopleEnabled = true,
48+
this.ratingsEnabled = false,
49+
this.sharedLinksEnabled = true,
50+
this.tagsEnabled = false,
51+
this.userAvatarColor = AvatarColor.primary,
52+
this.showSupportBadge = true,
21053
});
21154

21255
UserPreferences copyWith({
213-
UserFolderPreference? folders,
214-
UserMemoryPreference? memories,
215-
UserPeoplePreference? people,
216-
UserRatingPreference? ratings,
217-
UserSharedLinksPreference? sharedLinks,
218-
UserTagPreference? tags,
219-
UserAvatarPreference? avatar,
220-
UserPurchasePreference? purchase,
221-
}) =>
222-
UserPreferences(
223-
folders: folders ?? this.folders,
224-
memories: memories ?? this.memories,
225-
people: people ?? this.people,
226-
ratings: ratings ?? this.ratings,
227-
sharedLinks: sharedLinks ?? this.sharedLinks,
228-
tags: tags ?? this.tags,
229-
avatar: avatar ?? this.avatar,
230-
purchase: purchase ?? this.purchase,
231-
);
56+
bool? foldersEnabled,
57+
bool? memoriesEnabled,
58+
bool? peopleEnabled,
59+
bool? ratingsEnabled,
60+
bool? sharedLinksEnabled,
61+
bool? tagsEnabled,
62+
AvatarColor? userAvatarColor,
63+
bool? showSupportBadge,
64+
}) {
65+
return UserPreferences(
66+
foldersEnabled: foldersEnabled ?? this.foldersEnabled,
67+
memoriesEnabled: memoriesEnabled ?? this.memoriesEnabled,
68+
peopleEnabled: peopleEnabled ?? this.peopleEnabled,
69+
ratingsEnabled: ratingsEnabled ?? this.ratingsEnabled,
70+
sharedLinksEnabled: sharedLinksEnabled ?? this.sharedLinksEnabled,
71+
tagsEnabled: tagsEnabled ?? this.tagsEnabled,
72+
userAvatarColor: userAvatarColor ?? this.userAvatarColor,
73+
showSupportBadge: showSupportBadge ?? this.showSupportBadge,
74+
);
75+
}
23276

23377
Map<String, Object?> toMap() {
23478
final preferences = <String, Object?>{};
235-
preferences.addAll(folders.toMap());
236-
preferences.addAll(memories.toMap());
237-
preferences.addAll(people.toMap());
238-
preferences.addAll(ratings.toMap());
239-
preferences.addAll(sharedLinks.toMap());
240-
preferences.addAll(tags.toMap());
241-
preferences.addAll(avatar.toMap());
242-
preferences.addAll(purchase.toMap());
79+
preferences["folders-Enabled"] = foldersEnabled;
80+
preferences["memories-Enabled"] = memoriesEnabled;
81+
preferences["people-Enabled"] = peopleEnabled;
82+
preferences["ratings-Enabled"] = ratingsEnabled;
83+
preferences["sharedLinks-Enabled"] = sharedLinksEnabled;
84+
preferences["tags-Enabled"] = tagsEnabled;
85+
preferences["avatar-Color"] = userAvatarColor.value;
86+
preferences["purchase-ShowSupportBadge"] = showSupportBadge;
24387
return preferences;
24488
}
24589

24690
factory UserPreferences.fromMap(Map<String, Object?> map) {
24791
return UserPreferences(
248-
folders: UserFolderPreference.fromMap(map),
249-
memories: UserMemoryPreference.fromMap(map),
250-
people: UserPeoplePreference.fromMap(map),
251-
ratings: UserRatingPreference.fromMap(map),
252-
sharedLinks: UserSharedLinksPreference.fromMap(map),
253-
tags: UserTagPreference.fromMap(map),
254-
avatar: UserAvatarPreference.fromMap(map),
255-
purchase: UserPurchasePreference.fromMap(map),
92+
foldersEnabled: map["folders-Enabled"] as bool? ?? false,
93+
memoriesEnabled: map["memories-Enabled"] as bool? ?? true,
94+
peopleEnabled: map["people-Enabled"] as bool? ?? true,
95+
ratingsEnabled: map["ratings-Enabled"] as bool? ?? false,
96+
sharedLinksEnabled: map["sharedLinks-Enabled"] as bool? ?? true,
97+
tagsEnabled: map["tags-Enabled"] as bool? ?? false,
98+
userAvatarColor: AvatarColor.values.firstWhere(
99+
(e) => e.value == map["avatar-Color"] as String?,
100+
orElse: () => AvatarColor.primary,
101+
),
102+
showSupportBadge: map["purchase-ShowSupportBadge"] as bool? ?? true,
256103
);
257104
}
258105
}

mobile/lib/infrastructure/entities/partner.entity.dart

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,20 @@ import 'package:immich_mobile/infrastructure/entities/user.entity.dart';
44
class PartnerEntity extends Table {
55
const PartnerEntity();
66

7-
TextColumn get sharedById =>
8-
text().references(UserEntity, #id, onDelete: KeyAction.cascade)();
7+
BlobColumn get sharedById =>
8+
blob().references(UserEntity, #id, onDelete: KeyAction.cascade)();
99

10-
TextColumn get sharedWithId =>
11-
text().references(UserEntity, #id, onDelete: KeyAction.cascade)();
10+
BlobColumn get sharedWithId =>
11+
blob().references(UserEntity, #id, onDelete: KeyAction.cascade)();
1212

1313
BoolColumn get inTimeline => boolean().withDefault(const Constant(false))();
1414

1515
@override
1616
Set<Column> get primaryKey => {sharedById, sharedWithId};
17+
18+
@override
19+
bool get isStrict => true;
20+
21+
@override
22+
bool get withoutRowId => true;
1723
}

0 commit comments

Comments
 (0)