Initial commit: VKUS vitrina MVP (frontend + backend).

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-29 23:13:06 +07:00
commit 862e6b7b25
113 changed files with 50949 additions and 0 deletions
+179
View File
@@ -0,0 +1,179 @@
from app.models import Appeal, AppealComment, ServiceItem
MOCK_APPEALS: list[dict] = [
{
"id": "1",
"number": "INC-2026-004521",
"title": "Не открывается модуль отчётов Meridium 4",
"system": "Meridium 4",
"status": "in_progress",
"status_label": "В работе у поддержки",
"next_step": "Ожидайте ответа специалиста — запрошены логи с сервера отчётов",
"priority": "high",
"priority_label": "Высокий",
"created_at": "2026-06-27T09:15:00",
"updated_at": "2026-06-28T14:30:00",
"assignee": "Иванов А.С.",
"description": (
"При попытке открыть отчёт «Статус оборудования» появляется ошибка доступа. "
"Основной модуль Meridium работает."
),
"comments": [
{
"id": "c1",
"author": "Иванов А.С.",
"text": (
"Добрый день! Проверьте, пожалуйста, доступ к серверу отчётов "
"s001as-apmrep.sibur.local. Запросите логи из браузера (F12 → Console)."
),
"date": "2026-06-28T11:00:00",
"is_support": True,
},
],
},
{
"id": "2",
"number": "INC-2026-004398",
"title": "Сброс пароля ЕСУИД",
"system": "ЕСУИД",
"status": "resolved",
"status_label": "Решено",
"next_step": "Проверьте вход в систему. Если проблема повторится — переоткройте обращение",
"priority": "medium",
"priority_label": "Средний",
"created_at": "2026-06-20T16:45:00",
"updated_at": "2026-06-21T10:20:00",
"assignee": "Петрова М.В.",
"description": "Не могу войти в Meridium — забыл пароль ЕСУИД.",
"resolution": (
"Пароль сброшен. Новый временный пароль отправлен на корпоративную почту. "
"При первом входе потребуется сменить пароль."
),
"comments": [
{
"id": "c2",
"author": "Петрова М.В.",
"text": "Пароль сброшен, инструкция отправлена на почту.",
"date": "2026-06-21T10:20:00",
"is_support": True,
},
],
},
{
"id": "3",
"number": "INC-2026-004612",
"title": "Медленная загрузка 1С:Управление предприятием",
"system": "1С",
"status": "waiting",
"status_label": "Ожидает вашего ответа",
"next_step": "Уточните, в какое время проблема проявляется чаще всего",
"priority": "medium",
"priority_label": "Средний",
"created_at": "2026-06-28T08:00:00",
"updated_at": "2026-06-29T09:00:00",
"assignee": "Сидоров К.П.",
"description": "1С открывается более 5 минут, особенно утром.",
"comments": [
{
"id": "c3",
"author": "Сидоров К.П.",
"text": (
"Уточните, пожалуйста: проблема возникает только утром или в течение всего дня? "
"Сколько пользователей затронуто?"
),
"date": "2026-06-29T09:00:00",
"is_support": True,
},
],
},
{
"id": "4",
"number": "INC-2026-004701",
"title": "Запрос доступа к StarLims",
"system": "StarLims",
"status": "new",
"status_label": "Новое обращение",
"next_step": "Обращение в очереди на назначение исполнителя",
"priority": "low",
"priority_label": "Низкий",
"created_at": "2026-06-29T11:30:00",
"updated_at": "2026-06-29T11:30:00",
"description": "Необходим доступ к модулю лабораторных исследований для нового сотрудника.",
"comments": [],
},
]
MOCK_SERVICES: list[dict] = [
{
"id": "s1",
"title": "Сброс пароля ЕСУИД",
"category": "Доступ и учётные записи",
"system": "ЕСУИД",
"description": "Сброс или разблокировка учётной записи в единой системе идентификации",
"sla": "4 часа",
},
{
"id": "s2",
"title": "Предоставление доступа к Meridium 4",
"category": "Доступ и учётные записи",
"system": "Meridium 4",
"description": "Запрос роли и прав доступа к системе управления активами",
"sla": "2 рабочих дня",
},
{
"id": "s3",
"title": "Ошибка при формировании отчёта",
"category": "Инцидент",
"system": "Meridium 4",
"description": "Сообщение об ошибке при работе с отчётами на сервере отчётов",
"sla": "8 часов",
},
{
"id": "s4",
"title": "Проблема с входом в 1С",
"category": "Инцидент",
"system": "1С",
"description": "Невозможность авторизации или ошибки при запуске клиента 1С",
"sla": "4 часа",
},
{
"id": "s5",
"title": "Запрос доступа к StarLims",
"category": "Доступ и учётные записи",
"system": "StarLims",
"description": "Предоставление доступа к лабораторной информационной системе",
"sla": "3 рабочих дня",
},
{
"id": "s6",
"title": "Медленная работа системы",
"category": "Инцидент",
"system": "Общее",
"description": "Замедление работы корпоративных приложений",
"sla": "8 часов",
},
{
"id": "s7",
"title": "Установка ПО на рабочее место",
"category": "Запрос на обслуживание",
"system": "ПРМ",
"description": "Установка разрешённого программного обеспечения на АРМ",
"sla": "2 рабочих дня",
},
{
"id": "s8",
"title": "Консультация по ЛИМС",
"category": "Консультация",
"system": "ЛИМС",
"description": "Вопросы по работе с лабораторной информационной системой",
"sla": "1 рабочий день",
},
]
def seed_appeals() -> list[Appeal]:
return [Appeal.model_validate(item) for item in MOCK_APPEALS]
def get_services() -> list[ServiceItem]:
return [ServiceItem.model_validate(item) for item in MOCK_SERVICES]