CREATE TABLE "user" (
"id" varchar PRIMARY KEY,
"email" varchar,
"name" varchar,
"oid" varchar,
"profile_picture" varchar,
"roles" varchar,
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "user_preferences" (
"id" SERIAL PRIMARY KEY,
"user_id" varchar UNIQUE,
"table_columns" varchar,
"preferences" jsonb,
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "country" (
"id" SERIAL PRIMARY KEY,
"code" varchar(10),
"name" varchar,
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "city" (
"id" SERIAL PRIMARY KEY,
"country_id" int,
"name" varchar,
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "client" (
"id" SERIAL PRIMARY KEY,
"name" varchar,
"foreign_id" varchar UNIQUE,
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "parking" (
"city_id" int,
"id" SERIAL PRIMARY KEY,
"name" varchar,
"type" varchar,
"actual_news" varchar,
"address" varchar,
"exemption_and_rules" varchar,
"client_id" int,
"rates_sheet_url" varchar,
"rates_sheet_name" varchar,
"phone_number" varchar,
"extension_no" varchar,
"details" jsonb,
"foreign_id" varchar UNIQUE ,
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "item" (
"id" SERIAL PRIMARY KEY,
"title" varchar,
"description" varchar,
"details" jsonb,
"foreign_id" varchar UNIQUE ,
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "contact" (
"id" SERIAL PRIMARY KEY,
"name" varchar,
"email" varchar,
"phone_number" varchar,
"description" varchar,
"foreign_id" varchar UNIQUE,
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "parking_pictures" (
"id" SERIAL PRIMARY KEY,
"parking_id" int,
"title" varchar,
"url" varchar,
"foreign_id" varchar UNIQUE ,
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "parking_floorplan" (
"id" SERIAL PRIMARY KEY,
"parking_id" int,
"title" varchar,
"picture_url" varchar,
"foreign_id" varchar UNIQUE ,
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "protocol" (
"id" SERIAL PRIMARY KEY,
"title" varchar,
"known" bool,
"foreign_id" varchar UNIQUE ,
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "problem" (
"id" SERIAL PRIMARY KEY,
"title" varchar,
"known" bool,
"foreign_id" varchar UNIQUE ,
"action_id" int,
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "action" (
"id" SERIAL PRIMARY KEY,
"title" varchar,
"description" varchar,
"link" varchar,
"attachment" varchar,
"question" varchar,
"foreign_id" varchar UNIQUE ,
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "answer" (
"id" SERIAL PRIMARY KEY,
"title" varchar,
"description" varchar,
"known" bool,
"contact_id" int,
"foreign_id" varchar UNIQUE ,
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "action_response" (
"id" SERIAL PRIMARY KEY,
"title" varchar,
"answer_id" int,
"next_action" int,
"foreign_id" varchar UNIQUE ,
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "case_attachment" (
"id" SERIAL PRIMARY KEY,
"doc_type" varchar(50),
"name" varchar,
"description" varchar,
"language" varchar,
"confirmed" bool,
"url" varchar,
"key" varchar,
"case_id" int,
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "follow_up" (
"contact_id" int,
"id" SERIAL PRIMARY KEY,
"timestamp" timestamp,
"entry_type" varchar,
"status" varchar,
"note" varchar,
"urgency" varchar,
"language" varchar(24),
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "case" (
"follow_up_id" int,
"id" SERIAL PRIMARY KEY,
"status" varchar,
"case_no" varchar,
"answer_id" int,
"problem_id" int,
"protocol_id" int,
"parent" int,
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "audit_log" (
"contact_id" int,
"id" SERIAL PRIMARY KEY,
"case_id" int,
"timestamp" timestamp,
"status" varchar,
"protocol" varchar,
"communication" varchar,
"message" varchar,
"follow_up_time" timestamp,
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "parking_contact" (
"parking_id" int,
"contact_id" int,
PRIMARY KEY ("parking_id" ,"contact_id"),
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "parking_item" (
"parking_id" int,
"item_id" int,
PRIMARY KEY ("parking_id", "item_id"),
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "item_protocol" (
"item_id" int,
"protocol_id" int,
PRIMARY KEY ("item_id", "protocol_id"),
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "item_problem" (
"problem_id" int,
"item_id" int,
PRIMARY KEY ("problem_id", "item_id"),
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "item_answer" (
"answer_id" int,
"item_id" int,
PRIMARY KEY ("answer_id", "item_id"),
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "protocol_problem" (
"protocol_id" int,
"problem_id" int,
PRIMARY KEY ("protocol_id", "problem_id"),
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "problem_answer" (
"problem_id" int,
"answer_id" int,
PRIMARY KEY ("problem_id", "answer_id"),
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "case_action_response" (
"case_id" int,
"action_response_id" int,
PRIMARY KEY ("case_id", "action_response_id"),
"created_by" varchar,
"updated_by" varchar,
"created_at" timestamp,
"updated_at" timestamp
);
CREATE TABLE "item_protocol_problem_action_response" (
"problem_id" int,
"action_id" int,
"response_id" int,
"item_id" int,
"protocol_id" int,
PRIMARY KEY ("problem_id", "action_id", "response_id","item_id", "protocol_id"),
"created_by" varchar REFERENCES "user"("id"),
"updated_by" varchar REFERENCES "user"("id"),
"created_at" timestamp,
"updated_at" timestamp,
FOREIGN KEY ("problem_id") REFERENCES "problem" ("id"),
FOREIGN KEY ("action_id") REFERENCES "action" ("id"),
FOREIGN KEY ("response_id") REFERENCES "action_response" ("id"),
FOREIGN KEY ("item_id") REFERENCES "item" ("id"),
FOREIGN KEY ("protocol_id") REFERENCES "protocol" ("id")
);
CREATE TABLE "answer_contact"(
"contact_id" int,
"answer_id" int,
PRIMARY KEY ("contact_id", "answer_id"),
"created_by" varchar REFERENCES "user"("id"),
"updated_by" varchar REFERENCES "user"("id"),
"created_at" timestamp,
"updated_at" timestamp,
FOREIGN KEY ("answer_id") REFERENCES "answer" ("id"),
FOREIGN KEY ("contact_id") REFERENCES "contact" ("id")
);
ALTER TABLE "user"
ADD CONSTRAINT fk_user_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_user_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id");
ALTER TABLE "user_preferences"
ADD CONSTRAINT fk_user_preferences_user_id FOREIGN KEY ("user_id") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_user_preferences_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_user_preferences_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id");
ALTER TABLE "country"
ADD CONSTRAINT fk_country_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_country_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id");
ALTER TABLE "city"
ADD CONSTRAINT fk_city_country_id FOREIGN KEY ("country_id") REFERENCES "country" ("id"),
ADD CONSTRAINT fk_city_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_city_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id");
ALTER TABLE "client"
ADD CONSTRAINT fk_client_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_client_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id");
ALTER TABLE "parking"
ADD CONSTRAINT fk_parking_city_id FOREIGN KEY ("city_id") REFERENCES "city" ("id"),
ADD CONSTRAINT fk_parking_client_id FOREIGN KEY ("client_id") REFERENCES "client" ("id"),
ADD CONSTRAINT fk_parking_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_parking_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id");
ALTER TABLE "item"
ADD CONSTRAINT fk_item_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_item_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id");
ALTER TABLE "contact"
ADD CONSTRAINT fk_contact_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_contact_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id");
ALTER TABLE "parking_pictures"
ADD CONSTRAINT fk_parking_pictures_parking_id FOREIGN KEY ("parking_id") REFERENCES "parking" ("id"),
ADD CONSTRAINT fk_parking_pictures_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_parking_pictures_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id");
ALTER TABLE "parking_floorplan"
ADD CONSTRAINT fk_parking_floorplan_parking_id FOREIGN KEY ("parking_id") REFERENCES "parking" ("id"),
ADD CONSTRAINT fk_parking_floorplan_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_parking_floorplan_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id");
ALTER TABLE "protocol"
ADD CONSTRAINT fk_protocol_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_protocol_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id");
ALTER TABLE "action"
ADD CONSTRAINT fk_action_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_action_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id");
ALTER TABLE "problem"
ADD CONSTRAINT fk_problem_action_id FOREIGN KEY ("action_id") REFERENCES "action" ("id"),
ADD CONSTRAINT fk_problem_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_problem_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id");
ALTER TABLE "action_response"
ADD CONSTRAINT fk_action_response_next_action FOREIGN KEY ("next_action") REFERENCES "action" ("id"),
ADD CONSTRAINT fk_action_response_answer FOREIGN KEY ("answer_id") REFERENCES "answer" ("id"),
ADD CONSTRAINT fk_action_response_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_action_response_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id");
ALTER TABLE "answer"
ADD CONSTRAINT fk_answer_contact FOREIGN KEY ("contact_id") REFERENCES "contact" ("id"),
ADD CONSTRAINT fk_answer_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_answer_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id");
ALTER TABLE "follow_up"
ADD CONSTRAINT fk_follow_up_contact_id FOREIGN KEY ("contact_id") REFERENCES "contact" ("id"),
ADD CONSTRAINT fk_follow_up_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_follow_up_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id");
ALTER TABLE "case_attachment"
ADD CONSTRAINT fk_case_attachment_case_id FOREIGN KEY ("case_id") REFERENCES "case" ("id"),
ADD CONSTRAINT fk_case_attachment_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_case_attachment_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id");
ALTER TABLE "parking_item"
ADD CONSTRAINT fk_parking_item_parking_id FOREIGN KEY ("parking_id") REFERENCES "parking" ("id"),
ADD CONSTRAINT fk_parking_item_item_id FOREIGN KEY ("item_id") REFERENCES "item" ("id"),
ADD CONSTRAINT fk_parking_item_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_parking_item_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id");
ALTER TABLE "parking_contact"
ADD CONSTRAINT fk_parking_contact_parking_id FOREIGN KEY ("parking_id") REFERENCES "parking" ("id"),
ADD CONSTRAINT fk_parking_contact_contact_id FOREIGN KEY ("contact_id") REFERENCES "contact" ("id"),
ADD CONSTRAINT fk_parking_contact_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_parking_contact_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id");
ALTER TABLE "case"
ADD COLUMN "parking_id" int,
ADD COLUMN "item_id" int;
ALTER TABLE "case"
ADD CONSTRAINT fk_case_follow_up_id FOREIGN KEY ("follow_up_id") REFERENCES "follow_up" ("id"),
ADD CONSTRAINT fk_case_parking_item FOREIGN KEY ("parking_id", "item_id") REFERENCES "parking_item" ("parking_id", "item_id"),
ADD CONSTRAINT fk_case_answer_id FOREIGN KEY ("answer_id") REFERENCES "answer" ("id"),
ADD CONSTRAINT fk_case_problem_id FOREIGN KEY ("problem_id") REFERENCES "problem" ("id"),
ADD CONSTRAINT fk_case_protocol_id FOREIGN KEY ("protocol_id") REFERENCES "protocol" ("id"),
ADD CONSTRAINT fk_case_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_case_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_case_parent FOREIGN KEY ("parent") REFERENCES "case" ("id");
ALTER TABLE "audit_log"
ADD CONSTRAINT fk_audit_log_contact_id FOREIGN KEY ("contact_id") REFERENCES "contact" ("id"),
ADD CONSTRAINT fk_audit_log_case_id FOREIGN KEY ("case_id") REFERENCES "case" ("id"),
ADD CONSTRAINT fk_audit_log_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_audit_log_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id");
ALTER TABLE "item_protocol"
ADD CONSTRAINT fk_item_protocol_item_id FOREIGN KEY ("item_id") REFERENCES "item" ("id"),
ADD CONSTRAINT fk_item_protocol_protocol_id FOREIGN KEY ("protocol_id") REFERENCES "protocol" ("id"),
ADD CONSTRAINT fk_item_protocol_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_item_protocol_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id");
ALTER TABLE "item_problem"
ADD CONSTRAINT fk_problem_item_problem_id FOREIGN KEY ("problem_id") REFERENCES "problem" ("id"),
ADD CONSTRAINT fk_problem_item_item_id FOREIGN KEY ("item_id") REFERENCES "item" ("id"),
ADD CONSTRAINT fk_problem_item_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_problem_item_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id");
ALTER TABLE "item_answer"
ADD CONSTRAINT fk_answer_item_answer_id FOREIGN KEY ("answer_id") REFERENCES "answer" ("id"),
ADD CONSTRAINT fk_answer_item_item_id FOREIGN KEY ("item_id") REFERENCES "item" ("id"),
ADD CONSTRAINT fk_answer_item_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_answer_item_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id");
ALTER TABLE "protocol_problem"
ADD CONSTRAINT fk_protocol_problem_protocol_id FOREIGN KEY ("protocol_id") REFERENCES "protocol" ("id"),
ADD CONSTRAINT fk_protocol_problem_problem_id FOREIGN KEY ("problem_id") REFERENCES "problem" ("id"),
ADD CONSTRAINT fk_protocol_problem_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_protocol_problem_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id");
ALTER TABLE "problem_answer"
ADD CONSTRAINT fk_problem_answer_problem_id FOREIGN KEY ("problem_id") REFERENCES "problem" ("id"),
ADD CONSTRAINT fk_problem_answer_answer_id FOREIGN KEY ("answer_id") REFERENCES "answer" ("id"),
ADD CONSTRAINT fk_problem_answer_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_problem_answer_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id");
ALTER TABLE "case_action_response"
ADD CONSTRAINT fk_case_action_response_case_id FOREIGN KEY ("case_id") REFERENCES "case" ("id"),
ADD CONSTRAINT fk_case_action_response_action_response_id FOREIGN KEY ("action_response_id") REFERENCES "action_response" ("id"),
ADD CONSTRAINT fk_case_action_response_created_by FOREIGN KEY ("created_by") REFERENCES "user" ("id"),
ADD CONSTRAINT fk_case_action_response_updated_by FOREIGN KEY ("updated_by") REFERENCES "user" ("id");