admin notifications and data explorer backend
This commit is contained in:
@@ -27,6 +27,7 @@ from app.schemas.service_center import (
|
||||
VehicleUpdate,
|
||||
)
|
||||
from app.schemas.user import UserRead
|
||||
from app.services.admin_notifications import create_admin_notification
|
||||
from app.services.odometer import (
|
||||
add_odometer_history,
|
||||
recalculate_current_odometer,
|
||||
@@ -381,6 +382,20 @@ async def create_vehicle(
|
||||
changed_by=current_user.id,
|
||||
)
|
||||
await log_audit(session, actor=current_user, action="vehicle.create", target_type="vehicle", target_id=car.id)
|
||||
vehicle_count = (
|
||||
await session.execute(select(Car.id).where(Car.owner_id == current_user.id).limit(2))
|
||||
).scalars().all()
|
||||
if len(vehicle_count) == 1:
|
||||
await create_admin_notification(
|
||||
session,
|
||||
event_type="vehicle_created",
|
||||
title="Пользователь впервые добавил авто",
|
||||
body=f"{current_user.first_name or current_user.username or current_user.telegram_id}: {car.name}",
|
||||
entity_type="vehicle",
|
||||
entity_id=car.id,
|
||||
idempotency_key=f"first_vehicle:{current_user.id}",
|
||||
metadata={"user_id": current_user.id, "vehicle_id": car.id},
|
||||
)
|
||||
await session.commit()
|
||||
await session.refresh(car)
|
||||
return car
|
||||
|
||||
Reference in New Issue
Block a user