add holiday test and tweak services
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user