feat: chat

This commit is contained in:
dylanmay
2023-09-08 17:36:37 +08:00
parent e6a9dd0e4c
commit e3f8a3a94b
19 changed files with 607 additions and 0 deletions

View File

@ -0,0 +1,32 @@
import { MessageModelType } from '../types'
export default class BaseConversation {
public id: string
public avatar: string
public name: string
public description: string
public createTime: number
public updateTime: number
public unreadCount: number
public msgList: Array<MessageModelType>
constructor(
id: string,
avatar: string,
name: string,
descrition: string,
createTime: number,
updateTime: number,
unreadCount: number,
msgList: Array<MessageModelType>
) {
this.id = id
this.avatar = avatar
this.name = name
this.description = descrition
this.createTime = createTime
this.updateTime = updateTime
this.unreadCount = unreadCount
this.msgList = msgList
}
}

View File

@ -0,0 +1,35 @@
import { MessageRole, MessageType, SendStatus } from '../types'
export default class BaseMessage {
id: string
avatar: string
nickname: string
createTime: number
isRead: boolean
role: MessageRole
sendStatus: SendStatus
messageType: MessageType
conversationId: string
constructor(
id: string,
avatar: string,
nickname: string,
createTime: number,
isRead: boolean,
role: MessageRole,
sendStauts: SendStatus,
messageType: MessageType,
conversationId: string
) {
this.id = id
this.avatar = avatar
this.nickname = nickname
this.createTime = createTime
this.isRead = isRead
this.role = role
this.sendStatus = sendStauts
this.messageType = messageType
this.conversationId = conversationId
}
}

View File

@ -0,0 +1,17 @@
import BaseConversation from './BaseConversation'
import BaseMessage from './BaseMessage'
export class ChatConversation extends BaseConversation {
constructor(
id: string,
avatar: string,
name: string,
descrition: string,
createTime: number,
updateTime: number,
unreadCount: number,
msgList: Array<BaseMessage>
) {
super(id, avatar, name, descrition, createTime, updateTime, unreadCount, msgList)
}
}

View File

@ -0,0 +1,22 @@
import { MessageRole, MessageType, SendStatus } from '../types'
import BaseMessage from './BaseMessage'
export default class ImageMessage extends BaseMessage {
content: string
constructor(
id: string,
avatar: string,
nickname: string,
createTime: number,
isRead: boolean,
content: string,
role: MessageRole,
sendStatus: SendStatus,
messageType: MessageType,
conversationId: string
) {
super(id, avatar, nickname, createTime, isRead, role, sendStatus, messageType, conversationId)
this.content = content
}
}

View File

@ -0,0 +1,22 @@
import { MessageRole, MessageType, SendStatus } from '../types'
import BaseMessage from './BaseMessage'
export default class TextMessage extends BaseMessage {
content: string
constructor(
id: string,
avatar: string,
nickname: string,
createTime: number,
isRead: boolean,
content: string,
role: MessageRole,
sendStatus: SendStatus,
messageType: MessageType,
conversationId: string
) {
super(id, avatar, nickname, createTime, isRead, role, sendStatus, messageType, conversationId)
this.content = content
}
}