ComunicWeb/assets/js/typings/Conversations.d.ts

68 lines
1.4 KiB
TypeScript

/**
* Conversations typings
*
* @author Pierre Hubert
*/
declare interface ConversationSettingsFormElements {
rootElem: HTMLElement,
usersElement: HTMLElement,
conversationNameInput: HTMLElement,
allowEveryoneToAddMembers: HTMLElement,
followConversationInput: HTMLElement,
}
declare interface ConversationMember {
user_id: number,
last_message_seen: number,
last_access: number,
following: boolean,
is_admin: boolean,
}
declare interface Conversation {
id: number,
last_activity: number,
name: string,
color?: string,
logo?: string,
group_id?: number,
group_min_membership_level ?: "member"|"moderator"|"administrator",
members: ConversationMember[],
can_everyone_add_members: boolean,
can_have_call: boolean,
can_have_video_call: boolean,
has_call_now: boolean,
}
declare interface ConversationServerMessage {
type: "user_created_conv"|"user_added_another"|"user_left"|"user_removed_another",
user_id?: number,
user_who_added?: number,
user_added?: number,
user_who_removed?: number,
user_removed?: number,
}
declare interface ConversationMessageFile {
url: string,
size: number,
name: string,
thumbnail?: string,
type: string
}
declare interface ConversationMessage {
id: number,
conv_id: number,
user_id: number,
time_sent: number,
message?: string,
file?: ConversationMessageFile,
server_message?: ConversationServerMessage,
}
declare interface UnreadConversation {
conv: Conversation,
message: ConversationMessage
}