216 lines
4.7 KiB
Plaintext
216 lines
4.7 KiB
Plaintext
// This is your Prisma schema file,
|
|
// learn more about it in the docs: https://pris.ly/d/prisma-schema
|
|
|
|
// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?
|
|
// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init
|
|
|
|
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "mysql"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
model Node {
|
|
id BigInt @id @default(autoincrement())
|
|
node_id BigInt @unique
|
|
long_name String
|
|
short_name String
|
|
hardware_model Int
|
|
role Int
|
|
is_licensed Boolean?
|
|
|
|
firmware_version String?
|
|
region Int?
|
|
modem_preset Int?
|
|
has_default_channel Boolean?
|
|
position_precision Int?
|
|
num_online_local_nodes Int?
|
|
|
|
latitude Int?
|
|
longitude Int?
|
|
altitude Int?
|
|
position_updated_at DateTime?
|
|
|
|
battery_level Int?
|
|
voltage Decimal?
|
|
channel_utilization Decimal?
|
|
air_util_tx Decimal?
|
|
|
|
neighbour_broadcast_interval_secs Int?
|
|
neighbours Json?
|
|
neighbours_updated_at DateTime?
|
|
|
|
mqtt_connection_state String?
|
|
mqtt_connection_state_updated_at DateTime?
|
|
|
|
created_at DateTime @default(now())
|
|
updated_at DateTime @default(now()) @updatedAt
|
|
|
|
@@index(created_at)
|
|
@@index(updated_at)
|
|
@@index(node_id)
|
|
@@map("nodes")
|
|
}
|
|
|
|
model MapReport {
|
|
id BigInt @id @default(autoincrement())
|
|
node_id BigInt
|
|
long_name String
|
|
short_name String
|
|
role Int
|
|
hardware_model Int
|
|
firmware_version String
|
|
|
|
region Int?
|
|
modem_preset Int?
|
|
has_default_channel Boolean?
|
|
latitude Int?
|
|
longitude Int?
|
|
altitude Int?
|
|
position_precision Int?
|
|
num_online_local_nodes Int?
|
|
|
|
created_at DateTime @default(now())
|
|
updated_at DateTime @default(now()) @updatedAt
|
|
|
|
@@index(created_at)
|
|
@@index(updated_at)
|
|
@@index(node_id)
|
|
@@map("map_reports")
|
|
}
|
|
|
|
model NeighbourInfo {
|
|
id BigInt @id @default(autoincrement())
|
|
node_id BigInt
|
|
node_broadcast_interval_secs Int
|
|
neighbours Json
|
|
|
|
created_at DateTime @default(now())
|
|
updated_at DateTime @default(now()) @updatedAt
|
|
|
|
@@index(created_at)
|
|
@@index(updated_at)
|
|
@@index(node_id)
|
|
@@map("neighbour_infos")
|
|
}
|
|
|
|
model DeviceMetric {
|
|
id BigInt @id @default(autoincrement())
|
|
node_id BigInt
|
|
|
|
battery_level Int?
|
|
voltage Decimal?
|
|
channel_utilization Decimal?
|
|
air_util_tx Decimal?
|
|
|
|
created_at DateTime @default(now())
|
|
updated_at DateTime @default(now()) @updatedAt
|
|
|
|
@@index(created_at)
|
|
@@index(updated_at)
|
|
@@index(node_id)
|
|
@@map("device_metrics")
|
|
}
|
|
|
|
model ServiceEnvelope {
|
|
id BigInt @id @default(autoincrement())
|
|
mqtt_topic String
|
|
channel_id String
|
|
gateway_id BigInt?
|
|
to BigInt
|
|
from BigInt
|
|
protobuf Bytes
|
|
|
|
created_at DateTime @default(now())
|
|
updated_at DateTime @default(now()) @updatedAt
|
|
|
|
@@index(created_at)
|
|
@@index(updated_at)
|
|
@@index(gateway_id)
|
|
@@map("service_envelopes")
|
|
}
|
|
|
|
model TextMessage {
|
|
id BigInt @id @default(autoincrement())
|
|
to BigInt
|
|
from BigInt
|
|
channel Int
|
|
packet_id BigInt
|
|
channel_id String
|
|
gateway_id BigInt?
|
|
|
|
text String
|
|
|
|
rx_time BigInt?
|
|
rx_snr Decimal?
|
|
rx_rssi Int?
|
|
hop_limit Int?
|
|
|
|
created_at DateTime @default(now())
|
|
updated_at DateTime @default(now()) @updatedAt
|
|
|
|
@@index(created_at)
|
|
@@index(updated_at)
|
|
@@index(to)
|
|
@@index(from)
|
|
@@index(packet_id)
|
|
@@index(gateway_id)
|
|
@@map("text_messages")
|
|
}
|
|
|
|
model TraceRoute {
|
|
id BigInt @id @default(autoincrement())
|
|
from_id BigInt @default(0)
|
|
to_id BigInt @default(0)
|
|
want_response Boolean @default(true)
|
|
route Json
|
|
|
|
channel Int?
|
|
packet_id BigInt?
|
|
channel_id String?
|
|
gateway_id BigInt?
|
|
|
|
created_at DateTime @default(now())
|
|
updated_at DateTime @default(now()) @updatedAt
|
|
|
|
@@index(created_at)
|
|
@@index(updated_at)
|
|
@@index(from_id)
|
|
@@index(to_id)
|
|
@@map("traceroutes")
|
|
}
|
|
|
|
model Waypoint {
|
|
id BigInt @id @default(autoincrement())
|
|
from BigInt
|
|
to BigInt
|
|
waypoint_id BigInt
|
|
latitude Int
|
|
longitude Int
|
|
expire BigInt?
|
|
locked_to BigInt?
|
|
name String?
|
|
description String?
|
|
icon Int?
|
|
|
|
channel Int
|
|
packet_id BigInt
|
|
channel_id String
|
|
gateway_id BigInt?
|
|
|
|
created_at DateTime @default(now())
|
|
updated_at DateTime @default(now()) @updatedAt
|
|
|
|
@@index(created_at)
|
|
@@index(updated_at)
|
|
@@index(to)
|
|
@@index(from)
|
|
@@index(waypoint_id)
|
|
@@index(packet_id)
|
|
@@index(gateway_id)
|
|
@@map("waypoints")
|
|
}
|