mirror of
https://github.com/Dvorinka/Bookra.git
synced 2026-06-03 20:13:00 +00:00
cleanup
This commit is contained in:
@@ -8,7 +8,7 @@ INSERT INTO tenants (
|
||||
'studio',
|
||||
'cs',
|
||||
'Europe/Prague',
|
||||
'growth',
|
||||
'pro',
|
||||
'active'
|
||||
)
|
||||
ON CONFLICT (id) DO NOTHING;
|
||||
|
||||
@@ -0,0 +1,132 @@
|
||||
-- +goose Up
|
||||
ALTER TABLE tenants
|
||||
ADD COLUMN IF NOT EXISTS billing_provider text NOT NULL DEFAULT 'paddle';
|
||||
|
||||
ALTER TABLE billing_snapshots
|
||||
ADD COLUMN IF NOT EXISTS billing_provider text NOT NULL DEFAULT 'paddle';
|
||||
|
||||
ALTER TABLE subscription_events
|
||||
ADD COLUMN IF NOT EXISTS billing_provider text NOT NULL DEFAULT 'paddle';
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 'tenants' AND column_name = 'stripe_customer_id'
|
||||
) THEN
|
||||
ALTER TABLE tenants RENAME COLUMN stripe_customer_id TO billing_customer_id;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 'tenants' AND column_name = 'stripe_subscription_id'
|
||||
) THEN
|
||||
ALTER TABLE tenants RENAME COLUMN stripe_subscription_id TO billing_subscription_id;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 'billing_snapshots' AND column_name = 'stripe_customer_id'
|
||||
) THEN
|
||||
ALTER TABLE billing_snapshots RENAME COLUMN stripe_customer_id TO billing_customer_id;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 'billing_snapshots' AND column_name = 'stripe_subscription_id'
|
||||
) THEN
|
||||
ALTER TABLE billing_snapshots RENAME COLUMN stripe_subscription_id TO billing_subscription_id;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 'subscription_events' AND column_name = 'stripe_event_id'
|
||||
) THEN
|
||||
ALTER TABLE subscription_events RENAME COLUMN stripe_event_id TO billing_provider_event_id;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
ALTER TABLE subscription_events DROP CONSTRAINT IF EXISTS subscription_events_stripe_event_id_key;
|
||||
ALTER TABLE subscription_events
|
||||
ADD CONSTRAINT subscription_events_provider_event_key UNIQUE (billing_provider, billing_provider_event_id);
|
||||
|
||||
-- +goose Down
|
||||
ALTER TABLE subscription_events DROP CONSTRAINT IF EXISTS subscription_events_provider_event_key;
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 'subscription_events' AND column_name = 'billing_provider_event_id'
|
||||
) THEN
|
||||
ALTER TABLE subscription_events RENAME COLUMN billing_provider_event_id TO stripe_event_id;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 'billing_snapshots' AND column_name = 'billing_subscription_id'
|
||||
) THEN
|
||||
ALTER TABLE billing_snapshots RENAME COLUMN billing_subscription_id TO stripe_subscription_id;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 'billing_snapshots' AND column_name = 'billing_customer_id'
|
||||
) THEN
|
||||
ALTER TABLE billing_snapshots RENAME COLUMN billing_customer_id TO stripe_customer_id;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 'tenants' AND column_name = 'billing_subscription_id'
|
||||
) THEN
|
||||
ALTER TABLE tenants RENAME COLUMN billing_subscription_id TO stripe_subscription_id;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 'tenants' AND column_name = 'billing_customer_id'
|
||||
) THEN
|
||||
ALTER TABLE tenants RENAME COLUMN billing_customer_id TO stripe_customer_id;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
ALTER TABLE subscription_events DROP COLUMN IF EXISTS billing_provider;
|
||||
ALTER TABLE billing_snapshots DROP COLUMN IF EXISTS billing_provider;
|
||||
ALTER TABLE tenants DROP COLUMN IF EXISTS billing_provider;
|
||||
ALTER TABLE subscription_events
|
||||
ADD CONSTRAINT subscription_events_stripe_event_id_key UNIQUE (stripe_event_id);
|
||||
@@ -0,0 +1,61 @@
|
||||
-- +goose Up
|
||||
ALTER TABLE billing_snapshots
|
||||
ADD COLUMN IF NOT EXISTS currency text NOT NULL DEFAULT 'czk';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS brand_profiles (
|
||||
tenant_id uuid PRIMARY KEY REFERENCES tenants(id) ON DELETE CASCADE,
|
||||
name text NOT NULL,
|
||||
site_url text,
|
||||
logo_url text,
|
||||
primary_color text,
|
||||
umami_site_id text,
|
||||
created_at timestamptz NOT NULL DEFAULT now(),
|
||||
updated_at timestamptz NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS tenant_settings (
|
||||
tenant_id uuid PRIMARY KEY REFERENCES tenants(id) ON DELETE CASCADE,
|
||||
cancel_window_hours integer NOT NULL DEFAULT 24,
|
||||
onboarding_completed boolean NOT NULL DEFAULT false,
|
||||
created_at timestamptz NOT NULL DEFAULT now(),
|
||||
updated_at timestamptz NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS team_invites (
|
||||
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
tenant_id uuid NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
|
||||
email text NOT NULL,
|
||||
role text NOT NULL DEFAULT 'staff',
|
||||
status text NOT NULL DEFAULT 'pending',
|
||||
created_at timestamptz NOT NULL DEFAULT now(),
|
||||
updated_at timestamptz NOT NULL DEFAULT now(),
|
||||
UNIQUE (tenant_id, email)
|
||||
);
|
||||
|
||||
UPDATE tenants SET plan_code = 'pro' WHERE plan_code = 'growth';
|
||||
UPDATE tenants SET plan_code = 'business' WHERE plan_code = 'multi-location';
|
||||
UPDATE billing_snapshots SET plan_code = 'pro' WHERE plan_code = 'growth';
|
||||
UPDATE billing_snapshots SET plan_code = 'business' WHERE plan_code = 'multi-location';
|
||||
|
||||
INSERT INTO brand_profiles (tenant_id, name)
|
||||
SELECT id, name
|
||||
FROM tenants
|
||||
ON CONFLICT (tenant_id) DO NOTHING;
|
||||
|
||||
INSERT INTO tenant_settings (tenant_id, onboarding_completed)
|
||||
SELECT id, true
|
||||
FROM tenants
|
||||
ON CONFLICT (tenant_id) DO NOTHING;
|
||||
|
||||
-- +goose Down
|
||||
UPDATE tenants SET plan_code = 'growth' WHERE plan_code = 'pro';
|
||||
UPDATE tenants SET plan_code = 'multi-location' WHERE plan_code = 'business';
|
||||
UPDATE billing_snapshots SET plan_code = 'growth' WHERE plan_code = 'pro';
|
||||
UPDATE billing_snapshots SET plan_code = 'multi-location' WHERE plan_code = 'business';
|
||||
|
||||
DROP TABLE IF EXISTS team_invites;
|
||||
DROP TABLE IF EXISTS tenant_settings;
|
||||
DROP TABLE IF EXISTS brand_profiles;
|
||||
|
||||
ALTER TABLE billing_snapshots
|
||||
DROP COLUMN IF EXISTS currency;
|
||||
@@ -0,0 +1,20 @@
|
||||
-- +goose Up
|
||||
-- Create customers table for customer management
|
||||
CREATE TABLE IF NOT EXISTS customers (
|
||||
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
tenant_id uuid NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
|
||||
name text NOT NULL,
|
||||
email text NOT NULL,
|
||||
phone text,
|
||||
status text NOT NULL DEFAULT 'active',
|
||||
notes text,
|
||||
created_at timestamptz NOT NULL DEFAULT now(),
|
||||
updated_at timestamptz NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_customers_tenant ON customers (tenant_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_customers_email ON customers (tenant_id, email);
|
||||
CREATE INDEX IF NOT EXISTS idx_customers_status ON customers (tenant_id, status);
|
||||
|
||||
-- +goose Down
|
||||
DROP TABLE IF EXISTS customers;
|
||||
Reference in New Issue
Block a user