- Migrated PostgreSQL data to Supabase (531 rows total) - Added Supabase Database card to ENV scheme - Added migration SQL files and CSV exports - Tables: deployments(45), devices(455), person_details(8), deployment_details(23) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
140 lines
4.1 KiB
SQL
140 lines
4.1 KiB
SQL
-- WellNuo Database Schema for Supabase
|
|
-- Generated from eluxnetworks.net PostgreSQL dump
|
|
-- Date: 2025-12-17
|
|
|
|
-- =============================================
|
|
-- TABLE: deployments (patients/deployments)
|
|
-- =============================================
|
|
CREATE TABLE IF NOT EXISTS deployments (
|
|
deployment_id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
|
|
time_edit REAL,
|
|
user_edit INTEGER,
|
|
time_zone_s TEXT,
|
|
persons INTEGER,
|
|
gender INTEGER,
|
|
race INTEGER,
|
|
born INTEGER,
|
|
pets INTEGER,
|
|
context TEXT,
|
|
alarm_details TEXT
|
|
);
|
|
|
|
-- =============================================
|
|
-- TABLE: devices (sensors/devices)
|
|
-- =============================================
|
|
CREATE TABLE IF NOT EXISTS devices (
|
|
device_id INTEGER PRIMARY KEY,
|
|
device_mac TEXT NOT NULL,
|
|
well_id INTEGER,
|
|
description TEXT,
|
|
location INTEGER,
|
|
close_to TEXT,
|
|
radar_threshold TEXT,
|
|
fw_version TEXT,
|
|
hw_version TEXT,
|
|
ble_scan_period INTEGER,
|
|
ble_scan_duration INTEGER,
|
|
temperature_calib TEXT,
|
|
humidity_calib TEXT,
|
|
reporting_period_s INTEGER,
|
|
reboot_time REAL,
|
|
led_schema TEXT,
|
|
alert_details TEXT,
|
|
other TEXT,
|
|
group_id INTEGER,
|
|
UNIQUE(well_id, device_mac)
|
|
);
|
|
|
|
-- =============================================
|
|
-- TABLE: person_details (users)
|
|
-- =============================================
|
|
CREATE TABLE IF NOT EXISTS person_details (
|
|
user_id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
|
|
role_ids TEXT,
|
|
access_to_deployments TEXT,
|
|
email TEXT,
|
|
user_name TEXT,
|
|
first_name TEXT,
|
|
last_name TEXT,
|
|
address_street TEXT,
|
|
address_city TEXT,
|
|
address_zip TEXT,
|
|
address_state TEXT,
|
|
address_country TEXT,
|
|
time_edit REAL,
|
|
user_edit INTEGER,
|
|
phone_number TEXT,
|
|
picture TEXT,
|
|
key TEXT -- password field
|
|
);
|
|
|
|
-- =============================================
|
|
-- TABLE: deployment_details
|
|
-- =============================================
|
|
CREATE TABLE IF NOT EXISTS deployment_details (
|
|
deployment_id INTEGER PRIMARY KEY,
|
|
beneficiary_id INTEGER,
|
|
caretaker_id INTEGER,
|
|
owner_id INTEGER,
|
|
installer_id INTEGER,
|
|
devices TEXT, -- JSON array of device MACs
|
|
address_street TEXT,
|
|
address_city TEXT,
|
|
address_zip TEXT,
|
|
address_state TEXT,
|
|
address_country TEXT,
|
|
wifis TEXT,
|
|
lat REAL,
|
|
lng REAL,
|
|
gps_age INTEGER,
|
|
note TEXT,
|
|
floor_plan TEXT,
|
|
overlapps TEXT
|
|
);
|
|
|
|
-- =============================================
|
|
-- TABLE: deployment_history
|
|
-- =============================================
|
|
CREATE TABLE IF NOT EXISTS deployment_history (
|
|
id INTEGER PRIMARY KEY,
|
|
time REAL,
|
|
proximity TEXT
|
|
);
|
|
|
|
-- =============================================
|
|
-- TABLE: disclaimers
|
|
-- =============================================
|
|
CREATE TABLE IF NOT EXISTS disclaimers (
|
|
id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
|
|
first_name TEXT,
|
|
last_name TEXT,
|
|
user_name TEXT,
|
|
email TEXT,
|
|
devices TEXT,
|
|
date TIMESTAMPTZ,
|
|
policy_version TEXT
|
|
);
|
|
|
|
-- =============================================
|
|
-- INDEXES (for performance)
|
|
-- =============================================
|
|
CREATE INDEX IF NOT EXISTS idx_devices_well_id ON devices(well_id);
|
|
CREATE INDEX IF NOT EXISTS idx_person_details_email ON person_details(email);
|
|
CREATE INDEX IF NOT EXISTS idx_person_details_user_name ON person_details(user_name);
|
|
CREATE INDEX IF NOT EXISTS idx_deployment_details_beneficiary ON deployment_details(beneficiary_id);
|
|
|
|
-- =============================================
|
|
-- Enable Row Level Security (RLS) for Supabase
|
|
-- =============================================
|
|
ALTER TABLE deployments ENABLE ROW LEVEL SECURITY;
|
|
ALTER TABLE devices ENABLE ROW LEVEL SECURITY;
|
|
ALTER TABLE person_details ENABLE ROW LEVEL SECURITY;
|
|
ALTER TABLE deployment_details ENABLE ROW LEVEL SECURITY;
|
|
ALTER TABLE deployment_history ENABLE ROW LEVEL SECURITY;
|
|
ALTER TABLE disclaimers ENABLE ROW LEVEL SECURITY;
|
|
|
|
-- Note: You'll need to create RLS policies based on your auth requirements
|
|
-- Example:
|
|
-- CREATE POLICY "Users can view their own data" ON person_details
|
|
-- FOR SELECT USING (auth.uid()::text = user_id::text);
|