add holiday test and tweak services

This commit is contained in:
2025-10-21 00:26:21 +01:00
parent ded1081a16
commit 989e45e55c
4 changed files with 105 additions and 30 deletions
+10 -7
View File
@@ -14,7 +14,7 @@ CREATE TYPE account_role AS ENUM ('unverified_email', 'verified_email', 'admin',
CREATE TYPE account_type AS ENUM ('email', 'google', 'microsoft', 'facebook', 'guest');
CREATE TYPE payment_type AS ENUM ('deposit', 'full', 'tip', 'balance', 'partial');
CREATE TYPE payment_method AS ENUM ('online_square', 'in_person_card', 'cash', 'giftcard', 'discount');
CREATE TYPE booking_status AS ENUM ('pending', 'confirmed', 'in_progress', 'completed', 'cancelled', 'no_show');
CREATE TYPE booking_status AS ENUM ('pending', 'confirmed', 'in_progress', 'completed', 'client_cancelled', 'we_cancelled', 're-schedule', 'no_show');
CREATE TYPE payment_status AS ENUM ('pending', 'completed', 'failed', 'refunded');
-- =======================================
@@ -105,7 +105,9 @@ CREATE TABLE users (
data_consent_updated_at TIMESTAMPTZ DEFAULT NOW(),
-- Audit fields
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
-- staff fields
notes TEXT
);
CREATE TABLE user_social_logins (
@@ -144,10 +146,10 @@ CREATE TABLE services (
is_active BOOLEAN NOT NULL DEFAULT TRUE,
patch_test_duration_hours INT NOT NULL DEFAULT 0,
minimum_age_required INT NOT NULL DEFAULT 16,
requires_manual_pricing BOOLEAN NOT NULL DEFAULT FALSE,
requires_manual_duration BOOLEAN NOT NULL DEFAULT FALSE,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
created_by CHAR(12),
updated_by CHAR(12)
);
CREATE INDEX idx_services_name ON services(name);
@@ -170,10 +172,10 @@ CREATE TABLE bookings (
user_id CHAR(12) REFERENCES users(id) ON DELETE SET NULL,
start_time TIMESTAMPTZ NOT NULL,
status booking_status NOT NULL DEFAULT 'pending',
notes TEXT,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
created_by CHAR(12),
updated_by CHAR(12)
);
CREATE INDEX idx_bookings_userid ON bookings(user_id);
@@ -188,6 +190,8 @@ CREATE INDEX idx_bookings_userid_starttime ON bookings(user_id, start_time);
CREATE TABLE booking_services (
booking_id CHAR(12) NOT NULL REFERENCES bookings(id) ON DELETE CASCADE,
service_id CHAR(12) NOT NULL REFERENCES services(id) ON DELETE RESTRICT,
override_price NUMERIC(10,2),
override_duration_minutes INT,
PRIMARY KEY (booking_id, service_id)
);
@@ -257,7 +261,7 @@ CREATE SEQUENCE invoice_number_seq
CREATE TABLE payments (
id CHAR(12) PRIMARY KEY DEFAULT generate_payment_id(),
booking_id CHAR(12) NOT NULL REFERENCES bookings(id) ON DELETE CASCADE,
booking_id CHAR(12) NOT NULL REFERENCES bookings(id) ON DELETE RESTRICT,
payment_type payment_type NOT NULL,
payment_method payment_method NOT NULL,
vendor_code TEXT,
@@ -272,7 +276,6 @@ CREATE TABLE payments (
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
created_by CHAR(12),
updated_by CHAR(12)
);
CREATE INDEX idx_payments_bookingid ON payments(booking_id);