Запрос на слияние 'feature/sber_mobile/support' (#13) из feature/sber_mobile/support в sber_mobile

This commit is contained in:
DmitrievMS
2025-06-11 15:39:20 +00:00
3 changed files with 34 additions and 1 deletions

View File

@@ -179,6 +179,15 @@ CREATE TABLE tickets (
updated_at TIMESTAMPTZ DEFAULT NOW()
);
-- 18. Сообщения в службу поддержки
CREATE TABLE support (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL REFERENCES auth.users(id),
message TEXT NOT NULL,
is_from_user BOOLEAN NOT NULL,
created_at TIMESTAMPTZ DEFAULT NOW()
);
-- Индексы
CREATE INDEX idx_buildings_management_company ON buildings(management_company_id);
CREATE INDEX idx_management_services_company ON management_services(management_company_id);

View File

@@ -14,6 +14,7 @@ const apartmentsRouter = require('./apartments');
const buildingsRouter = require('./buildings');
const userApartmentsRouter = require('./user_apartments');
const avatarRouter = require('./media');
const supportRouter = require('./supportApi');
module.exports = router;
@@ -31,4 +32,5 @@ router.use('', utilityPaymentsRouter);
router.use('', apartmentsRouter);
router.use('', buildingsRouter);
router.use('', userApartmentsRouter);
router.use('', avatarRouter);
router.use('', avatarRouter);
router.use('', supportRouter);

View File

@@ -0,0 +1,22 @@
const express = require('express');
const router = express.Router();
const { supabase } = require('./supabaseClient');
// POST /api/support
router.post('/support', async (req, res) => {
const { user_id, message } = req.body;
if (!user_id || !message) {
return res.status(400).json({ error: 'user_id и message обязательны' });
}
try {
const { data, error } = await supabase
.from('support')
.insert([{ user_id, message, is_from_user: true }]);
if (error) throw error;
return res.json({ reply: 'Спасибо за ваше сообщение! Служба поддержки свяжется с вами в ближайшее время.' });
} catch (err) {
return res.status(500).json({ error: 'Ошибка при сохранении сообщения' });
}
});
module.exports = router;