This commit is contained in:
Peter Maquiran
2024-08-30 12:41:50 +01:00
parent ac7e5ccf5b
commit d6a08c6264
33 changed files with 558 additions and 87 deletions
+30
View File
@@ -0,0 +1,30 @@
import { object, z } from 'zod';
import { MessageEntitySchema } from './message';
import { BaseEntity } from 'src/app/utils/entity';
const DistributionEntitySchema = z.object({
$messageIdMemberId: z.string().optional(),
messageId: z.string(),
memberId: z.number(),
readAt: z.string().nullable(),
deliverAt: z.string().nullable(),
roomId: z.string(),
})
export type IDistribution = z.infer<typeof DistributionEntitySchema>
export class DistributionEntity extends BaseEntity<DistributionEntity>(DistributionEntitySchema) implements IDistribution{
roomId: typeof DistributionEntitySchema._input.roomId
readAt: typeof DistributionEntitySchema._input.readAt
messageId: typeof DistributionEntitySchema._input.messageId
memberId: typeof DistributionEntitySchema._input.memberId
deliverAt: typeof DistributionEntitySchema._input.deliverAt
constructor(data: IDistribution) {
super();
Object.assign(this, data)
}
}
+3 -1
View File
@@ -1,4 +1,5 @@
import { SessionStore } from "src/app/store/session.service";
import { BaseEntity } from "src/app/utils/entity";
import { z } from "zod"
export enum RoomType {
@@ -37,7 +38,7 @@ export const RoomEntitySchema = z.object({
export type IRoomEntity = z.infer<typeof RoomEntitySchema>
export class RoomEntity implements IRoomEntity{
export class RoomEntity extends BaseEntity<RoomEntity>(RoomEntitySchema) implements IRoomEntity{
id: typeof RoomEntitySchema._input.id
roomName: typeof RoomEntitySchema._input.roomName
@@ -48,6 +49,7 @@ export class RoomEntity implements IRoomEntity{
members: typeof RoomEntitySchema._input.members
constructor(data: IRoomEntity) {
super();
Object.assign(this, data)
if(data.roomType == RoomType.Direct) {
this.setName()