import { Injectable } from '@nestjs/common'; import { CreateMessageDto } from './dto/create-message.dto'; import { UpdateMessageDto } from './dto/update-message.dto'; import { InjectModel } from '@nestjs/mongoose'; import { Message, MessageDocument } from './schemas/message.schema'; import { Model } from 'mongoose'; import { UserDocument } from 'src/users/schemas/user.schema'; type PopulatedMessage = Omit & { senderId: UserDocument; }; @Injectable() export class MessagesService { constructor( @InjectModel(Message.name) private MessageModel: Model, ) {} async create(createMessageDto: CreateMessageDto): Promise { return await this.MessageModel.create(createMessageDto); } async findAll(convId: string): Promise { return await this.MessageModel.find({ conversationId: convId }) .populate<{ senderId: UserDocument }>('senderId', 'name') .sort({ createdAt: 1 }) .exec(); } }