feat: categories + tariffs — migration, API routes, frontend integration
This commit is contained in:
33
backend/migrations/018_categories_tariffs.sql
Normal file
33
backend/migrations/018_categories_tariffs.sql
Normal file
@@ -0,0 +1,33 @@
|
||||
-- Migration 018 — room_categories + tariffs
|
||||
|
||||
CREATE TABLE IF NOT EXISTS room_categories (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
hotel_id UUID NOT NULL REFERENCES hotels(id) ON DELETE CASCADE,
|
||||
name VARCHAR(100) NOT NULL,
|
||||
description TEXT NOT NULL DEFAULT '',
|
||||
color VARCHAR(20) NOT NULL DEFAULT '#4F46E5',
|
||||
amenities TEXT[] NOT NULL DEFAULT '{}',
|
||||
photos TEXT[] NOT NULL DEFAULT '{}',
|
||||
sort_order INTEGER NOT NULL DEFAULT 0,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS tariffs (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
hotel_id UUID NOT NULL REFERENCES hotels(id) ON DELETE CASCADE,
|
||||
name VARCHAR(100) NOT NULL,
|
||||
code VARCHAR(20) NOT NULL,
|
||||
meal_plan VARCHAR(20) NOT NULL DEFAULT 'no_meals',
|
||||
inclusions TEXT[] NOT NULL DEFAULT '{}',
|
||||
modifier_type VARCHAR(10) NOT NULL DEFAULT 'fixed'
|
||||
CHECK (modifier_type IN ('fixed', 'percent')),
|
||||
modifier_value INTEGER NOT NULL DEFAULT 0,
|
||||
min_nights INTEGER NOT NULL DEFAULT 1,
|
||||
cancellation_policy VARCHAR(20) NOT NULL DEFAULT 'flexible'
|
||||
CHECK (cancellation_policy IN ('flexible', 'moderate', 'strict', 'nonrefundable')),
|
||||
description TEXT NOT NULL DEFAULT '',
|
||||
is_active BOOLEAN NOT NULL DEFAULT true,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
Reference in New Issue
Block a user