Files

51 lines
1.0 KiB
TypeScript

import { FieldValue, serverTimestamp, Timestamp } from 'firebase/firestore';
import { User } from './user.model';
export default class Conversation {
id: string;
constructor(
public createdByUserId: string,
public memberIdsList: string[],
public members: MemberMap,
public userCache: User[],
public name: string | null = null,
public lastUpdatedDate = Timestamp.now(),
public createdDate = Timestamp.now(),
public membersInRoom: string[] = [],
) {}
}
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"
}