Surface/lib/types/realm.dart

50 lines
1.3 KiB
Dart
Raw Normal View History

2024-11-16 13:54:36 +08:00
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:surface/types/account.dart';
part 'realm.freezed.dart';
part 'realm.g.dart';
@freezed
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
class SnRealm with _$SnRealm {
const SnRealm._();
2024-11-16 13:54:36 +08:00
const factory SnRealm({
2025-02-22 20:46:47 +08:00
required int id,
required DateTime createdAt,
required DateTime updatedAt,
required DateTime? deletedAt,
required String alias,
required String name,
required String description,
List<SnRealmMember>? members,
2025-02-22 20:46:47 +08:00
required String? avatar,
required String? banner,
required Map<String, dynamic>? accessPolicy,
required int accountId,
required bool isPublic,
required bool isCommunity,
2025-02-20 23:44:28 +08:00
@Default(0) int popularity,
2024-11-16 13:54:36 +08:00
}) = _SnRealm;
factory SnRealm.fromJson(Map<String, dynamic> json) =>
_$SnRealmFromJson(json);
}