admin notifications and data explorer backend
This commit is contained in:
@@ -8,6 +8,7 @@ from app.core.config import settings
|
||||
from app.db.session import get_session
|
||||
from app.models.car import AuditLog, Car, ServiceCenter, ServiceEmployee, VehicleAccess
|
||||
from app.models.user import User
|
||||
from app.services.admin_notifications import create_admin_notification
|
||||
from app.services.telegram_auth import verify_webapp_init_data
|
||||
|
||||
|
||||
@@ -36,6 +37,24 @@ async def get_or_create_telegram_user(
|
||||
if user is None:
|
||||
user = User(**{key: value for key, value in payload.items() if value is not None})
|
||||
session.add(user)
|
||||
await session.flush()
|
||||
await create_admin_notification(
|
||||
session,
|
||||
event_type="user_registered",
|
||||
title="Новый пользователь",
|
||||
body="\n".join(
|
||||
item
|
||||
for item in [
|
||||
f"Имя: {' '.join(part for part in [first_name, last_name] if part) or '-'}",
|
||||
f"Telegram ID: {telegram_id}",
|
||||
f"Username: @{username}" if username else "Username: -",
|
||||
]
|
||||
),
|
||||
entity_type="user",
|
||||
entity_id=user.id,
|
||||
idempotency_key=f"user_registered:{telegram_id}",
|
||||
metadata={"telegram_id": telegram_id, "username": username},
|
||||
)
|
||||
else:
|
||||
for field, value in payload.items():
|
||||
if value is not None:
|
||||
|
||||
Reference in New Issue
Block a user