nidus-sync/db/migrations/00068_site.sql

52 lines
1.2 KiB
SQL

-- +goose Up
CREATE TYPE CountryType AS ENUM (
'usa'
);
CREATE TABLE address (
country CountryType NOT NULL,
created TIMESTAMP WITHOUT TIME ZONE NOT NULL,
geom geometry(Point,4326) NOT NULL,
h3cell h3index NOT NULL,
id SERIAL NOT NULL,
locality TEXT NOT NULL,
number_ INTEGER NOT NULL,
postal_code TEXT NOT NULL,
street TEXT NOT NULL,
unit TEXT NOT NULL,
PRIMARY KEY(id),
UNIQUE(country, locality, number_, street)
);
CREATE TABLE site (
address_id INTEGER REFERENCES address(id) NOT NULL,
created TIMESTAMP WITHOUT TIME ZONE NOT NULL,
creator_id INTEGER REFERENCES user_(id) NOT NULL,
file_id INTEGER REFERENCES fileupload.file(id),
id SERIAL NOT NULL,
notes text NOT NULL,
organization_id INTEGER NOT NULL,
owner_name TEXT NOT NULL,
owner_phone_e164 TEXT,
resident_owned BOOLEAN,
resident_phone_e164 TEXT,
tags HSTORE NOT NULL,
version INTEGER NOT NULL,
PRIMARY KEY(id, version),
UNIQUE(address_id)
);
CREATE TYPE PoolConditionType AS ENUM (
'blue',
'dry',
'false pool',
'green',
'murky'
);
CREATE TABLE pool (
condition PoolConditionType NOT NULL,
created TIMESTAMP WITHOUT TIME ZONE NOT NULL,
creator_id INTEGER REFERENCES user_(id) NOT NULL,
id SERIAL NOT NULL,
site_id INTEGER,
PRIMARY KEY(id)
);