153 lines
4.0 KiB
Dart
153 lines
4.0 KiB
Dart
import 'package:json_annotation/json_annotation.dart';
|
|
import 'package:marianum_mobile/api/apiResponse.dart';
|
|
|
|
import '../chat/getChatResponse.dart';
|
|
|
|
part 'getRoomResponse.g.dart';
|
|
|
|
@JsonSerializable(explicitToJson: true)
|
|
class GetRoomResponse extends ApiResponse {
|
|
Set<GetRoomResponseObject> data;
|
|
|
|
GetRoomResponse(this.data);
|
|
|
|
factory GetRoomResponse.fromJson(Map<String, dynamic> json) => _$GetRoomResponseFromJson(json);
|
|
Map<String, dynamic> toJson() => _$GetRoomResponseToJson(this);
|
|
|
|
List<GetRoomResponseObject> sortByLastActivity() {
|
|
List<GetRoomResponseObject> sorted = data.toList();
|
|
sorted.sort((a, b) => -a.lastActivity.compareTo(b.lastActivity));
|
|
return sorted;
|
|
}
|
|
|
|
}
|
|
|
|
@JsonSerializable(explicitToJson: true)
|
|
class GetRoomResponseObject {
|
|
int id;
|
|
String token;
|
|
GetRoomResponseObjectConversationType type;
|
|
String name;
|
|
String displayName;
|
|
String description;
|
|
int participantType;
|
|
int participantFlags;
|
|
int readOnly;
|
|
int listable;
|
|
int lastPing;
|
|
String sessionId;
|
|
bool hasPassword;
|
|
bool hasCall;
|
|
int callFlag;
|
|
bool canStartCall;
|
|
bool canDeleteConversation;
|
|
bool canLeaveConversation;
|
|
int lastActivity;
|
|
bool isFavorite;
|
|
GetRoomResponseObjectParticipantNotificationLevel notificationLevel;
|
|
int unreadMessages;
|
|
bool unreadMention;
|
|
bool unreadMentionDirect;
|
|
int lastReadMessage;
|
|
int lastCommonReadMessage;
|
|
GetChatResponseObject lastMessage;
|
|
String? status;
|
|
String? statusIcon;
|
|
String? statusMessage;
|
|
|
|
GetRoomResponseObject(
|
|
this.id,
|
|
this.token,
|
|
this.type,
|
|
this.name,
|
|
this.displayName,
|
|
this.description,
|
|
this.participantType,
|
|
this.participantFlags,
|
|
this.readOnly,
|
|
this.listable,
|
|
this.lastPing,
|
|
this.sessionId,
|
|
this.hasPassword,
|
|
this.hasCall,
|
|
this.callFlag,
|
|
this.canStartCall,
|
|
this.canDeleteConversation,
|
|
this.canLeaveConversation,
|
|
this.lastActivity,
|
|
this.isFavorite,
|
|
this.notificationLevel,
|
|
this.unreadMessages,
|
|
this.unreadMention,
|
|
this.unreadMentionDirect,
|
|
this.lastReadMessage,
|
|
this.lastCommonReadMessage,
|
|
this.lastMessage,
|
|
this.status,
|
|
this.statusIcon,
|
|
this.statusMessage);
|
|
|
|
factory GetRoomResponseObject.fromJson(Map<String, dynamic> json) => _$GetRoomResponseObjectFromJson(json);
|
|
Map<String, dynamic> toJson() => _$GetRoomResponseObjectToJson(this);
|
|
}
|
|
|
|
enum GetRoomResponseObjectConversationType {
|
|
@JsonValue(1) oneToOne,
|
|
@JsonValue(2) group,
|
|
@JsonValue(3) public,
|
|
@JsonValue(4) changelog,
|
|
@JsonValue(5) deleted,
|
|
}
|
|
|
|
enum GetRoomResponseObjectParticipantNotificationLevel {
|
|
@JsonValue(0) defaultLevel,
|
|
@JsonValue(1) alwaysNotify,
|
|
@JsonValue(2) notifyOnMention,
|
|
@JsonValue(3) neverNotify,
|
|
}
|
|
|
|
// @JsonSerializable(explicitToJson: true)
|
|
// class GetRoomResponseObjectMessage {
|
|
// int id;
|
|
// String token;
|
|
// GetRoomResponseObjectMessageActorType actorType;
|
|
// String actorId;
|
|
// String actorDisplayName;
|
|
// int timestamp;
|
|
// String message;
|
|
// String systemMessage;
|
|
// GetRoomResponseObjectMessageType messageType;
|
|
// bool isReplyable;
|
|
// String referenceId;
|
|
//
|
|
//
|
|
// GetRoomResponseObjectMessage(
|
|
// this.id,
|
|
// this.token,
|
|
// this.actorType,
|
|
// this.actorId,
|
|
// this.actorDisplayName,
|
|
// this.timestamp,
|
|
// this.message,
|
|
// this.systemMessage,
|
|
// this.messageType,
|
|
// this.isReplyable,
|
|
// this.referenceId);
|
|
//
|
|
// factory GetRoomResponseObjectMessage.fromJson(Map<String, dynamic> json) => _$GetRoomResponseObjectMessageFromJson(json);
|
|
// Map<String, dynamic> toJson() => _$GetRoomResponseObjectMessageToJson(this);
|
|
// }
|
|
|
|
enum GetRoomResponseObjectMessageActorType {
|
|
@JsonValue("users") user,
|
|
@JsonValue("guests") guest,
|
|
@JsonValue("bots") bot,
|
|
@JsonValue("bridged") bridge,
|
|
}
|
|
|
|
enum GetRoomResponseObjectMessageType {
|
|
@JsonValue("comment") comment,
|
|
@JsonValue("comment_deleted") deletedComment,
|
|
@JsonValue("system") system,
|
|
@JsonValue("command") command,
|
|
} |