Integrate asset metadata/storage support, TypeScript client asset APIs, docs updates, and the Leaflet demo while resolving conflicts with recent challenge IP/login persistence changes on main. Made-with: Cursor
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
CREATE TABLE IF NOT EXISTS assets (
|
||||
id TEXT PRIMARY KEY,
|
||||
owner_key TEXT NOT NULL,
|
||||
checksum TEXT NOT NULL,
|
||||
ext TEXT NOT NULL,
|
||||
kind TEXT NOT NULL,
|
||||
mime_type TEXT,
|
||||
size_bytes BIGINT NOT NULL DEFAULT 0,
|
||||
object_key TEXT NOT NULL,
|
||||
is_public BOOLEAN NOT NULL DEFAULT TRUE,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
UNIQUE (owner_key, checksum, ext),
|
||||
UNIQUE (owner_key, object_key)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS feature_asset_links (
|
||||
feature_id TEXT NOT NULL REFERENCES features(id) ON DELETE CASCADE,
|
||||
asset_id TEXT NOT NULL REFERENCES assets(id) ON DELETE CASCADE,
|
||||
name TEXT,
|
||||
description TEXT,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
PRIMARY KEY (feature_id, asset_id)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_assets_owner ON assets(owner_key);
|
||||
CREATE INDEX IF NOT EXISTS idx_assets_owner_public ON assets(owner_key, is_public);
|
||||
CREATE INDEX IF NOT EXISTS idx_feature_asset_links_asset ON feature_asset_links(asset_id);
|
||||
@@ -0,0 +1,21 @@
|
||||
CREATE EXTENSION IF NOT EXISTS postgis;
|
||||
|
||||
ALTER TABLE features
|
||||
ADD COLUMN IF NOT EXISTS geom geometry(PointZ, 4326);
|
||||
|
||||
UPDATE features
|
||||
SET geom = ST_SetSRID(
|
||||
ST_MakePoint(
|
||||
(geometry->'coordinates'->>0)::double precision,
|
||||
(geometry->'coordinates'->>1)::double precision,
|
||||
CASE
|
||||
WHEN jsonb_array_length(geometry->'coordinates') >= 3 THEN (geometry->'coordinates'->>2)::double precision
|
||||
ELSE 0
|
||||
END
|
||||
),
|
||||
4326
|
||||
)
|
||||
WHERE geom IS NULL
|
||||
AND geometry ? 'coordinates';
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_features_geom_gist ON features USING GIST (geom);
|
||||
Reference in New Issue
Block a user