Модели:
- Книга (Book)
- Заказ на книгу (BookOrder)
- Заявка в издательство (BookQuery)
Основные составляющие модели книги:
- Категория (ссылка на модель категории)
- Количество книг в магазине
- Наличие книги (есть или нет)
- Автор книги
- Название книги
- Год выпуска
- Издательство
- Количество страниц
- Цена
- Розничная наценка
- Рейтинг спроса
- Статус книги (новая или известная). В зависимости от статуса будет устанавливаться розничная наценка на товар (если книга новая, то наценка больше). Расчет рейтинга спроса - количество заказов данной книги / общее количество заказов. Для удобства группировки книг по тематике данный пункт будет вынесен как отдельная модель, а в модели книги будет храниться на нее ссылка.
Основные составляющие модели категории книги:
- Название категории
Основные составляющие модели заказа:
- Фамилия покупателя
- Номер телефона
- Перечень заказываемых книг с указанием их количества
- Статус заказа (в обработке, выполнен). При наличии книг и нужного их количества для заказчика заказ автоматически считается выполненным, иначе ему присваивается статус "в обработке" и создается новая заявка в издательство. Количество книг для получения вычисляется так: количество книг в заказе - количество экземпляров на складе + некоторое дополнительное количество экземпляров "на будущее". После того, как заявка в издательство будет выполнена, заказ автоматически закрывается.
Заказываемую книгу проще вынести в отдельную модель и потом формировать перечень заказываемых книг для заказа из ее данных:
- Номер заказа
- Название книги (может быть пустым)
- Автор книги
- Пометка (при отсутствии названии устанавливается "новая")
- Количество экземпляров заказываемой книги.
Основные составляющие модели заявки:
- Издательство
- Книга, которую надо привезти
- Количество экземпляров данной книги для привоза в магазин
- Статус заявки (в процессе, выполнена).