This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
from fastapi import APIRouter, Depends, HTTPException, status
|
||||
from sqlalchemy import select
|
||||
from sqlalchemy import func, select
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from app.api.deps import get_current_telegram_user
|
||||
@@ -7,6 +7,7 @@ from app.db.session import get_session
|
||||
from app.models.car import Car, VehicleAccess
|
||||
from app.models.user import User
|
||||
from app.schemas.car import CarCreate, CarRead, CarUpdate
|
||||
from app.services.admin_notifications import create_admin_notification
|
||||
from app.services.odometer import add_odometer_history, validate_odometer_change
|
||||
from app.services.vehicle_identity import normalize_license_plate, validate_vin
|
||||
|
||||
@@ -42,6 +43,28 @@ async def create_car(
|
||||
source_record_id=None,
|
||||
changed_by=current_user.id,
|
||||
)
|
||||
vehicle_count = int(
|
||||
(await session.execute(select(func.count(Car.id)).where(Car.owner_id == current_user.id))).scalar_one()
|
||||
or 0
|
||||
)
|
||||
if vehicle_count == 1:
|
||||
await create_admin_notification(
|
||||
session,
|
||||
event_type="vehicle_created",
|
||||
title="Пользователь впервые добавил авто",
|
||||
body="\n".join(
|
||||
[
|
||||
f"User ID: {current_user.id}",
|
||||
f"Telegram ID: {current_user.telegram_id}",
|
||||
f"Авто: {car.name}",
|
||||
f"Пробег: {car.current_odometer or '-'}",
|
||||
]
|
||||
),
|
||||
entity_type="vehicle",
|
||||
entity_id=car.id,
|
||||
idempotency_key=f"vehicle_created:{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