feat(gps): last_seen по времени приёма, фильтр джиттера (настройки), линейка, трек по скорости; fix: карта не перекрывает диалоги (isolation)
This commit is contained in:
@@ -3988,7 +3988,8 @@ export const gpsAssets = pgTable("gps_assets", {
|
||||
lastLng: doublePrecision("last_lng"),
|
||||
lastSpeed: doublePrecision("last_speed"),
|
||||
lastCourse: doublePrecision("last_course"),
|
||||
lastSeenAt: timestamp("last_seen_at"),
|
||||
lastSeenAt: timestamp("last_seen_at"), // время ПРИЁМА последней точки сервером (онлайн-индикатор)
|
||||
lastRecordedAt: timestamp("last_recorded_at"), // время последней точки по устройству (fixTime)
|
||||
createdAt: timestamp("created_at").defaultNow(),
|
||||
}, (table) => ({
|
||||
orgIdx: index("gps_assets_org_idx").on(table.organizationId),
|
||||
@@ -4106,3 +4107,14 @@ export const gpsAssetSubscribers = pgTable("gps_asset_subscribers", {
|
||||
|
||||
export type GpsAssetSubscriber = typeof gpsAssetSubscribers.$inferSelect;
|
||||
export type InsertGpsAssetSubscriber = typeof gpsAssetSubscribers.$inferInsert;
|
||||
|
||||
|
||||
// Настройки GPS-модуля организации (фильтр джиттера и т.п.)
|
||||
export const gpsSettings = pgTable("gps_settings", {
|
||||
organizationId: integer("organization_id").primaryKey().references(() => organizations.id, { onDelete: "cascade" }),
|
||||
jitterMeters: integer("jitter_meters").notNull().default(25),
|
||||
updatedAt: timestamp("updated_at").notNull().defaultNow(),
|
||||
});
|
||||
|
||||
export type GpsSettings = typeof gpsSettings.$inferSelect;
|
||||
export type InsertGpsSettings = typeof gpsSettings.$inferInsert;
|
||||
|
||||
Reference in New Issue
Block a user