/*
DROP TABLE myhealth.Administrator;
DROP TABLE myhealth.FamilyDoctor;
DROP TABLE myhealth.MedicalSpecialty;
DROP TABLE myhealth.MedicalTest;
DROP TABLE myhealth.Patient;
DROP TABLE myhealth.PrimaryHealthCareCenter;
DROP TABLE myhealth.Question;
DROP TABLE myhealth.Response;
DROP TABLE myhealth.SpecialistDoctor;
DROP TABLE myhealth.Visit;
*/

-- Table: myhealth.administrator

-- DROP TABLE myhealth.administrator;

CREATE TABLE myhealth.administrator
(
    email VARCHAR(120) COLLATE pg_catalog."default" NOT NULL,
    password VARCHAR(100) COLLATE pg_catalog."default" NOT NULL,
    CONSTRAINT administrator_pkey PRIMARY KEY (email)
)
TABLESPACE pg_default;

ALTER TABLE myhealth.administrator
    OWNER to "USER";
    
-- Table: myhealth.familydoctor

-- DROP TABLE myhealth.familydoctor;

CREATE TABLE myhealth.familydoctor
(
    id integer NOT NULL GENERATED ALWAYS AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
    password character varying(100) COLLATE pg_catalog."default" NOT NULL,
    nif character varying(50) COLLATE pg_catalog."default",
    surname character varying(100) COLLATE pg_catalog."default",
    email character varying(120) COLLATE pg_catalog."default",
    name character varying(100) COLLATE pg_catalog."default",
    primaryhealthcarecenterid integer,
    CONSTRAINT familydoctor_pkey PRIMARY KEY (id)
)
TABLESPACE pg_default;

ALTER TABLE myhealth.familydoctor
    OWNER to "USER";

-- Table: myhealth.medicalspecialty

-- DROP TABLE myhealth.medicalspecialty;

CREATE TABLE myhealth.medicalspecialty
(
    id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
    name VARCHAR(50) COLLATE pg_catalog."default" NOT NULL UNIQUE,
    description VARCHAR(1000) COLLATE pg_catalog."default",
    CONSTRAINT medicalspecialty_pkey PRIMARY KEY (id)
)
TABLESPACE pg_default;

ALTER TABLE myhealth.medicalspecialty
    OWNER to "USER";

-- Table: myhealth.medicaltest

-- DROP TABLE myhealth.medicaltest;

CREATE TABLE myhealth.medicaltest
(
    id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
    date date,
    "time" abstime,
    observations TEXT COLLATE pg_catalog."default",
    highresimage bytea,
    type INTEGER,
    patientid INTEGER NOT NULL,
    specialistdoctorid INTEGER NOT NULL,
    CONSTRAINT medicaltest_pkey PRIMARY KEY (id)
)
TABLESPACE pg_default;

ALTER TABLE myhealth.medicaltest
    OWNER to "USER";
    
-- Table: myhealth.patient

-- DROP TABLE myhealth.patient;

CREATE TABLE myhealth.patient
(
    id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
    password VARCHAR(100) COLLATE pg_catalog."default",
    nif VARCHAR(50) COLLATE pg_catalog."default",
    surname VARCHAR(100) COLLATE pg_catalog."default",
    email VARCHAR(120) COLLATE pg_catalog."default",
    name VARCHAR(100) COLLATE pg_catalog."default",
    familydoctorid INTEGER,
    CONSTRAINT patient_pkey PRIMARY KEY (id)
)
TABLESPACE pg_default;

ALTER TABLE myhealth.patient
    OWNER to "USER";

-- Table: myhealth.location

-- DROP TABLE myhealth.location;

CREATE TABLE myhealth.location
(
    id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
    name VARCHAR(100) COLLATE pg_catalog."default" NOT NULL,
    CONSTRAINT primarylocation_pkey PRIMARY KEY (id)
)
TABLESPACE pg_default;

ALTER TABLE myhealth.location
    OWNER to "USER";

-- Table: myhealth.primaryhealthcarecenter

-- DROP TABLE myhealth.primaryhealthcarecenter;

CREATE TABLE myhealth.primaryhealthcarecenter
(
	id integer NOT NULL GENERATED ALWAYS AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
    name character varying(150) COLLATE pg_catalog."default" NOT NULL,
    location character varying(512) COLLATE pg_catalog."default",
    CONSTRAINT primaryhealthcarecenter_pkey PRIMARY KEY (id)
)
TABLESPACE pg_default;

ALTER TABLE myhealth.primaryhealthcarecenter
    OWNER to "USER";
    
-- Table: myhealth.question

-- DROP TABLE myhealth.question;

CREATE TABLE myhealth.question
(
    id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
    title VARCHAR(512) COLLATE pg_catalog."default" NOT NULL,
    message TEXT COLLATE pg_catalog."default" NOT NULL,
    status INTEGER,
    patientid INTEGER NOT NULL,
    CONSTRAINT question_pkey PRIMARY KEY (id)
)
TABLESPACE pg_default;

ALTER TABLE myhealth.question
    OWNER to "USER";

-- Table: myhealth.response

-- DROP TABLE myhealth.response;

CREATE TABLE myhealth.response
(
    id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
    response TEXT COLLATE pg_catalog."default",
    questionid INTEGER NOT NULL,
    CONSTRAINT response_pkey PRIMARY KEY (id)
)
TABLESPACE pg_default;

ALTER TABLE myhealth.response
    OWNER to "USER";

-- Table: myhealth.specialistdoctor

-- DROP TABLE myhealth.specialistdoctor;

CREATE TABLE myhealth.specialistdoctor
(
    id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
    password VARCHAR(100) COLLATE pg_catalog."default",
    nif VARCHAR(50) COLLATE pg_catalog."default",
    surname VARCHAR(100) COLLATE pg_catalog."default",
    email VARCHAR(120) COLLATE pg_catalog."default",
    name VARCHAR(100) COLLATE pg_catalog."default",
    medicalspecialtyid INTEGER,
    CONSTRAINT specialistdoctor_pkey PRIMARY KEY (id)
)
TABLESPACE pg_default;

ALTER TABLE myhealth.specialistdoctor
    OWNER to "USER";

-- Table: myhealth.visit

-- DROP TABLE myhealth.visit;

CREATE TABLE myhealth.visit
(
    id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
    date date NOT NULL,
    "time" abstime NOT NULL,
    observations TEXT COLLATE pg_catalog."default",
    result TEXT COLLATE pg_catalog."default",
    patientid INTEGER NOT NULL,
    familydoctorid INTEGER NOT NULL,
    CONSTRAINT visit_pkey PRIMARY KEY (id)
)
TABLESPACE pg_default;

ALTER TABLE myhealth.visit
    OWNER to "USER";

