1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- import 'package:immich_mobile/shared/models/user.dart';
- import 'package:openapi/api.dart';
- enum ActivityType { comment, like }
- class Activity {
- final String id;
- final String? assetId;
- final String? comment;
- final DateTime createdAt;
- final ActivityType type;
- final User user;
- const Activity({
- required this.id,
- this.assetId,
- this.comment,
- required this.createdAt,
- required this.type,
- required this.user,
- });
- Activity copyWith({
- String? id,
- String? assetId,
- String? comment,
- DateTime? createdAt,
- ActivityType? type,
- User? user,
- }) {
- return Activity(
- id: id ?? this.id,
- assetId: assetId ?? this.assetId,
- comment: comment ?? this.comment,
- createdAt: createdAt ?? this.createdAt,
- type: type ?? this.type,
- user: user ?? this.user,
- );
- }
- Activity.fromDto(ActivityResponseDto dto)
- : id = dto.id,
- assetId = dto.assetId,
- comment = dto.comment,
- createdAt = dto.createdAt,
- type = dto.type == ActivityResponseDtoTypeEnum.comment
- ? ActivityType.comment
- : ActivityType.like,
- user = User(
- email: dto.user.email,
- name: dto.user.name,
- profileImagePath: dto.user.profileImagePath,
- id: dto.user.id,
- // Placeholder values
- isAdmin: false,
- updatedAt: DateTime.now(),
- isPartnerSharedBy: false,
- isPartnerSharedWith: false,
- memoryEnabled: false,
- );
- @override
- String toString() {
- return 'Activity(id: $id, assetId: $assetId, comment: $comment, createdAt: $createdAt, type: $type, user: $user)';
- }
- @override
- bool operator ==(Object other) {
- if (identical(this, other)) return true;
- return other is Activity &&
- other.id == id &&
- other.assetId == assetId &&
- other.comment == comment &&
- other.createdAt == createdAt &&
- other.type == type &&
- other.user == user;
- }
- @override
- int get hashCode {
- return id.hashCode ^
- assetId.hashCode ^
- comment.hashCode ^
- createdAt.hashCode ^
- type.hashCode ^
- user.hashCode;
- }
- }
|