erp-cicd/my-access-hub-main/supabase/migrations/20250810132214_bed3348f-4237-40ab-a165-54ee9e77bcb5.sql
Ali 20e95c2fb6
Some checks failed
Build & Deploy Frontend / build-push-deploy (push) Failing after 15s
pushing all
2025-08-30 11:51:11 +05:30

69 lines
2.5 KiB
SQL

-- Revert the application name back to be more generic
UPDATE public.system_settings
SET
application_name = 'Business Manager',
updated_at = now()
WHERE id = 'default';
-- Create subscription-specific settings table
CREATE TABLE public.subscription_settings (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
default_reminder_days INTEGER NOT NULL DEFAULT 7,
default_currency currency NOT NULL DEFAULT 'USD',
auto_renewal_warning_days INTEGER NOT NULL DEFAULT 30,
late_payment_grace_days INTEGER NOT NULL DEFAULT 5,
updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now()
);
-- Create asset-specific settings table
CREATE TABLE public.asset_settings (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
default_depreciation_method depreciation_method NOT NULL DEFAULT 'straight_line',
default_useful_life_years INTEGER NOT NULL DEFAULT 5,
default_salvage_value_percent NUMERIC(5,2) NOT NULL DEFAULT 10.00,
depreciation_calculation_frequency TEXT NOT NULL DEFAULT 'monthly',
asset_audit_reminder_days INTEGER NOT NULL DEFAULT 90,
maintenance_reminder_days INTEGER NOT NULL DEFAULT 180,
updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now()
);
-- Enable RLS on both tables
ALTER TABLE public.subscription_settings ENABLE ROW LEVEL SECURITY;
ALTER TABLE public.asset_settings ENABLE ROW LEVEL SECURITY;
-- Create policies for subscription settings (admin only)
CREATE POLICY "Admins can manage subscription settings" ON public.subscription_settings
FOR ALL
USING (has_role(auth.uid(), 'admin'::app_role));
CREATE POLICY "Anyone can read subscription settings" ON public.subscription_settings
FOR SELECT
USING (true);
-- Create policies for asset settings (admin only)
CREATE POLICY "Admins can manage asset settings" ON public.asset_settings
FOR ALL
USING (has_role(auth.uid(), 'admin'::app_role));
CREATE POLICY "Anyone can read asset settings" ON public.asset_settings
FOR SELECT
USING (true);
-- Insert default settings for both modules
INSERT INTO public.subscription_settings (
default_reminder_days,
default_currency,
auto_renewal_warning_days,
late_payment_grace_days
) VALUES (7, 'USD', 30, 5);
INSERT INTO public.asset_settings (
default_depreciation_method,
default_useful_life_years,
default_salvage_value_percent,
depreciation_calculation_frequency,
asset_audit_reminder_days,
maintenance_reminder_days
) VALUES ('straight_line', 5, 10.00, 'monthly', 90, 180);