Заголовок: Реализация функционала создания новой записи (Create Appointment)
Описание изменений:
•
Бизнес-логика (Store):
◦
Реализован CreateAppointmentStore для управления состоянием экрана создания записи.
◦
Добавлена динамическая загрузка необходимых данных: список клиентов, доступные услуги, рабочие часы мастера и существующие записи на выбранную дату.
◦
Реализован расчет доступных временных слотов (recalculateSlots) с учетом длительности выбранных услуг и текущей занятости дня.
◦
Добавлен контроль "сверхурочного" времени (isOvertime): система предупреждает, если выбранные услуги выходят за рамки рабочего времени мастера.
◦
Реализована валидация формы создания записи (проверка выбора клиента, услуг и корректности временного слота).
•
Модели и данные:
◦
Интегрированы UseCase для работы с расписанием: GetAvailableTimeSlotsUseCase, GetWorkingDayByDateUseCase, SaveAppointmentUseCase и др.
◦
Обновлена логика работы с сущностями Appointment и ServiceShortInfo.
◦
Используется kotlin.uuid.Uuid для генерации идентификаторов новых записей.
•
UI и UX:
◦
Добавлена обработка событий выбора даты, времени, клиента и переключения услуг.
◦
Реализовано автоматическое суммирование стоимости и длительности выбранных услуг.
◦
Настроена навигация и уведомления пользователя (закрытие экрана после сохранения, показ ошибок).
•
Инфраструктура:
◦
Обновлены DI-модули (AppointmentDetailModule) для поддержки новых UseCase.
◦
Внесены правки в базовые компоненты UI (PeriodPickerBottomSheet, VerticalList) для поддержки процесса выбора параметров записи.
2 дня назад