Files
nirvana-v3/packages/core/models/conversation.model.ts
T

32 lines
869 B
TypeScript

import { ObjectId } from "mongodb";
export class Conversation {
name?: string;
constructor(
public _id?: ObjectId,
public createdDate: Date = new Date(),
public lastUpdatedDate: Date = new Date()
) {}
}
export class ConversationMember {
constructor(
// unique constraint
public conversationId: ObjectId,
public userId: ObjectId,
public state: ConversationMemberState = ConversationMemberState.INVITED,
public createdDate: Date = new Date(),
public _id?: ObjectId
) {}
}
export enum ConversationMemberState {
INVITED = "INVITED", // user gets this in their request inbox
INBOX = "INBOX", // user decided to join this conversation after being invited
TUNED = "TUNED", // user upgraded priority of this and now is tuned in live to convo
ARCHIVED = "ARCHIVED", // user no longer wants anything to do with convo
}