32 lines
869 B
TypeScript
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
|
|
}
|