Ответ
Модели должны включать:
- Vehicle:
interface Vehicle {
id: string;
type: 'scooter' | 'monowheel';
coordinates: [number, number];
batteryLevel: number;
isAvailable: boolean;
tariff: number; // цена за минуту
}
- ParkingZone:
interface ParkingZone {
id: string;
coordinates: [number, number][]; // полигон зоны
capacity: number;
currentVehicles: number;
}
- UserRide (для истории поездок):
interface UserRide {
id: string;
vehicleId: string;
startTime: Date;
endTime: Date | null;
route: [number, number][];
cost: number;
}
Дополнительно:
- Валидация координат (lat, lng)
- Статусы доступности транспорта
- Текущее местоположение пользователя (если нужно)
- Система рейтингов/отзывов (опционально)