Продумать структуру и реализовать модели Клиент (физическое лицо) (реализовать на основе django.contrib.auth)
- идентификационный номер ( всегда заканчивается на 01 )
- номер телефона - уникальный, может быть только один в системе
- дополнительные номера (может иметь несколько)
- ФИО – в отдельных строках
- дата создания
- дата изменения
- дата изменения статуса
- статус (активен, не активен)
- тип (первичный, повторный, внешний, косвенный)
- email – может иметь несколько имейл
- пол – всегда только один (мужской, женский, неизвестно)
- часовой пояс
- Социальные сети
- VK – может иметь несколько
- FB – может иметь несколько
- ОК – всегда один
- Instagram, – всегда один
- Telegram – всегда один
- WhatsApp – всегда один
- Viber – всегда один
Юридическое лицо
- ID идентификационный номер ( всегда заканчивается на 02 )
- дата создания
- дата изменения
- название полное
- название сокращенное
- ИНН
- КПП
Департаменты
- ID идентификационный номер ( всегда заканчивается на 03 )
- название древовидная структура с максимальным уровнем вложенности 7
У одного юр лица может быть неограниченное кол-во департаментов Клиент может быть прикреплен к нескольким департаментам
- Реализовать CRUD через административную часть Django клиенты, юр лица и департаменты с учетом указанных ограничений через административную часть Django возможность добавлять физ лица в департаменты из карточки департамента, фиксировать дату добавления клиента в департамент в списке департаментов выводить кол-во клиентов
- Реализовать получение списков юр лиц, департаментов и клиентов, через DRF, вместе с юр лицами отдавать информацию со списком департаментах и клиентах. Максимально оптимизировать запросы в базу
- Реализовать заполнение тестовыми данными через manage команду юр лица - не менее 200 департаменты - не менее 500 физ лица - не менее 30000
Django 3+, Python 3.5+, база на свое усмотрение без использования docker
Если используете дополнительные библиотеки, то необходимо оформить все в requirements.txt Результат тестового задания: должен быть размещен в виде репозитория на github или bitbucket.
==========================================================
Инструкиця по разворачиванию:
- создат виртульную среду и активировать её (optional);
- установить зависимости из файла requirements.txt (pip install -r requirements.txt);
- мигрировать миграции(python manage.py migrate);
- запустить проект локально(python manage.py runserver).
Запуск заполнения тестовыми данными:
- python manage.py generatetestdata.