const { ObjectId } = require('mongodb'); const connectDb = require("./db"); const LotDb = class { constructor() { this.getCollection(); } async getCollection() { const db = await connectDb(); if (!db) { throw new Error('Database not connected'); } this.collection = db.collection("Lots"); } // CRUD async get(id) { let result = await this.collection.findOne({_id: new ObjectId(id)}); return result; } async post(newDocument) { delete newDocument._id; let result = await this.collection.insertOne(newDocument); return result; } async put(id, data) { let result = await this.collection.updateOne({_id: new ObjectId(id)}, {$set: data}); return result; } async remove(id) { let result = await this.collection.deleteOne({_id: new ObjectId(id)}); return result; } // Fucntions async getAll() { let result = await this.collection.find({}).toArray(); return result; } async getBySaleId(idSalePlatform, platformName) { console.log(platformName); let result = await this.collection.find({sale_id: new ObjectId(idSalePlatform), platform: platformName}); return result.toArray(); } async getByIDPlatform(idLotPlatform, platformName) { let result = await this.collection.findOne({idPlatform: String(idLotPlatform), platform: platformName}); return result; } async deleteAllLotBySaleId(sale_id){ let result = await this.collection.deleteMany({sale_id: new ObjectId(sale_id)}); return result; } } module.exports = {LotDb};