Files
m8chat-app2/lib/features/spaces/domain/space_model.dart
help4bis f12a7ac1fd feat: Phase 2 complete — calls, media, spaces, persistence, chat improvements
- LiveKit/MatrixRTC voice+video calls with full call screen UI
- Incoming call overlay (accept/decline)
- Media upload/download — file picker, image rendering, file download
- Spaces navigation — space list + expandable child rooms
- Drift persistence — rooms + messages written on every sync
- Sync persistence auto-starts on login and session restore
- Chat: typing indicators, long-press menu, reply, emoji reactions
- User search dialog + start DM from rooms screen
- Android: INTERNET + CAMERA + RECORD_AUDIO permissions in main manifest
- Emoji picker for reactions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 06:48:03 +10:00

29 lines
757 B
Dart

// Version: 1.1.0 | Created: 2026-04-01
// Immutable Space and SpaceRoom models for the spaces navigation feature.
import 'package:freezed_annotation/freezed_annotation.dart';
part 'space_model.freezed.dart';
/// A Matrix space (a room with the m.space type).
@freezed
abstract class SpaceModel with _$SpaceModel {
const factory SpaceModel({
required String id,
required String displayName,
String? avatarUrl,
@Default(0) int roomCount,
}) = _SpaceModel;
}
/// A room that is a child of a Space.
@freezed
abstract class SpaceRoomModel with _$SpaceRoomModel {
const factory SpaceRoomModel({
required String id,
required String displayName,
String? avatarUrl,
@Default(false) bool isDirect,
}) = _SpaceRoomModel;
}