65 lines
2.4 KiB
SQL
65 lines
2.4 KiB
SQL
CREATE TABLE IF NOT EXISTS seed_sources (
|
|
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
public_id varchar(64) NOT NULL,
|
|
batch_id uuid,
|
|
parent_id uuid,
|
|
supplier varchar(128) NOT NULL,
|
|
seed_batch_no varchar(64) NOT NULL,
|
|
quarantine_no varchar(64),
|
|
variety varchar(64),
|
|
certificate_url varchar(512),
|
|
entry_at timestamptz,
|
|
note text,
|
|
created_by uuid,
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
);
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_seed_sources_public_id ON seed_sources (public_id);
|
|
CREATE INDEX IF NOT EXISTS idx_seed_sources_batch_id ON seed_sources (batch_id);
|
|
CREATE INDEX IF NOT EXISTS idx_seed_sources_parent_id ON seed_sources (parent_id);
|
|
|
|
CREATE TABLE IF NOT EXISTS disinfection_records (
|
|
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
room_id uuid,
|
|
batch_id uuid,
|
|
kind varchar(16) NOT NULL DEFAULT 'plan',
|
|
plan_id uuid,
|
|
agent varchar(128) NOT NULL,
|
|
concentration varchar(64) NOT NULL,
|
|
amount varchar(64),
|
|
planned_at timestamptz,
|
|
executed_at timestamptz,
|
|
executor_id uuid,
|
|
reviewed_at timestamptz,
|
|
reviewer_id uuid,
|
|
photo_url varchar(512),
|
|
note text,
|
|
created_by uuid,
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_disinfection_records_room_id ON disinfection_records (room_id);
|
|
CREATE INDEX IF NOT EXISTS idx_disinfection_records_batch_id ON disinfection_records (batch_id);
|
|
CREATE INDEX IF NOT EXISTS idx_disinfection_records_plan_id ON disinfection_records (plan_id);
|
|
|
|
CREATE TABLE IF NOT EXISTS identity_links (
|
|
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
public_id varchar(64) NOT NULL,
|
|
entity_type varchar(16) NOT NULL,
|
|
entity_id varchar(128) NOT NULL,
|
|
version integer NOT NULL DEFAULT 1,
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
);
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_identity_links_public_id ON identity_links (public_id);
|
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_identity_links_entity ON identity_links (entity_type, entity_id);
|
|
CREATE INDEX IF NOT EXISTS idx_identity_links_entity_type ON identity_links (entity_type);
|
|
|
|
ALTER TABLE batches
|
|
ADD COLUMN IF NOT EXISTS seed_source_id uuid;
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_batches_seed_source_id ON batches (seed_source_id);
|