fix(gps): отсев устаревших копий и LBS-телепортов (stale/jump фильтры), настройка maxJumpSpeedKmh, фильтрация трека при выдаче
This commit is contained in:
@@ -461,22 +461,28 @@ export class GpsStorage {
|
||||
// Настройки организации
|
||||
// =====================
|
||||
|
||||
/** Настройки GPS организации; если строки нет — дефолт */
|
||||
async getSettings(organizationId: number): Promise<{ jitterMeters: number }> {
|
||||
/** Настройки GPS организации; если строки нет — дефолты */
|
||||
async getSettings(organizationId: number): Promise<{ jitterMeters: number; maxJumpSpeedKmh: number }> {
|
||||
const [row] = await db
|
||||
.select()
|
||||
.from(gpsSettings)
|
||||
.where(eq(gpsSettings.organizationId, organizationId));
|
||||
return { jitterMeters: row?.jitterMeters ?? 25 };
|
||||
return {
|
||||
jitterMeters: row?.jitterMeters ?? 25,
|
||||
maxJumpSpeedKmh: row?.maxJumpSpeedKmh ?? 250,
|
||||
};
|
||||
}
|
||||
|
||||
async upsertSettings(organizationId: number, jitterMeters: number): Promise<GpsSettings> {
|
||||
async upsertSettings(
|
||||
organizationId: number,
|
||||
settings: { jitterMeters: number; maxJumpSpeedKmh: number }
|
||||
): Promise<GpsSettings> {
|
||||
const [row] = await db
|
||||
.insert(gpsSettings)
|
||||
.values({ organizationId, jitterMeters, updatedAt: new Date() })
|
||||
.values({ organizationId, ...settings, updatedAt: new Date() })
|
||||
.onConflictDoUpdate({
|
||||
target: gpsSettings.organizationId,
|
||||
set: { jitterMeters, updatedAt: new Date() },
|
||||
set: { ...settings, updatedAt: new Date() },
|
||||
})
|
||||
.returning();
|
||||
return row;
|
||||
|
||||
Reference in New Issue
Block a user