chore(server) Add user FK to album entity (#1569)

This commit is contained in:
Alex 2023-02-06 20:47:06 -06:00 committed by GitHub
parent ac39ebddc0
commit 3cc4af5947
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 173 additions and 96 deletions

View file

@ -23,6 +23,7 @@ class AlbumResponseDto {
required this.shared,
this.sharedUsers = const [],
this.assets = const [],
this.owner,
});
int assetCount;
@ -45,6 +46,14 @@ class AlbumResponseDto {
List<AssetResponseDto> assets;
///
/// Please note: This property should have been non-nullable! Since the specification file
/// does not include a default value (using the "default:" property), however, the generated
/// source code must fall back to having a nullable type.
/// Consider adding a "default:" property in the specification file to hide this note.
///
UserResponseDto? owner;
@override
bool operator ==(Object other) => identical(this, other) || other is AlbumResponseDto &&
other.assetCount == assetCount &&
@ -56,7 +65,8 @@ class AlbumResponseDto {
other.albumThumbnailAssetId == albumThumbnailAssetId &&
other.shared == shared &&
other.sharedUsers == sharedUsers &&
other.assets == assets;
other.assets == assets &&
other.owner == owner;
@override
int get hashCode =>
@ -70,10 +80,11 @@ class AlbumResponseDto {
(albumThumbnailAssetId == null ? 0 : albumThumbnailAssetId!.hashCode) +
(shared.hashCode) +
(sharedUsers.hashCode) +
(assets.hashCode);
(assets.hashCode) +
(owner == null ? 0 : owner!.hashCode);
@override
String toString() => 'AlbumResponseDto[assetCount=$assetCount, id=$id, ownerId=$ownerId, albumName=$albumName, createdAt=$createdAt, updatedAt=$updatedAt, albumThumbnailAssetId=$albumThumbnailAssetId, shared=$shared, sharedUsers=$sharedUsers, assets=$assets]';
String toString() => 'AlbumResponseDto[assetCount=$assetCount, id=$id, ownerId=$ownerId, albumName=$albumName, createdAt=$createdAt, updatedAt=$updatedAt, albumThumbnailAssetId=$albumThumbnailAssetId, shared=$shared, sharedUsers=$sharedUsers, assets=$assets, owner=$owner]';
Map<String, dynamic> toJson() {
final json = <String, dynamic>{};
@ -91,6 +102,11 @@ class AlbumResponseDto {
json[r'shared'] = this.shared;
json[r'sharedUsers'] = this.sharedUsers;
json[r'assets'] = this.assets;
if (this.owner != null) {
json[r'owner'] = this.owner;
} else {
// json[r'owner'] = null;
}
return json;
}
@ -123,6 +139,7 @@ class AlbumResponseDto {
shared: mapValueOfType<bool>(json, r'shared')!,
sharedUsers: UserResponseDto.listFromJson(json[r'sharedUsers'])!,
assets: AssetResponseDto.listFromJson(json[r'assets'])!,
owner: UserResponseDto.fromJson(json[r'owner']),
);
}
return null;

View file

@ -221,7 +221,7 @@ class AssetResponseDto {
exifInfo: ExifResponseDto.fromJson(json[r'exifInfo']),
smartInfo: SmartInfoResponseDto.fromJson(json[r'smartInfo']),
livePhotoVideoId: mapValueOfType<String>(json, r'livePhotoVideoId'),
tags: TagResponseDto.listFromJson(json[r'tags'])!,
tags: TagResponseDto.listFromJson(json[r'tags']) ?? const [],
);
}
return null;
@ -285,7 +285,6 @@ class AssetResponseDto {
'mimeType',
'duration',
'webpPath',
'tags',
};
}