icon picker
Франчайзинг

Last edited 35 days ago by Daria Zorina
Monosnap franchasing 2024-06-09 22-44-30.png

Описание

Страница “Франчайзинг” предназначена для управления франшизами и просмотра информации о них.

Доступность

• Пользователи с правами франчайзера и администратора.
• Франчайзеры видят все франшизы, если в настройках включена опция “видеть как франчайзер”. В противном случае видят только свою франшизу.

Функциональность

На странице франшизы можно отслеживать в реал-тайм загруженность адресов в каждой из франшиз. Также доступны следующие действия:

Переход на страницу адреса для редактирования информации.
Переход к странице тест-реквест в тестовом режиме для имитации пути пользователя и проверки работы. Этот функционал несет тестовый характер и в дальнейшем, скорее всего, будет скрыт, если не будет особого пожелания.
Кнопка “Создать франшизу”:
4. В будущем будет вести на путь создания полной франшизы, начиная от создания франчайзера и франчайзи, заканчивая созданием локации и полной настройки системы под новую франшизу. (В данный момент кнопка не активна)

Просмотр франшиз

Функционал “Просмотр франшиз” предоставляет следующую информацию:
ID франшизы.
Имя франчайзера.
Email франчайзера.
Адреса, включенные в франшизу:
Ценовая категория (ценовой тир каждой из адресов).
Количество ячеек.
Количество занятых ячеек.


Логика

Источники данных и взаимодействие с backend

Таблица: Franchise View

Поля и их назначение

franchise_id: Уникальный идентификатор франшизы. Используется для идентификации франшизы в системе.
franchiasii_mail: Email франчайзи. Этот email используется для связи с франчайзи.
franchise_name: Имя франчайзера. Отображается на карточке франшизы.
franchise_email: Email франчайзера. Используется для связи с франчайзером.
franchise_phone: Телефон франчайзера. Используется для связи с франчайзером.
franchise_avatar: Путь к аватару франчайзера. Отображается на карточке франшизы.
locations_ids: Массив уникальных идентификаторов адресов, связанных с франшизой. Используется для отображения и управления адресами в рамках франшизы.
other_users_emails: Массив email других пользователей, связанных с франшизой. Используется для управления доступом и правами других пользователей.
rented_cells: Количество арендованных ячеек. Это агрегированное поле, которое считает количество ячеек со статусом "rented" для всех адресов, связанных с данной франшизой.

SQL-запрос

create view public.franchise_view as
select
f.id as franchise_id,
f.franchiasii_mail,
ur.username as franchise_name,
ur.email as franchise_email,
ur.phone as franchise_phone,
ur.avatar_patch as franchise_avatar,
array_agg(distinct l.loc_id) as locations_ids,
array_agg(distinct ur2.email) as other_users_emails,
(
select
count(*) as count
from
cells c
where
(
c.adress in (
select
loc_geo.loc_id
from
loc_geo
where
loc_geo.franchisee = f.id
)
)
and c.status = 'rented'::cell_status
) as rented_cells
from
franchise f
left join users_by_roles ur on ur.email::text = f.franchiasii_mail
left join users_by_roles ur2 on ur2."franchiseZone" = f.id
left join loc_geo l on l.franchisee = f.id
group by
f.id,
f.franchiasii_mail,
ur.username,
ur.email,
ur.phone,
ur.avatar_patch;


Описание

franchise_id: Уникальный идентификатор франшизы, используемый для идентификации франшизы в системе.
franchiasii_mail: Email франчайзи. Используется для связи и идентификации франчайзи.
franchise_name: Имя франчайзера. Отображается на карточке франшизы для пользователя.
franchise_email: Email франчайзера. Используется для связи и уведомлений.
franchise_phone: Телефон франчайзера. Используется для связи.
franchise_avatar: Путь к аватару франчайзера. Используется для отображения на карточке франшизы.
locations_ids: Массив идентификаторов адресов, связанных с франшизой. Отображает все адреса, которые относятся к конкретной франшизе.
other_users_emails: Массив email других пользователей, связанных с франшизой. Показывает всех пользователей, которые имеют доступ к данной франшизе.
rented_cells: Количество арендованных ячеек. Показывает, сколько ячеек из адресов данной франшизы находятся в аренде.

Использование в коде

Виджет CardOfFranchiseWidget используется для отображения информации о франшизе на основе данных из этой view:
CardOfFranchiseWidget(
key: Key(
'Key0xq_${staggeredViewIndex}_of_${staggeredViewFranchiseViewRowList.length}'),
franchiseID: staggeredViewFranchiseViewRow.franchiseId!,
)


franchiseID: Уникальный идентификатор франшизы, используется для получения данных о конкретной франшизе из view.
Этот виджет обеспечивает корректное отображение данных о франшизах на странице, включая все поля, описанные выше.
Данные о франшизах загружаются с backend-сервера и отображаются на странице в виде списка карточек.
Карточки франшиз генерируются с использованием данных из списка франшиз, полученного с сервера.
megaphone

Будущие обновления

• В дальнейшем будет возможность редактировать информацию о франшизах.
• Просмотр всех пользователей, кому доступна информация о франшизах, через иконку с портретом.
• Просмотр всей юридической информации о создании франшизы
brief

Заключение

Страница “Франчайзинг” предоставляет инструменты для управления и просмотра информации о франшизах, с возможностью редактирования адресов и имитации пути пользователя. В будущем планируется расширение функционала, включая создание новых франшиз и более детальное управление информацией о них.
arrow
Нужно что-то добавить на этой странице?

Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.