From c828718498bdfd17f1bd78589265b6f0d2525d26 Mon Sep 17 00:00:00 2001
From: ilnaz <237x237@gmail.com>
Date: Mon, 3 Mar 2025 19:36:56 +0300
Subject: [PATCH 1/2] feat:  add today filter

---
 server/routers/dry-wash/arm-master.js | 207 +++++++++++++-------------
 1 file changed, 106 insertions(+), 101 deletions(-)

diff --git a/server/routers/dry-wash/arm-master.js b/server/routers/dry-wash/arm-master.js
index ce1af19..5403a43 100644
--- a/server/routers/dry-wash/arm-master.js
+++ b/server/routers/dry-wash/arm-master.js
@@ -1,111 +1,116 @@
-const router = require('express').Router()
-const {MasterModel} = require('./model/master')
-const mongoose = require("mongoose")
-const {OrderModel} = require("./model/order")
-
+const router = require("express").Router();
+const { MasterModel } = require("./model/master");
+const mongoose = require("mongoose");
+const { OrderModel } = require("./model/order");
 
 router.get("/masters", async (req, res, next) => {
-    try {
-        const masters = await MasterModel.find({});
-        const orders = await OrderModel.find({});
+  try {
+    const masters = await MasterModel.find({});
 
-        const mastersWithOrders = masters.map((master) => {
-            const masterOrders = orders.filter((order) => {
-                return (
-                    order?.master && order.master.toString() === master._id.toString()
-                );
-            });
+    // Создаем объекты для начала и конца текущего дня
+    const today = new Date();
+    today.setHours(0, 0, 0, 0);
+    const tomorrow = new Date(today);
+    tomorrow.setDate(tomorrow.getDate() + 1);
 
-            const schedule = masterOrders.map((order) => ({
-                id: order._id,
-                startWashTime: order.startWashTime,
-                endWashTime: order.endWashTime,
-            }));
+    const orders = await OrderModel.find({
+      startWashTime: {
+        $gte: today,
+        $lt: tomorrow,
+      },
+    }); 
 
-            return {
-                id: master._id,
-                name: master.name,
-                schedule: schedule,
-                phone: master.phone,
-            };
-        });
-
-        res.status(200).send({ success: true, body: mastersWithOrders });
-    } catch (error) {
-        next(error);
-    }
-});
-
-router.delete('/masters/:id', async (req, res,next) => {
-    const { id } = req.params;
-
-    if (!mongoose.Types.ObjectId.isValid(id)){
-        throw new Error('ID is required')
-    }
-
-    try {
-        const master = await MasterModel.findByIdAndDelete(id, {
-            new: true,
-        });
-        if (!master) {
-            throw new Error('master not found')
-        }
-        res.status(200).send({success: true, body: master})
-    } catch (error) {
-        next(error)
-    }
-})
-
-
-router.post('/masters',  async (req, res,next) => {
-
-    const {name, phone} =  req.body
-
-    if (!name || !phone ){
-        throw new Error('Enter name and phone')
-    }
-    try {
-        const master =  await MasterModel.create({name, phone})
-        res.status(200).send({success: true, body: master})
-    } catch (error) {
-        next(error)
-    }
-})
-
-
-router.patch('/masters/:id', async (req, res, next) => {
-    const { id } = req.params;
-
-    if (!mongoose.Types.ObjectId.isValid(id)) {
-        throw new Error('ID is required')
-    }
-
-    const { name, phone } = req.body;
-
-    if (!name && !phone) {
-        throw new Error('Enter name and phone')
-    }
-
-
-    try {
-        const updateData = {};
-        if (name) updateData.name = name;
-        if (phone) updateData.phone = phone;
-
-        const master = await MasterModel.findByIdAndUpdate(
-            id,
-            updateData,
-            { new: true }
+    const mastersWithOrders = masters.map((master) => {
+      const masterOrders = orders.filter((order) => {
+        return (
+          order?.master && order.master.toString() === master._id.toString()
         );
+      });
 
-        if (!master) {
-            throw new Error('master not found')
-        }
+      const schedule = masterOrders.map((order) => ({
+        id: order._id,
+        startWashTime: order.startWashTime,
+        endWashTime: order.endWashTime,
+      }));
 
-        res.status(200).send({ success: true, body: master });
-    } catch (error) {
-        next(error);
-    }
+      return {
+        id: master._id,
+        name: master.name,
+        schedule: schedule,
+        phone: master.phone,
+      };
+    });
+
+    res.status(200).send({ success: true, body: mastersWithOrders });
+  } catch (error) {
+    next(error);
+  }
 });
 
-module.exports = router
+router.delete("/masters/:id", async (req, res, next) => {
+  const { id } = req.params;
+
+  if (!mongoose.Types.ObjectId.isValid(id)) {
+    throw new Error("ID is required");
+  }
+
+  try {
+    const master = await MasterModel.findByIdAndDelete(id, {
+      new: true,
+    });
+    if (!master) {
+      throw new Error("master not found");
+    }
+    res.status(200).send({ success: true, body: master });
+  } catch (error) {
+    next(error);
+  }
+});
+
+router.post("/masters", async (req, res, next) => {
+  const { name, phone } = req.body;
+
+  if (!name || !phone) {
+    throw new Error("Enter name and phone");
+  }
+  try {
+    const master = await MasterModel.create({ name, phone });
+    res.status(200).send({ success: true, body: master });
+  } catch (error) {
+    next(error);
+  }
+});
+
+router.patch("/masters/:id", async (req, res, next) => {
+  const { id } = req.params;
+
+  if (!mongoose.Types.ObjectId.isValid(id)) {
+    throw new Error("ID is required");
+  }
+
+  const { name, phone } = req.body;
+
+  if (!name && !phone) {
+    throw new Error("Enter name and phone");
+  }
+
+  try {
+    const updateData = {};
+    if (name) updateData.name = name;
+    if (phone) updateData.phone = phone;
+
+    const master = await MasterModel.findByIdAndUpdate(id, updateData, {
+      new: true,
+    });
+
+    if (!master) {
+      throw new Error("master not found");
+    }
+
+    res.status(200).send({ success: true, body: master });
+  } catch (error) {
+    next(error);
+  }
+});
+
+module.exports = router;

From 566bce466305e5e3b90bde35065c8ff8611898f6 Mon Sep 17 00:00:00 2001
From: ilnaz <237x237@gmail.com>
Date: Mon, 3 Mar 2025 19:46:10 +0300
Subject: [PATCH 2/2] feat: delete image

---
 server/routers/dry-wash/image.js | 91 --------------------------------
 server/routers/dry-wash/index.js |  2 -
 2 files changed, 93 deletions(-)
 delete mode 100644 server/routers/dry-wash/image.js

diff --git a/server/routers/dry-wash/image.js b/server/routers/dry-wash/image.js
deleted file mode 100644
index 263e342..0000000
--- a/server/routers/dry-wash/image.js
+++ /dev/null
@@ -1,91 +0,0 @@
-const API_URL = "https://gigachat.devices.sberbank.ru/api/v1"
-const router = require('express').Router()
-const { v4: uuidv4 } = require("uuid");
-
-process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"
-
-const token = 'MTQwMmNmZjgtZjA5OC00OGMxLWI0OTUtNWU3ZTU4YzMzZjdjOmU5OGFiYmNiLThmMDItNGVmOC1hNjhhLTA4Y2QxYjVmOGRmMA=='
-
-
-const getToken = async (req, res) => {
-
-    const rqUID = uuidv4()
-    const body = new URLSearchParams({
-        scope: "GIGACHAT_API_PERS",
-    })
-
-    const response = await fetch("https://ngw.devices.sberbank.ru:9443/api/v2/oauth", {
-        method: "POST",
-        headers: {
-            Authorization: `Basic ${token}`,
-            "Content-Type": "application/x-www-form-urlencoded",
-            Accept: "application/json",
-            RqUID: rqUID,
-        },
-        body,
-    })
-
-    if (!response.ok) {
-        const errorData = await response.json();
-        console.error(" Ошибка запроса:", errorData);
-        return res.status(response.status).json(errorData);
-    }
-
-    return await response.json()
-}
-
-async function analyzeImage(fileId,token) {
-    const response = await fetch(`${API_URL}/chat/completions`, {
-        method: "POST",
-        headers: {
-            "Content-Type": "application/json",
-            Accept: "application/json",
-            Authorization: `Bearer ${token}`,
-        },
-        body: JSON.stringify({
-            model: "GigaChat-Max",
-            stream: false,
-            update_interval: 0,
-            messages: [
-                {
-                    role: "system",
-                    content:
-                        "Ты эксперт по оценке чистоты автомобилей. Твоя задача — анализировать фотографии машин и определять степень их чистоты по 10-балльной шкале, где 1 — очень грязная, 10 — полностью чистая. Отвечай только числом от 1 до 10, без пояснений и дополнительных слов.",
-                },
-                {
-                    role: "user",
-                    content: "Что с чистотой машины? Отвечай на основе приложенного документа",
-                    attachments: [fileId],
-                },
-            ],
-        }),
-    });
-
-    const data = await response.json()
-    console.log(" Результат анализа:", data)
-    return data
-}
-
-router.post("/upload", async (req, res) => {
-
-    const {access_token} = await getToken(req, res)
-
-    const response = await fetch(`${API_URL}/files`, {
-        method: "POST",
-        headers: {
-            Authorization: `Bearer ${access_token}`,
-            contentType: "multipart/form-data",
-        },
-        body: req.body,
-    })
-
-    const data = await response.json()
-
-    const analysisResponse = await analyzeImage(data.id,access_token)
-
-    res.json({ fileId: data.id, analysis: analysisResponse })
-})
-
-
-
-module.exports = router
diff --git a/server/routers/dry-wash/index.js b/server/routers/dry-wash/index.js
index b1dda9f..5a89a80 100644
--- a/server/routers/dry-wash/index.js
+++ b/server/routers/dry-wash/index.js
@@ -2,13 +2,11 @@ const router = require('express').Router()
 const armMasterRouter  = require('./arm-master')
 const armOrdersRouter  = require('./arm-orders')
 const orderRouter  = require('./order')
-const imageRouter  = require('./image')
 
 
 router.use('/arm', armMasterRouter)
 router.use('/arm', armOrdersRouter)
 router.use('/order', orderRouter)
-router.use('/image', imageRouter)
 
 
 module.exports = router