Login sequence and inventory/protocol storage groundwork
This commit is contained in:
63
server/src/db/schema.sql
Normal file
63
server/src/db/schema.sql
Normal file
@@ -0,0 +1,63 @@
|
||||
-- Chemical inventory, scoped per user
|
||||
CREATE TABLE IF NOT EXISTS chemicals (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
user_id TEXT NOT NULL,
|
||||
|
||||
-- Required fields
|
||||
pi_first_name TEXT NOT NULL,
|
||||
physical_state TEXT NOT NULL,
|
||||
chemical_name TEXT NOT NULL,
|
||||
bldg_code TEXT NOT NULL,
|
||||
lab TEXT NOT NULL,
|
||||
storage_location TEXT NOT NULL,
|
||||
storage_device TEXT NOT NULL,
|
||||
number_of_containers TEXT NOT NULL,
|
||||
amount_per_container TEXT NOT NULL,
|
||||
unit_of_measure TEXT NOT NULL,
|
||||
cas_number TEXT NOT NULL,
|
||||
|
||||
-- Optional fields
|
||||
chemical_formula TEXT,
|
||||
molecular_weight TEXT,
|
||||
vendor TEXT,
|
||||
catalog_number TEXT,
|
||||
found_in_catalog TEXT,
|
||||
po_number TEXT,
|
||||
receipt_date TEXT,
|
||||
open_date TEXT,
|
||||
max_on_hand TEXT,
|
||||
expiration_date DATE,
|
||||
contact TEXT,
|
||||
comments TEXT,
|
||||
permit_number TEXT,
|
||||
barcode TEXT,
|
||||
concentration TEXT,
|
||||
chemical_number TEXT,
|
||||
lot_number TEXT,
|
||||
multiple_cas TEXT,
|
||||
msds TEXT,
|
||||
percentage_full NUMERIC(5,2),
|
||||
needs_manual_entry TEXT[],
|
||||
scanned_image TEXT,
|
||||
|
||||
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||||
updated_at TIMESTAMPTZ DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS chemicals_user_id_idx ON chemicals(user_id);
|
||||
CREATE INDEX IF NOT EXISTS chemicals_cas_number_idx ON chemicals(cas_number);
|
||||
|
||||
-- Protocols with JSONB analysis results
|
||||
CREATE TABLE IF NOT EXISTS protocols (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
user_id TEXT NOT NULL,
|
||||
title TEXT NOT NULL,
|
||||
content TEXT NOT NULL DEFAULT '',
|
||||
file_url TEXT,
|
||||
analysis_results JSONB,
|
||||
|
||||
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||||
updated_at TIMESTAMPTZ DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS protocols_user_id_idx ON protocols(user_id);
|
||||
Reference in New Issue
Block a user