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