Add personal data management to user configuration and onboarding

This commit is contained in:
2025-06-07 13:10:52 -03:00
parent aa287e424d
commit 1ecc722b63
4 changed files with 464 additions and 24 deletions

View File

@@ -0,0 +1,38 @@
-- Add personal data to the users table for debt negotiation letters
-- This will store the user's personal information needed for generating formal negotiation letters
-- Add personal data columns to the public.users table
ALTER TABLE public.users ADD COLUMN IF NOT EXISTS full_name TEXT;
ALTER TABLE public.users ADD COLUMN IF NOT EXISTS address_line_1 TEXT;
ALTER TABLE public.users ADD COLUMN IF NOT EXISTS address_line_2 TEXT;
ALTER TABLE public.users ADD COLUMN IF NOT EXISTS city TEXT;
ALTER TABLE public.users ADD COLUMN IF NOT EXISTS state TEXT;
ALTER TABLE public.users ADD COLUMN IF NOT EXISTS zip_code TEXT;
ALTER TABLE public.users ADD COLUMN IF NOT EXISTS phone_number TEXT;
ALTER TABLE public.users ADD COLUMN IF NOT EXISTS updated_at TIMESTAMPTZ DEFAULT NOW();
-- Create index for performance
CREATE INDEX IF NOT EXISTS idx_users_updated_at ON public.users(updated_at);
-- Update RLS policy to allow users to update their own data
CREATE POLICY "Users can update own profile" ON public.users
FOR UPDATE USING (auth.uid() = id);
-- Grant UPDATE permission to authenticated users
GRANT UPDATE ON public.users TO authenticated;
-- Create function to update updated_at timestamp
CREATE OR REPLACE FUNCTION update_users_updated_at_column()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = now();
RETURN NEW;
END;
$$ language 'plpgsql';
-- Create trigger for updated_at
DROP TRIGGER IF EXISTS update_users_updated_at ON public.users;
CREATE TRIGGER update_users_updated_at
BEFORE UPDATE ON public.users
FOR EACH ROW
EXECUTE FUNCTION update_users_updated_at_column();