Initial commit - Black Canyon Tickets whitelabel platform

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-07-08 12:31:31 -06:00
commit 997c129383
139 changed files with 60476 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
-- Add fee structure columns to organizations table
ALTER TABLE organizations
ADD COLUMN platform_fee_type VARCHAR(20) DEFAULT 'percentage_plus_fixed',
ADD COLUMN platform_fee_percentage DECIMAL(5,4) DEFAULT 0.0300,
ADD COLUMN platform_fee_fixed INTEGER DEFAULT 30,
ADD COLUMN platform_fee_notes TEXT;
-- Add comments for clarity
COMMENT ON COLUMN organizations.platform_fee_type IS 'Fee type: percentage, fixed, percentage_plus_fixed';
COMMENT ON COLUMN organizations.platform_fee_percentage IS 'Percentage fee (0.03 = 3%)';
COMMENT ON COLUMN organizations.platform_fee_fixed IS 'Fixed fee in cents (30 = $0.30)';
COMMENT ON COLUMN organizations.platform_fee_notes IS 'Notes about the fee structure for this organization';
-- Update existing organizations with default fees
UPDATE organizations
SET
platform_fee_type = 'percentage_plus_fixed',
platform_fee_percentage = 0.0300,
platform_fee_fixed = 30
WHERE platform_fee_type IS NULL;
-- Add fee tracking to tickets table
ALTER TABLE tickets
ADD COLUMN platform_fee_charged INTEGER DEFAULT 0,
ADD COLUMN organizer_net INTEGER DEFAULT 0;
COMMENT ON COLUMN tickets.platform_fee_charged IS 'Platform fee charged in cents';
COMMENT ON COLUMN tickets.organizer_net IS 'Net amount organizer receives in cents';
-- Create fee_structures table for historical tracking and templates
CREATE TABLE fee_structures (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
name TEXT NOT NULL,
description TEXT,
fee_type VARCHAR(20) NOT NULL DEFAULT 'percentage_plus_fixed',
fee_percentage DECIMAL(5,4) DEFAULT 0.0000,
fee_fixed INTEGER DEFAULT 0,
is_template BOOLEAN DEFAULT false,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
-- Insert some common fee structure templates
INSERT INTO fee_structures (name, description, fee_type, fee_percentage, fee_fixed, is_template) VALUES
('Standard Platform Fee', 'Default 3% + $0.30 per transaction', 'percentage_plus_fixed', 0.0300, 30, true),
('Percentage Only 3%', '3% of transaction, no fixed fee', 'percentage', 0.0300, 0, true),
('Percentage Only 2.5%', '2.5% of transaction, no fixed fee', 'percentage', 0.0250, 0, true),
('Fixed Fee Only', '$1.00 flat fee per transaction', 'fixed', 0.0000, 100, true),
('Premium Rate', '3.5% + $0.50 for premium features', 'percentage_plus_fixed', 0.0350, 50, true),
('Volume Discount', '2% + $0.25 for high-volume clients', 'percentage_plus_fixed', 0.0200, 25, true);
-- Enable RLS on fee_structures
ALTER TABLE fee_structures ENABLE ROW LEVEL SECURITY;
-- Anyone can read templates
CREATE POLICY "Anyone can view fee structure templates" ON fee_structures
FOR SELECT USING (is_template = true);
-- Add indexes for performance
CREATE INDEX idx_organizations_platform_fee_type ON organizations(platform_fee_type);
CREATE INDEX idx_tickets_platform_fee ON tickets(platform_fee_charged);
CREATE INDEX idx_fee_structures_template ON fee_structures(is_template);