Обновлены модели и функции для поддержки групповых продаж. Внесены изменения в API для передачи идентификаторов групповых продаж. Обновлены SQL-скрипты и модели для учета нового поля group_sale_id. Изменены данные для создания продажи, включая категорию и стоимость.
This commit is contained in:
parent
bf6a6a8987
commit
9157570e58
@ -4,16 +4,17 @@ import json
|
|||||||
|
|
||||||
# Конфигурация API
|
# Конфигурация API
|
||||||
BASE_URL = "http://127.0.0.1:8001"
|
BASE_URL = "http://127.0.0.1:8001"
|
||||||
API_KEY = "672a1437-70e8-461f-9bff-20f5ce4a023d"
|
API_KEY = "de058226-37d3-4d0e-a483-3c2a7fac3573"
|
||||||
REF = "9bd1a6bd-98e1-48f4-a120-3b3d016011c0"
|
REF = "0d9aaa96-80e6-424c-84c9-ff70a6eb915e"
|
||||||
|
|
||||||
# Данные для запроса на создание продажи
|
# Данные для запроса на создание продажи
|
||||||
# Замените эти значения на актуальные для вашей продажи
|
# Замените эти значения на актуальные для вашей продажи
|
||||||
sale_data = {
|
sale_data = {
|
||||||
"cost": 100.50, # Стоимость продажи
|
"cost": 100, # Стоимость продажи
|
||||||
"ref": REF, # Ваш реферальный код
|
"ref": REF, # Ваш реферальный код
|
||||||
"sale_id": str(uuid.uuid4()), # Уникальный идентификатор продажи для вашей компании
|
"sale_id": str(uuid.uuid4()), # Уникальный идентификатор продажи для вашей компании
|
||||||
"category": 1 # id категории (например, 1 - basic)
|
"category": "vip", # название категории (например, 'basic', 'premium', 'vip')
|
||||||
|
"group_sale_id": str(uuid.uuid4()) # уникальный идентификатор группы продаж
|
||||||
}
|
}
|
||||||
|
|
||||||
# Эндпоинты
|
# Эндпоинты
|
||||||
|
|||||||
@ -198,7 +198,9 @@ def fill_db():
|
|||||||
all_categories = session.query(SaleCategory).filter_by(company_id=company.id).all()
|
all_categories = session.query(SaleCategory).filter_by(company_id=company.id).all()
|
||||||
for ref in refs:
|
for ref in refs:
|
||||||
sale_count = random.randint(20, int(20 * 1.25)) # от 20 до 25
|
sale_count = random.randint(20, int(20 * 1.25)) # от 20 до 25
|
||||||
for _ in range(sale_count):
|
group_size = 5
|
||||||
|
group_sale_ids = [str(uuid4()) for _ in range((sale_count // group_size) + 1)]
|
||||||
|
for idx in range(sale_count):
|
||||||
cost = round(random.uniform(100, 1000), 2)
|
cost = round(random.uniform(100, 1000), 2)
|
||||||
sale_category = random.choice(all_categories)
|
sale_category = random.choice(all_categories)
|
||||||
crediting = round(cost * (sale_category.perc / 100.0), 2)
|
crediting = round(cost * (sale_category.perc / 100.0), 2)
|
||||||
@ -208,11 +210,13 @@ def fill_db():
|
|||||||
time_diff = end_dttm - start_dttm
|
time_diff = end_dttm - start_dttm
|
||||||
random_seconds = random.uniform(0, time_diff.total_seconds())
|
random_seconds = random.uniform(0, time_diff.total_seconds())
|
||||||
sale_dttm = start_dttm + timedelta(seconds=random_seconds)
|
sale_dttm = start_dttm + timedelta(seconds=random_seconds)
|
||||||
|
group_sale_id = group_sale_ids[idx // group_size]
|
||||||
sale = Sale(
|
sale = Sale(
|
||||||
cost=cost,
|
cost=cost,
|
||||||
crediting=crediting,
|
crediting=crediting,
|
||||||
ref=ref.id,
|
ref=ref.id,
|
||||||
sale_id=str(uuid4()),
|
sale_id=str(uuid4()),
|
||||||
|
group_sale_id=group_sale_id,
|
||||||
company_id=company.id,
|
company_id=company.id,
|
||||||
category=sale_category.id,
|
category=sale_category.id,
|
||||||
sale_dttm=sale_dttm,
|
sale_dttm=sale_dttm,
|
||||||
|
|||||||
@ -257,6 +257,7 @@ async def create_sale(
|
|||||||
crediting=crediting_amount,
|
crediting=crediting_amount,
|
||||||
ref=referral.id,
|
ref=referral.id,
|
||||||
sale_id=req.sale_id,
|
sale_id=req.sale_id,
|
||||||
|
group_sale_id=req.group_sale_id,
|
||||||
company_id=company.id,
|
company_id=company.id,
|
||||||
category=sale_category.id,
|
category=sale_category.id,
|
||||||
sale_dttm=datetime.utcnow()
|
sale_dttm=datetime.utcnow()
|
||||||
|
|||||||
@ -20,7 +20,8 @@ class SaleCreateRequest(BaseModel):
|
|||||||
promocode: Optional[str] = None
|
promocode: Optional[str] = None
|
||||||
sale_id: str
|
sale_id: str
|
||||||
cost: float
|
cost: float
|
||||||
category: int # id категории продажи
|
category: str # название категории продажи
|
||||||
|
group_sale_id: str # новое поле для группировки продаж
|
||||||
|
|
||||||
class SaleCreateResponse(BaseModel):
|
class SaleCreateResponse(BaseModel):
|
||||||
msg: str
|
msg: str
|
||||||
|
|||||||
@ -164,6 +164,7 @@ CREATE TABLE sale (
|
|||||||
crediting FLOAT NOT NULL,
|
crediting FLOAT NOT NULL,
|
||||||
ref INTEGER NOT NULL,
|
ref INTEGER NOT NULL,
|
||||||
sale_id VARCHAR NOT NULL,
|
sale_id VARCHAR NOT NULL,
|
||||||
|
group_sale_id VARCHAR NOT NULL,
|
||||||
company_id INTEGER NOT NULL,
|
company_id INTEGER NOT NULL,
|
||||||
category INTEGER NOT NULL,
|
category INTEGER NOT NULL,
|
||||||
sale_dttm DATETIME NOT NULL,
|
sale_dttm DATETIME NOT NULL,
|
||||||
|
|||||||
@ -69,6 +69,7 @@ class Sale(SQLModel, table=True):
|
|||||||
crediting: float # сколько начислено за продажу
|
crediting: float # сколько начислено за продажу
|
||||||
ref: int = Field(foreign_key="ref.id")
|
ref: int = Field(foreign_key="ref.id")
|
||||||
sale_id: str
|
sale_id: str
|
||||||
|
group_sale_id: str # новое поле для группировки продаж
|
||||||
company_id: int = Field(foreign_key="company.id")
|
company_id: int = Field(foreign_key="company.id")
|
||||||
category: int = Field(foreign_key="salecategory.id") # новая ссылка на категорию
|
category: int = Field(foreign_key="salecategory.id") # новая ссылка на категорию
|
||||||
sale_dttm: datetime = Field(default_factory=datetime.utcnow)
|
sale_dttm: datetime = Field(default_factory=datetime.utcnow)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user