import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:island/models/user.dart'; part 'activity.freezed.dart'; part 'activity.g.dart'; @freezed sealed class SnActivity with _$SnActivity { const factory SnActivity({ required String id, required String type, required String resourceIdentifier, required int visibility, required String accountId, required SnAccount account, required dynamic data, required DateTime createdAt, required DateTime updatedAt, required dynamic deletedAt, }) = _SnActivity; factory SnActivity.fromJson(Map json) => _$SnActivityFromJson(json); } @freezed sealed class SnCheckInResult with _$SnCheckInResult { const factory SnCheckInResult({ required String id, required int level, required List tips, required String accountId, required SnAccount? account, required DateTime createdAt, required DateTime updatedAt, required DateTime? deletedAt, }) = _SnCheckInResult; factory SnCheckInResult.fromJson(Map json) => _$SnCheckInResultFromJson(json); } @freezed sealed class SnFortuneTip with _$SnFortuneTip { const factory SnFortuneTip({ required bool isPositive, required String title, required String content, }) = _SnFortuneTip; factory SnFortuneTip.fromJson(Map json) => _$SnFortuneTipFromJson(json); } @freezed sealed class SnEventCalendarEntry with _$SnEventCalendarEntry { const factory SnEventCalendarEntry({ required DateTime date, required SnCheckInResult? checkInResult, required List statuses, }) = _SnEventCalendarEntry; factory SnEventCalendarEntry.fromJson(Map json) => _$SnEventCalendarEntryFromJson(json); }