From a14564062e8a635d7883d7389840c5c75932f727 Mon Sep 17 00:00:00 2001 From: Aditya Valsangkar Date: Mon, 6 Jul 2026 17:53:19 +0530 Subject: [PATCH 1/3] Updated according to new URL format --- backend/.env.example | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/.env.example b/backend/.env.example index 69d6da9..bbbbe79 100644 --- a/backend/.env.example +++ b/backend/.env.example @@ -2,7 +2,7 @@ NODE_ENV=development PORT=3000 FRONTEND_URL=http://localhost:5173 JWT_SECRET=change_me -DATABASE_URL=postgresql://postgres:your_password@localhost:5432/reimbursement +DATABASE_URL=DATABASE_URL=postgresql://postgres.[project-ref]:[password]@aws-1-ap-south-1.pooler.supabase.com:5432/postgres COMPANY_DEFAULT_COUNTRY=IN EXCHANGE_API_URL=https://api.exchangerate.host OCR_PROVIDER=mock From 1ef8bc2fc09cc679e9ce3fb4b4de32d2b40796af Mon Sep 17 00:00:00 2001 From: Aditya Valsangkar Date: Mon, 6 Jul 2026 17:54:05 +0530 Subject: [PATCH 2/3] Schema fixes --- backend/src/config/db.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/backend/src/config/db.js b/backend/src/config/db.js index d8b579f..953289f 100644 --- a/backend/src/config/db.js +++ b/backend/src/config/db.js @@ -2,6 +2,9 @@ import { env } from "./env.js"; const { Pool } = pg; -export const pool = new Pool({ connectionString: env.DATABASE_URL }); +export const pool = new Pool({ + connectionString: env.DATABASE_URL, + ssl: { rejectUnauthorized: false }, +}); export const query = (text, params = []) => pool.query(text, params); From dae9c3b2fe930f01cde17f1041a70e8e3ad19e64 Mon Sep 17 00:00:00 2001 From: Aditya Valsangkar Date: Mon, 6 Jul 2026 17:54:48 +0530 Subject: [PATCH 3/3] Schema updates --- backend/src/db/migrations/003_init_approvals.sql | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/backend/src/db/migrations/003_init_approvals.sql b/backend/src/db/migrations/003_init_approvals.sql index 52f93fd..cca57d2 100644 --- a/backend/src/db/migrations/003_init_approvals.sql +++ b/backend/src/db/migrations/003_init_approvals.sql @@ -1,25 +1,25 @@ CREATE TABLE IF NOT EXISTS approval_rules ( - id SERIAL PRIMARY KEY, + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), rule_json JSONB NOT NULL, manager_first_enabled BOOLEAN DEFAULT TRUE, created_at TIMESTAMP DEFAULT NOW() ); CREATE TABLE IF NOT EXISTS expense_approval_steps ( - id SERIAL PRIMARY KEY, - expense_id INT REFERENCES expenses(id), + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + expense_id UUID REFERENCES expenses(id), step_no INT NOT NULL, approver_role VARCHAR(20), - approver_id INT, + approver_id UUID, status VARCHAR(20) DEFAULT 'PENDING', created_at TIMESTAMP DEFAULT NOW() ); CREATE TABLE IF NOT EXISTS notifications ( - id SERIAL PRIMARY KEY, - user_id INT REFERENCES users(id), + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + user_id UUID REFERENCES users(id), title TEXT NOT NULL, body TEXT, is_read BOOLEAN DEFAULT FALSE, created_at TIMESTAMP DEFAULT NOW() -); +); \ No newline at end of file