Initial commit
This commit is contained in:
@@ -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();
|
||||
Reference in New Issue
Block a user