inserting members map when creating conversations

This commit is contained in:
talksik
2022-05-29 08:01:18 -05:00
parent f704676f62
commit 68f9c85ee8
3 changed files with 58 additions and 19 deletions
+29 -9
View File
@@ -5,7 +5,9 @@ export default class Conversation {
constructor(
public createdByUserId: string,
public membersList: string[],
public memberIdsList: string[],
public members: MemberMap,
public name: string | null = null,
@@ -17,11 +19,29 @@ export default class Conversation {
) {}
}
// export class Member {
// constructor(
// public id: string,
// public userId: string,
// public role: 'admin' | 'regular',
// public joinedDate = Timestamp.now(),
// ) {}
// }
export type MemberMap = {
[memberId: string]: ConversationMember
}
export class ConversationMember {
constructor(
public userId: string, // NOTE: serves as the user ID
public role: MemberRole,
public memberState: MemberState,
public isActive: boolean = true,
public lastActiveDate: Timestamp | null = null,
public joinedDate = Timestamp.now(),
) {}
}
export enum MemberRole {
admin = 'admin',
regular = 'regular',
}
export enum MemberState {
priority = 'priority',
inbox = 'inbox',
// deleted = "deleted"
}