Initial commit

This commit is contained in:
2025-07-27 21:49:34 -04:00
commit 133a935d90
36 changed files with 3121 additions and 0 deletions
+17
View File
@@ -0,0 +1,17 @@
-- SQL to create auth_audit table in Supabase
CREATE OR REPLACE FUNCTION public.create_auth_audit_table()
RETURNS void
LANGUAGE sql
AS $$
CREATE TABLE IF NOT EXISTS auth_audit (
id BIGSERIAL PRIMARY KEY,
user_id UUID REFERENCES users(id),
action TEXT NOT NULL,
timestamp TIMESTAMPTZ NOT NULL DEFAULT NOW(),
details TEXT,
ip_address TEXT
);
CREATE INDEX IF NOT EXISTS idx_auth_audit_user_id ON auth_audit(user_id);
CREATE INDEX IF NOT EXISTS idx_auth_audit_timestamp ON auth_audit(timestamp);
$$;
+15
View File
@@ -0,0 +1,15 @@
-- SQL to create calibration_audit table in Supabase
CREATE TABLE IF NOT EXISTS calibration_audit (
id BIGSERIAL PRIMARY KEY,
calibration_id UUID REFERENCES calibrations(id),
user_id UUID REFERENCES users(id),
action TEXT NOT NULL,
old_values JSONB,
new_values JSONB,
timestamp TIMESTAMPTZ NOT NULL DEFAULT NOW(),
ip_address TEXT
);
CREATE INDEX IF NOT EXISTS idx_calibration_audit_calibration_id ON calibration_audit(calibration_id);
CREATE INDEX IF NOT EXISTS idx_calibration_audit_user_id ON calibration_audit(user_id);
CREATE INDEX IF NOT EXISTS idx_calibration_audit_timestamp ON calibration_audit(timestamp);
+9
View File
@@ -0,0 +1,9 @@
-- Create a function in Supabase that can execute arbitrary SQL
CREATE OR REPLACE FUNCTION public.execute_sql(sql_text text)
RETURNS void
LANGUAGE plpgsql
AS $$
BEGIN
EXECUTE sql_text;
END;
$$;
+39
View File
@@ -0,0 +1,39 @@
-- SQL to create core tables for SmartScan Probe Track
CREATE OR REPLACE FUNCTION public.create_core_tables()
RETURNS void
LANGUAGE sql
AS $$
-- Users table
CREATE TABLE IF NOT EXISTS users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
name TEXT NOT NULL,
email TEXT UNIQUE NOT NULL,
can_calibrate BOOLEAN NOT NULL DEFAULT false,
can_review BOOLEAN NOT NULL DEFAULT false,
signature_image TEXT
);
-- Probe Models table
CREATE TABLE IF NOT EXISTS probe_models (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
model_name TEXT UNIQUE NOT NULL,
specifications JSONB
);
-- Probes table
CREATE TABLE IF NOT EXISTS probes (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
model_id UUID REFERENCES probe_models(id),
serial_number TEXT NOT NULL,
description TEXT,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
retired_at TIMESTAMPTZ
);
-- Create indexes
CREATE INDEX IF NOT EXISTS idx_probes_model_id ON probes(model_id);
CREATE INDEX IF NOT EXISTS idx_probes_serial_number ON probes(serial_number);
$$;
-- Execute the function to create tables
SELECT public.create_core_tables();