X-Git-Url: https://git.rohieb.name/iserv-mod-room-reservation.git/blobdiff_plain/5760b2a8d146d7c186daab1743c84683d0d84cea..aa1cf6ab5d1dcb713e5dc46e5c9b71908ac9203b:/sql/mod_room-reservation.sql diff --git a/sql/mod_room-reservation.sql b/sql/mod_room-reservation.sql old mode 100755 new mode 100644 index 7afffef..b585798 --- a/sql/mod_room-reservation.sql +++ b/sql/mod_room-reservation.sql @@ -1,27 +1,43 @@ --- --- Table with bookings for module iserv-room-reservation --- -CREATE TABLE mod_roomreservation_bookings ( - rrb_uid SERIAL NOT NULL PRIMARY KEY, -- Unique ID - rrb_room TEXT NOT NULL -- Name of the room - REFERENCES rooms(name) - ON DELETE CASCADE - ON UPDATE CASCADE, - rrb_date DATE NOT NULL, -- Date of the booking - rrb_tsfirst SMALLINT NOT NULL, -- Number of the first timeslice - rrb_tslast SMALLINT NOT NULL -- Number of the last timeslice - CHECK(rrb_tsfirst <= rrb_tslast), - rrb_act TEXT NOT NULL -- Owner of the booking - REFERENCES users(Act) - ON DELETE CASCADE - ON UPDATE CASCADE, - rrb_reason TEXT NOT NULL, -- Reason - rrb_interval SMALLINT NOT NULL -- Interval in weeks for recurring bookings - DEFAULT 0 -); - --- --- Permissions --- -GRANT SELECT, INSERT, UPDATE, DELETE ON mod_roomreservation, mod_roomreservation_rr_uid_seq TO webusr; -GRANT SELECT, INSERT, UPDATE, DELETE ON mod_roomreservation, mod_roomreservation_rr_uid_seq TO webadm; +-- +-- Table with rooms allowed for booking +-- +CREATE TABLE mod_roomreservation_roomswhitelist ( + rrr_name TEXT UNIQUE REFERENCES rooms(name) + ON DELETE CASCADE + ON UPDATE CASCADE +); + +-- +-- Table with bookings +-- +CREATE TABLE mod_roomreservation_bookings ( + rrb_uid SERIAL NOT NULL PRIMARY KEY, -- Unique ID + rrb_room TEXT NOT NULL -- Name of the room + REFERENCES rooms(name) + ON DELETE CASCADE + ON UPDATE CASCADE, + rrb_date DATE NOT NULL, -- Date of the booking + rrb_tsfirst SMALLINT NOT NULL, -- Number of the first timeslice + rrb_tslast SMALLINT NOT NULL -- Number of the last timeslice + CHECK(rrb_tsfirst <= rrb_tslast), + rrb_act TEXT NOT NULL -- Owner of the booking + REFERENCES users(Act) + ON DELETE CASCADE + ON UPDATE CASCADE, + rrb_reason TEXT NOT NULL, -- Reason + rrb_interval SMALLINT NOT NULL -- Interval in weeks for recurring + -- bookings + DEFAULT 0 +); + +-- +-- Permissions +-- +GRANT SELECT, INSERT, UPDATE, DELETE ON mod_roomreservation_bookings TO webusr, + webadm; +GRANT SELECT, UPDATE ON mod_roomreservation_bookings_rrb_uid_seq TO webusr, + webadm; +GRANT SELECT ON mod_roomreservation_roomswhitelist TO webusr; +GRANT SELECT, INSERT, UPDATE, DELETE ON mod_roomreservation_roomswhitelist TO + webadm; +