import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:surface/types/account.dart'; part 'realm.freezed.dart'; part 'realm.g.dart'; @freezed abstract class SnRealmMember with _$SnRealmMember { const factory SnRealmMember({ required int id, required DateTime createdAt, required DateTime updatedAt, required DateTime? deletedAt, required int realmId, required int accountId, required SnRealm realm, required SnAccount account, required int powerLevel, }) = _SnRealmMember; factory SnRealmMember.fromJson(Map<String, dynamic> json) => _$SnRealmMemberFromJson(json); } @freezed abstract class SnRealm with _$SnRealm { const SnRealm._(); const factory SnRealm({ required int id, required DateTime createdAt, required DateTime updatedAt, required DateTime? deletedAt, required String alias, required String name, required String description, List<SnRealmMember>? members, required String? avatar, required String? banner, required Map<String, dynamic>? accessPolicy, required int accountId, required bool isPublic, required bool isCommunity, @Default(0) int popularity, }) = _SnRealm; factory SnRealm.fromJson(Map<String, dynamic> json) => _$SnRealmFromJson(json); }