nikanor97 / Vishnya_serv_app

Серверное приложение, реализующее логику бьюти-маркетплейса

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Vishnya_serv_app

Серверное приложение, реализующее логику бьюти-маркетплейса.

Документацию к API можно найти в swagger: https://app.swaggerhub.com/apis-docs/nikanor97/Vishnya/1.0 Основой приложения являются три сущности: Салон, Мастер и Клиент. Все методы, описанные ниже, организуют взаимодействие между ними. В качестве натурального ключа в БД принимается телефон (он необходим для существования каждого из объектов), соответственно, не может существовать двух объектов одного класса с одинаковыми телефонами.

Описание методов

  • /salon/reg - регистрация салона в системе.

  • /salon/del - удаление салона из системы. Удаление салона возможно только в том случае, если к нему не прикреплен ни один мастер на момент удаления. В противном случае, необходимо изменить прикрепление мастера к салону (см. метод /master/change_salon).

  • /salon/get_masters - получение мастеров, прикрепленных к указанному салону.

  • /salon/get_profile - получение профайла салона

  • /master/reg - регистрация мастера в системе. Если при регистрации указать салон (он должен уже существовать к этому моменту), к которому данный мастер должен быть прикреплен, то в списке мастеров салона появится данный мастер.

  • /master/get_profile - получение профайла мастера

  • /master/del - удаление мастера из системы. Удаление возможно только тогда, когда у данного мастера нет предстоящих записей. В противном случае их надо перенести (см. методы /master/remove_appointment и /master/add_appointment). Также, при удалении мастера, он пропадает из списка мастеров своего салона и пропадают все приемы с данным мастером в будущем (приемы пропадают у клиентов в том числе).

  • /master/change_salon - изменение прикрепления мастера к салону.

  • /master/add_appointment - добавление приема. Прием клиента можно добавить только если у мастера есть рабочие часы на протяжении всего интервала приема. В противном случае, необходимо либо изменить желаемое премя приема на то, где у мастера нет других приемов, но при этом есть рабочие часы, либо же добавить рабочие часы (см. /master/add_working_hours), покрывающие желаемый промежуток времени.

  • /master/remove_appointment - удаление приема. Указанный прием пропадет из списка запланированных для клиента и мастера.

  • /master/get_appointments - получение всех приемов мастера за указанный период.

  • /master/add_working_hours - добавление рабочих часов мастеру.

  • /master/remove_working_hours - освобождение мастера от рабочих часов, указанных в запросе. Освобождение от рабочих часов возможно только в том случае, если на выбранный промежуток времени не приходится ни одной консультации. В противном случае требуется их перенести, используя методы, описанные выше. Также, при освобождении мастера на промежуток времени, меньший (вложенный), чем его рабочие часы, то имеющийся прежде слот рабочего времени разобьется на два слота - до интервала освобождения и после него.

  • /master/get_working_hours - получение рабочих часов мастера за указанный промежуток времени. В результат попадут все промежутки рабочих часов данного мастера в указанном интервале времени.

  • /client/reg - регистрация клиента в системе.

  • /client/del - удаление клиента из системы. При удалении клиента из системы пропадут все запланированные в будущем приемы у мастеров, то есть их время освободится.

  • /client/get_appointments - получение всех приемов клиента за указанный промежуток времени.

  • /client/get_profile - получение профайла клиента

About

Серверное приложение, реализующее логику бьюти-маркетплейса

License:MIT License


Languages

Language:Python 100.0%