import { Injectable } from "@nestjs/common"; import { InjectModel } from "@nestjs/mongoose"; import { FilterQuery, Model, Types } from "mongoose"; import { RegisterDto } from "src/auth/dto/actor/register.actor.dto"; import { ExpertModel } from "src/users/entities/schema/expert.schema"; import { DamageExpertModel } from "../schema/damage-expert.schema"; import { UserModel } from "../schema/user.schema"; @Injectable() export class DamageExpertDbService { constructor( @InjectModel(DamageExpertModel.name) private readonly damageExpertModel: Model, ) {} async create(user: RegisterDto): Promise { return await this.damageExpertModel.create(user); } async findOne(user: FilterQuery): Promise { return await this.damageExpertModel.findOne(user); } async findById(userId: string): Promise { return await this.damageExpertModel.findOne({ _id: new Types.ObjectId(userId), }); } async findOneAndUpdate( user: FilterQuery, update: FilterQuery, ): Promise { return await this.damageExpertModel.findOneAndUpdate(user, update); } async findAll( filter: FilterQuery, ): Promise<(DamageExpertModel & { _id: Types.ObjectId })[]> { return await this.damageExpertModel.find(filter).lean(); } async findAndUpdate(filter: any, update: any): Promise { return this.damageExpertModel .findOneAndUpdate(filter, update, { new: true }) .exec(); } async updateOne(filter: any, update: any) { return this.damageExpertModel.updateOne(filter, update); } }