Working default hours update
This commit is contained in:
@@ -195,8 +195,7 @@ CREATE TABLE booking_services (
|
||||
-- DEFAULT WORKING HOURS TABLE
|
||||
-- =======================================
|
||||
CREATE TABLE working_hours (
|
||||
id SERIAL PRIMARY KEY,
|
||||
weekday SMALLINT NOT NULL, -- 0 = Sunday, 6 = Saturday
|
||||
weekday SMALLINT PRIMARY KEY, -- 0 = Monday, 6 = Sunday
|
||||
start_time TIME NOT NULL, -- e.g. 09:00
|
||||
end_time TIME NOT NULL, -- e.g. 17:00
|
||||
is_open BOOLEAN NOT NULL DEFAULT TRUE
|
||||
@@ -204,24 +203,47 @@ CREATE TABLE working_hours (
|
||||
|
||||
CREATE INDEX idx_working_hours_weekday ON working_hours(weekday);
|
||||
|
||||
-- =======================================
|
||||
-- EXCEPTIONAL WORKING HOURS TABLE
|
||||
-- =======================================
|
||||
CREATE TABLE exceptional_working_hours (
|
||||
id SERIAL PRIMARY KEY,
|
||||
weekday SMALLINT NOT NULL, -- 0 = Sunday, 6 = Saturday
|
||||
start_time TIME NOT NULL, -- e.g. 09:00
|
||||
end_time TIME NOT NULL, -- e.g. 17:00
|
||||
is_open BOOLEAN NOT NULL DEFAULT TRUE,
|
||||
group_id INT NOT NULL REFERENCES exceptional_working_hours_groups(id) ON DELETE CASCADE,
|
||||
);
|
||||
INSERT INTO working_hours VALUES (0, '00:00:00', '00:00:00', FALSE);
|
||||
INSERT INTO working_hours VALUES (1, '09:00:00', '17:00:00', TRUE);
|
||||
INSERT INTO working_hours VALUES (2, '09:00:00', '17:00:00', TRUE);
|
||||
INSERT INTO working_hours VALUES (3, '12:00:00', '20:00:00', TRUE);
|
||||
INSERT INTO working_hours VALUES (4, '09:00:00', '17:00:00', TRUE);
|
||||
INSERT INTO working_hours VALUES (5, '09:00:00', '17:00:00', TRUE);
|
||||
INSERT INTO working_hours VALUES (6, '00:00:00', '00:00:00', FALSE);
|
||||
|
||||
-- =======================================
|
||||
-- EXCEPTIONAL WORKING HOURS
|
||||
-- =======================================
|
||||
|
||||
-- Exceptional working hours groups (template)
|
||||
CREATE TABLE exceptional_working_hours_groups (
|
||||
id SERIAL PRIMARY KEY,
|
||||
name TEXT NOT NULL, -- e.g. "Christmas"
|
||||
description TEXT NOT NULL -- e.g. "Extended hours for holiday period"
|
||||
name TEXT NOT NULL, -- e.g. "Christmas Schedule"
|
||||
description TEXT NOT NULL -- e.g. "Extended hours for holiday period"
|
||||
);
|
||||
|
||||
-- Exceptional working hours (7 entries per group, one per weekday)
|
||||
CREATE TABLE exceptional_working_hours (
|
||||
id SERIAL PRIMARY KEY,
|
||||
group_id INT NOT NULL REFERENCES exceptional_working_hours_groups(id) ON DELETE CASCADE,
|
||||
weekday SMALLINT NOT NULL, -- 0 = Monday ... 6 = Sunday
|
||||
start_time TIME NOT NULL,
|
||||
end_time TIME NOT NULL,
|
||||
is_open BOOLEAN NOT NULL DEFAULT TRUE
|
||||
);
|
||||
|
||||
CREATE UNIQUE INDEX idx_group_weekday ON exceptional_working_hours(group_id, weekday);
|
||||
|
||||
-- Exceptional group applications (assign a group to a specific week)
|
||||
CREATE TABLE exceptional_group_applications (
|
||||
id SERIAL PRIMARY KEY,
|
||||
group_id INT NOT NULL REFERENCES exceptional_working_hours_groups(id) ON DELETE CASCADE,
|
||||
week_start DATE NOT NULL -- Monday of the week this group applies to
|
||||
);
|
||||
|
||||
CREATE UNIQUE INDEX idx_group_application_week ON exceptional_group_applications(week_start);
|
||||
|
||||
|
||||
-- =======================================
|
||||
-- PAYMENTS TABLE
|
||||
-- =======================================
|
||||
|
||||
Reference in New Issue
Block a user