Добавлены модели и функции для работы с аккаунтами в базе данных. Реализовано заполнение базы данных тестовыми аккаунтами, добавлено хеширование для идентификации TgAgent. Обновлены функции авторизации и получения аккаунта.
This commit is contained in:
23
fill_db.py
23
fill_db.py
@@ -1,9 +1,10 @@
|
||||
import random
|
||||
from uuid import uuid4
|
||||
from sqlmodel import Session
|
||||
from main import AUTH_DB_ENGINE, TgAgent, Ref, Sale, Transaction
|
||||
from main import AUTH_DB_ENGINE, TgAgent, Ref, Sale, Transaction, Account
|
||||
from sqlalchemy import text
|
||||
from datetime import datetime, timedelta
|
||||
from hashlib import sha256
|
||||
|
||||
|
||||
# Константа: список user_ids
|
||||
@@ -72,11 +73,28 @@ def fill_db():
|
||||
session.execute(text("DELETE FROM sale"))
|
||||
session.execute(text("DELETE FROM ref"))
|
||||
session.execute(text("DELETE FROM tgagent"))
|
||||
session.execute(text("DELETE FROM account"))
|
||||
session.commit()
|
||||
# 0. Accounts
|
||||
accounts = []
|
||||
for i in range(4):
|
||||
acc = Account(
|
||||
login=f"user{i+1}",
|
||||
password="password123", # В реальном проекте пароли должны быть захешированы!
|
||||
name=NAMES[i % len(NAMES)],
|
||||
email=f"user{i+1}@example.com",
|
||||
balance=round(random.uniform(1000, 10000), 2)
|
||||
)
|
||||
session.add(acc)
|
||||
accounts.append(acc)
|
||||
session.commit()
|
||||
for acc in accounts:
|
||||
session.refresh(acc)
|
||||
# 1. TgAgents
|
||||
tg_agents = []
|
||||
for i, tg_agent_id in enumerate(USER_IDS):
|
||||
dt = random.choice(date_list)
|
||||
hash_value = sha256(f"{tg_agent_id}sold".encode()).hexdigest()
|
||||
tg_agent = TgAgent(
|
||||
tg_id=tg_agent_id,
|
||||
chat_id=tg_agent_id, # chat_id совпадает с tg_id
|
||||
@@ -84,7 +102,8 @@ def fill_db():
|
||||
name=NAMES[i % len(NAMES)],
|
||||
login=LOGINS[i % len(LOGINS)],
|
||||
create_dttm=dt,
|
||||
update_dttm=dt
|
||||
update_dttm=dt,
|
||||
hash=hash_value
|
||||
)
|
||||
session.add(tg_agent)
|
||||
tg_agents.append(tg_agent)
|
||||
|
||||
Reference in New Issue
Block a user