All checks were successful
Build & Deploy Frontend / build-push-deploy (push) Successful in 1m45s
69 lines
2.5 KiB
SQL
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); |