initial commit
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
CREATE TABLE IF NOT EXISTS routes (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
slug TEXT NOT NULL UNIQUE,
|
||||
name TEXT NOT NULL,
|
||||
description TEXT NOT NULL DEFAULT '',
|
||||
school_name TEXT NOT NULL DEFAULT '',
|
||||
status TEXT NOT NULL DEFAULT 'active' CHECK (status IN ('active', 'deleted')),
|
||||
gpx_path TEXT NOT NULL,
|
||||
start_lat REAL,
|
||||
start_lon REAL,
|
||||
center_lat REAL,
|
||||
center_lon REAL,
|
||||
min_lat REAL,
|
||||
min_lon REAL,
|
||||
max_lat REAL,
|
||||
max_lon REAL,
|
||||
distance_m REAL NOT NULL DEFAULT 0,
|
||||
elevation_gain_m REAL NOT NULL DEFAULT 0,
|
||||
point_count INTEGER NOT NULL DEFAULT 0,
|
||||
created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
deleted_at TEXT,
|
||||
trash_path TEXT
|
||||
) STRICT;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS route_points (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
route_id INTEGER NOT NULL REFERENCES routes(id),
|
||||
sequence INTEGER NOT NULL,
|
||||
lat REAL NOT NULL,
|
||||
lon REAL NOT NULL,
|
||||
elevation REAL,
|
||||
recorded_at TEXT,
|
||||
UNIQUE(route_id, sequence)
|
||||
) STRICT;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS pois (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
route_id INTEGER NOT NULL REFERENCES routes(id),
|
||||
title TEXT NOT NULL,
|
||||
description TEXT NOT NULL DEFAULT '',
|
||||
lat REAL NOT NULL,
|
||||
lon REAL NOT NULL,
|
||||
trigger_radius_m REAL NOT NULL DEFAULT 80,
|
||||
sequence INTEGER NOT NULL DEFAULT 0,
|
||||
audio_path TEXT,
|
||||
created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
) STRICT;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS poi_images (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
poi_id INTEGER NOT NULL REFERENCES pois(id),
|
||||
path TEXT NOT NULL,
|
||||
caption TEXT NOT NULL DEFAULT '',
|
||||
sequence INTEGER NOT NULL DEFAULT 0,
|
||||
created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
) STRICT;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_routes_status ON routes(status);
|
||||
CREATE INDEX IF NOT EXISTS idx_route_points_route ON route_points(route_id, sequence);
|
||||
CREATE INDEX IF NOT EXISTS idx_pois_route ON pois(route_id, sequence);
|
||||
CREATE INDEX IF NOT EXISTS idx_poi_images_poi ON poi_images(poi_id, sequence);
|
||||
Reference in New Issue
Block a user