2024-05-23 17:28:29 +00:00
-- Add column to toggle accommodations module
ALTER TABLE public . families
ADD enable_accommodations boolean NOT NULL DEFAULT false ;
COMMENT
ON COLUMN public . families . enable_accommodations IS ' Specify whether accommodations feature is enabled for the family ' ;
2024-05-23 16:45:56 +00:00
-- Create tables
CREATE TABLE IF NOT EXISTS accommodations_list
(
2024-05-23 19:20:14 +00:00
id SERIAL PRIMARY KEY ,
family_id integer NOT NULL REFERENCES families ,
time_create BIGINT NOT NULL ,
time_update BIGINT NOT NULL ,
name VARCHAR ( 50 ) NOT NULL ,
need_validation BOOLEAN NOT NULL DEFAULT true ,
description text NULL ,
2024-06-20 19:46:45 +00:00
color VARCHAR ( 6 ) NULL ,
2024-05-23 19:20:14 +00:00
open_to_reservations BOOLEAN NOT NULL DEFAULT false
2024-05-23 16:45:56 +00:00
) ;
2024-05-30 19:59:00 +00:00
COMMENT ON COLUMN accommodations_list . need_validation is ' true if family admin review is required for validation. False otherwise ' ;
COMMENT ON COLUMN accommodations_list . open_to_reservations is ' true if reservations can be created / updated. False otherwise ' ;
2024-05-23 16:45:56 +00:00
CREATE TABLE IF NOT EXISTS accommodations_reservations
(
id SERIAL PRIMARY KEY ,
family_id integer NOT NULL REFERENCES families ON DELETE CASCADE ,
accommodation_id integer NOT NULL REFERENCES accommodations_list ON DELETE CASCADE ,
user_id INTEGER NOT NULL REFERENCES users ON DELETE CASCADE ,
time_create BIGINT NOT NULL ,
time_update BIGINT NOT NULL ,
reservation_start BIGINT NOT NULL ,
reservation_end BIGINT NOT NULL ,
2024-05-23 19:20:14 +00:00
validated BOOLEAN NULL
2024-05-30 19:59:00 +00:00
) ;
COMMENT ON COLUMN accommodations_reservations . validated is ' null if not reviewed yet. true if reservation is accepted. false if reservation is rejected ' ;
CREATE TABLE IF NOT EXISTS accommodations_reservations_cals_urls
(
id SERIAL PRIMARY KEY ,
family_id integer NOT NULL REFERENCES families ON DELETE CASCADE ,
accommodation_id integer NULL REFERENCES accommodations_list ON DELETE CASCADE ,
user_id INTEGER NOT NULL REFERENCES users ON DELETE CASCADE ,
name VARCHAR ( 50 ) NOT NULL ,
token VARCHAR ( 50 ) NOT NULL ,
time_create BIGINT NOT NULL ,
time_used BIGINT NOT NULL
) ;
COMMENT ON COLUMN accommodations_reservations_cals_urls . accommodation_id is ' null to get reservations of all accommodations. otherwise get the reservations of the specified accommodation only ' ;