-- Create plans table
CREATE TABLE IF NOT EXISTS public.plans (
    id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
    name TEXT NOT NULL,
    price TEXT NOT NULL,
    description TEXT,
    features TEXT[] DEFAULT '{}',
    cta TEXT DEFAULT 'Get Started',
    href TEXT DEFAULT '/auth/signin',
    popular BOOLEAN DEFAULT false,
    created_at TIMESTAMP WITH TIME ZONE DEFAULT timezone('utc'::text, now()) NOT NULL
);

-- Enable RLS
ALTER TABLE public.plans ENABLE ROW LEVEL SECURITY;

-- Allow public read access to plans
CREATE POLICY "Allow public read access" ON public.plans FOR SELECT USING (true);

-- Seed data
INSERT INTO public.plans (name, price, description, features, cta, href, popular) VALUES
('Free', '$0', 'Perfect for experimenting and personal projects.', ARRAY['5 video credits per month', '720p video quality', 'Standard generation speed', 'Public community access'], 'Get Started', '/app', false),
('Pro', '$29', 'For content creators and professionals.', ARRAY['50 video credits per month', '1080p HD video quality', 'Fast generation speed', 'Priority support', 'Commercial usage rights', 'Remove watermarks'], 'Upgrade to Pro', '/auth/signin', true),
('Enterprise', 'Custom', 'For teams and high-volume needs.', ARRAY['Unlimited video credits', '4K video quality', 'Instant generation', 'Dedicated account manager', 'Custom branding & templates', 'API access'], 'Contact Sales', 'mailto:sales@vidsimplify.com', false);

-- Add plan_id to users table if it doesn't exist
ALTER TABLE public.users ADD COLUMN IF NOT EXISTS plan_id UUID REFERENCES public.plans(id);

-- Update existing users to have the Free plan (assuming 'Free' is the first one inserted or we pick it dynamically)
-- This is a bit tricky in SQL without a function, but for now we can leave it nullable or set a default in the app logic.
