All checks were successful
		
		
	
	continuous-integration/drone/push Build is passing
				
			Add a new module to enable accommodations reservation  Reviewed-on: #188
		
			
				
	
	
		
			53 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
-- 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';
 | 
						|
 | 
						|
 | 
						|
-- Create tables
 | 
						|
CREATE TABLE IF NOT EXISTS accommodations_list
 | 
						|
(
 | 
						|
    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,
 | 
						|
    color                VARCHAR(6)  NULL,
 | 
						|
    open_to_reservations BOOLEAN     NOT NULL DEFAULT false
 | 
						|
);
 | 
						|
 | 
						|
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';
 | 
						|
 | 
						|
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,
 | 
						|
    validated         BOOLEAN NULL
 | 
						|
);
 | 
						|
 | 
						|
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';
 |