Домен: Клиенты¶
Всё, что связано с клиентами: профили, контакты, карты лояльности.
—
ORM-модели¶
Client¶
Таблица client — основная запись о клиенте.
Поле |
Тип |
Описание |
|---|---|---|
|
|
Первичный ключ |
|
|
Ссылка на |
|
|
Папка клиентов (1=Физлица, 2=Юрлица, 3=VIP) |
|
|
Полное имя |
|
|
Краткое имя (первые 30 символов fullname) |
|
|
Дата рождения |
|
|
1=муж, 2=жен, 0=не указан |
|
|
0=юрлицо, 1=физлицо/ИП |
|
|
Скидка на товары % |
|
|
Скидка на работы % |
|
|
0=активен, 1=скрыт |
|
|
Произвольное примечание |
from autodealer.domain.client import Client
client = Client.objects.get(client_id=920)
print(client.fullname, client.discount_work)
# Поиск по имени
results = Client.objects.filter(fullname__icontains="Иванов").all()
Contact¶
Таблица contact — телефоны и email клиентов/организаций.
Поле |
Тип |
Описание |
|---|---|---|
|
|
Первичный ключ |
|
|
Ссылка на |
|
|
Мобильный телефон |
|
|
|
|
|
1=основной контакт |
|
|
0=активен |
ClientTree¶
Таблица client_tree — иерархия папок клиентов (Физлица / Юрлица / VIP).
from autodealer.domain.client_tree import ClientTree
folders = ClientTree.objects.filter(hidden=0).all()
CardInfo¶
Таблица card_info — дисконтные/бонусные карты клиентов.
Поле |
Тип |
Описание |
|---|---|---|
|
|
Первичный ключ |
|
|
Владелец карты (клиент) |
|
|
Номер карты |
|
|
0=активна |
—
Высокоуровневые действия (actions.client)¶
create_client¶
- autodealer.actions.client.create_client(fullname, *, phone=None, email=None, birth=None, sex=None, discount=0.0, discount_work=0.0, client_tree_id=1, created_by_user_id=1)¶
Создать клиента атомарно:
DirectoryRegistry→Client→Contact.- Параметры:
fullname (str) – Полное имя (обязательно).
phone (str) – Мобильный телефон.
email (str) – Email.
birth (date) – Дата рождения.
sex (int) – 1=муж, 2=жен.
discount (float) – Скидка на товары %.
discount_work (float) – Скидка на работы %.
client_tree_id (int) – Папка (1=Физлица, 2=Юрлица, 3=VIP).
- Результат:
client_id.- Тип результата:
int
from autodealer.actions.client import create_client from datetime import date client_id = create_client( "Иванов Иван Иванович", phone="79991234567", birth=date(1990, 5, 15), discount_work=5.0, )