Skip to content

Commit 577c221

Browse files
committed
feat: updated the db migrations
1 parent 858323d commit 577c221

7 files changed

Lines changed: 396 additions & 7580 deletions

db/migrations/0000_flawless_jack_murdock.sql renamed to db/migrations/0000_outgoing_christian_walker.sql

Lines changed: 34 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,20 @@ CREATE TABLE "expense_categories" (
411411
"deletedAt" timestamp
412412
);
413413
--> statement-breakpoint
414+
CREATE TABLE "expense_items" (
415+
"id" serial PRIMARY KEY NOT NULL,
416+
"expenseId" bigint NOT NULL,
417+
"itemName" varchar(255) NOT NULL,
418+
"quantity" numeric(10, 3) DEFAULT '1.000' NOT NULL,
419+
"unitPrice" numeric(15, 2) NOT NULL,
420+
"totalPrice" numeric(15, 2) NOT NULL,
421+
"categoryId" bigint NOT NULL,
422+
"notes" text,
423+
"createdAt" timestamp DEFAULT now() NOT NULL,
424+
"updatedAt" timestamp DEFAULT now() NOT NULL,
425+
"deletedAt" timestamp
426+
);
427+
--> statement-breakpoint
414428
CREATE TABLE "expenses" (
415429
"id" serial PRIMARY KEY NOT NULL,
416430
"locationId" bigint NOT NULL,
@@ -1012,8 +1026,27 @@ CREATE TABLE "webhooks" (
10121026
"deletedAt" timestamp
10131027
);
10141028
--> statement-breakpoint
1029+
ALTER TABLE "accounts" ADD CONSTRAINT "accounts_parentAccountId_accounts_id_fk" FOREIGN KEY ("parentAccountId") REFERENCES "public"."accounts"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
1030+
ALTER TABLE "alerts_config" ADD CONSTRAINT "alerts_config_accountId_accounts_id_fk" FOREIGN KEY ("accountId") REFERENCES "public"."accounts"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
1031+
ALTER TABLE "alerts_log" ADD CONSTRAINT "alerts_log_accountId_accounts_id_fk" FOREIGN KEY ("accountId") REFERENCES "public"."accounts"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
1032+
ALTER TABLE "bill_payments" ADD CONSTRAINT "bill_payments_accountId_accounts_id_fk" FOREIGN KEY ("accountId") REFERENCES "public"."accounts"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
10151033
ALTER TABLE "businesses" ADD CONSTRAINT "businesses_accountRefId_customer_accounts_id_fk" FOREIGN KEY ("accountRefId") REFERENCES "public"."customer_accounts"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
1034+
ALTER TABLE "daily_mpesa_ledger" ADD CONSTRAINT "daily_mpesa_ledger_accountId_accounts_id_fk" FOREIGN KEY ("accountId") REFERENCES "public"."accounts"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
1035+
ALTER TABLE "expense_categories" ADD CONSTRAINT "expense_categories_defaultAccountId_accounts_id_fk" FOREIGN KEY ("defaultAccountId") REFERENCES "public"."accounts"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
1036+
ALTER TABLE "expenses" ADD CONSTRAINT "expenses_accountId_accounts_id_fk" FOREIGN KEY ("accountId") REFERENCES "public"."accounts"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
1037+
ALTER TABLE "items" ADD CONSTRAINT "items_incomeAccountId_accounts_id_fk" FOREIGN KEY ("incomeAccountId") REFERENCES "public"."accounts"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
1038+
ALTER TABLE "items" ADD CONSTRAINT "items_expenseAccountId_accounts_id_fk" FOREIGN KEY ("expenseAccountId") REFERENCES "public"."accounts"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
1039+
ALTER TABLE "items" ADD CONSTRAINT "items_assetAccountId_accounts_id_fk" FOREIGN KEY ("assetAccountId") REFERENCES "public"."accounts"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
1040+
ALTER TABLE "journal_lines" ADD CONSTRAINT "journal_lines_accountId_accounts_id_fk" FOREIGN KEY ("accountId") REFERENCES "public"."accounts"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
1041+
ALTER TABLE "ledger_entries" ADD CONSTRAINT "ledger_entries_accountId_accounts_id_fk" FOREIGN KEY ("accountId") REFERENCES "public"."accounts"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
1042+
ALTER TABLE "location_payment_methods" ADD CONSTRAINT "location_payment_methods_linkedAccountId_accounts_id_fk" FOREIGN KEY ("linkedAccountId") REFERENCES "public"."accounts"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
1043+
ALTER TABLE "locations" ADD CONSTRAINT "locations_defaultMpesaAccountId_accounts_id_fk" FOREIGN KEY ("defaultMpesaAccountId") REFERENCES "public"."accounts"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
1044+
ALTER TABLE "locations" ADD CONSTRAINT "locations_defaultCashAccountId_accounts_id_fk" FOREIGN KEY ("defaultCashAccountId") REFERENCES "public"."accounts"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
1045+
ALTER TABLE "mpesa_transactions" ADD CONSTRAINT "mpesa_transactions_sourceAccountId_accounts_id_fk" FOREIGN KEY ("sourceAccountId") REFERENCES "public"."accounts"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
1046+
ALTER TABLE "mpesa_transactions" ADD CONSTRAINT "mpesa_transactions_destinationAccountId_accounts_id_fk" FOREIGN KEY ("destinationAccountId") REFERENCES "public"."accounts"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
10161047
ALTER TABLE "payment_methods" ADD CONSTRAINT "payment_methods_accountRefId_customer_accounts_id_fk" FOREIGN KEY ("accountRefId") REFERENCES "public"."customer_accounts"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
1048+
ALTER TABLE "recurring_bill_templates" ADD CONSTRAINT "recurring_bill_templates_liabilityAccountId_accounts_id_fk" FOREIGN KEY ("liabilityAccountId") REFERENCES "public"."accounts"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
1049+
ALTER TABLE "revenue_categories" ADD CONSTRAINT "revenue_categories_incomeAccountId_accounts_id_fk" FOREIGN KEY ("incomeAccountId") REFERENCES "public"."accounts"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
10171050
ALTER TABLE "users" ADD CONSTRAINT "users_accountRefId_customer_accounts_id_fk" FOREIGN KEY ("accountRefId") REFERENCES "public"."customer_accounts"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
10181051
CREATE INDEX "idx_accounts_type" ON "accounts" USING btree ("accountType");--> statement-breakpoint
10191052
CREATE INDEX "idx_accounts_business" ON "accounts" USING btree ("businessId");--> statement-breakpoint
@@ -1063,107 +1096,4 @@ CREATE INDEX "idx_users_id" ON "users" USING btree ("id");--> statement-breakpoi
10631096
CREATE INDEX "idx_users_deletedAt" ON "users" USING btree ("deletedAt");--> statement-breakpoint
10641097
CREATE INDEX "idx_users_isActive" ON "users" USING btree ("isActive");--> statement-breakpoint
10651098
CREATE INDEX "idx_users_currentBusinessId" ON "users" USING btree ("currentBusinessId");--> statement-breakpoint
1066-
CREATE UNIQUE INDEX "idx_users_username_accountId" ON "users" USING btree ("username","accountId");
1067-
1068-
-- ============================================================
1069-
-- DOWN: Rollback the entire migration
1070-
-- Drops all tables and enums created by this migration
1071-
-- Run this to completely revert the database to a clean state
1072-
-- ============================================================
1073-
1074-
-- Step 1: Drop foreign key constraints
1075-
ALTER TABLE IF EXISTS "users" DROP CONSTRAINT IF EXISTS "users_accountRefId_customer_accounts_id_fk";
1076-
ALTER TABLE IF EXISTS "payment_methods" DROP CONSTRAINT IF EXISTS "payment_methods_accountRefId_customer_accounts_id_fk";
1077-
ALTER TABLE IF EXISTS "businesses" DROP CONSTRAINT IF EXISTS "businesses_accountRefId_customer_accounts_id_fk";
1078-
1079-
-- Step 2: Drop all tables with CASCADE
1080-
DROP TABLE IF EXISTS "accounts" CASCADE;
1081-
DROP TABLE IF EXISTS "alerts_config" CASCADE;
1082-
DROP TABLE IF EXISTS "alerts_log" CASCADE;
1083-
DROP TABLE IF EXISTS "allocation_invites" CASCADE;
1084-
DROP TABLE IF EXISTS "api_keys" CASCADE;
1085-
DROP TABLE IF EXISTS "app_settings" CASCADE;
1086-
DROP TABLE IF EXISTS "attachments" CASCADE;
1087-
DROP TABLE IF EXISTS "audit_log" CASCADE;
1088-
DROP TABLE IF EXISTS "bill_items" CASCADE;
1089-
DROP TABLE IF EXISTS "bill_payments" CASCADE;
1090-
DROP TABLE IF EXISTS "bills" CASCADE;
1091-
DROP TABLE IF EXISTS "budgets" CASCADE;
1092-
DROP TABLE IF EXISTS "business_documents" CASCADE;
1093-
DROP TABLE IF EXISTS "business_inquiries" CASCADE;
1094-
DROP TABLE IF EXISTS "business_logos" CASCADE;
1095-
DROP TABLE IF EXISTS "businesses" CASCADE;
1096-
DROP TABLE IF EXISTS "cogs_targets" CASCADE;
1097-
DROP TABLE IF EXISTS "customer_accounts" CASCADE;
1098-
DROP TABLE IF EXISTS "daily_mpesa_ledger" CASCADE;
1099-
DROP TABLE IF EXISTS "daily_sale_payments" CASCADE;
1100-
DROP TABLE IF EXISTS "daily_sales" CASCADE;
1101-
DROP TABLE IF EXISTS "employees" CASCADE;
1102-
DROP TABLE IF EXISTS "expense_categories" CASCADE;
1103-
DROP TABLE IF EXISTS "expenses" CASCADE;
1104-
DROP TABLE IF EXISTS "external_sync_config" CASCADE;
1105-
DROP TABLE IF EXISTS "feedback_questionnaires" CASCADE;
1106-
DROP TABLE IF EXISTS "feedback_responses" CASCADE;
1107-
DROP TABLE IF EXISTS "financial_reports" CASCADE;
1108-
DROP TABLE IF EXISTS "fixed_asset_depreciation" CASCADE;
1109-
DROP TABLE IF EXISTS "items" CASCADE;
1110-
DROP TABLE IF EXISTS "journal_entries" CASCADE;
1111-
DROP TABLE IF EXISTS "journal_lines" CASCADE;
1112-
DROP TABLE IF EXISTS "ledger_entries" CASCADE;
1113-
DROP TABLE IF EXISTS "location_payment_methods" CASCADE;
1114-
DROP TABLE IF EXISTS "locations" CASCADE;
1115-
DROP TABLE IF EXISTS "master_items" CASCADE;
1116-
DROP TABLE IF EXISTS "mpesa_reconciliation" CASCADE;
1117-
DROP TABLE IF EXISTS "mpesa_transactions" CASCADE;
1118-
DROP TABLE IF EXISTS "notifications" CASCADE;
1119-
DROP TABLE IF EXISTS "partner_allocations" CASCADE;
1120-
DROP TABLE IF EXISTS "partner_commissions" CASCADE;
1121-
DROP TABLE IF EXISTS "payment_methods" CASCADE;
1122-
DROP TABLE IF EXISTS "payroll_advances" CASCADE;
1123-
DROP TABLE IF EXISTS "payroll_entries" CASCADE;
1124-
DROP TABLE IF EXISTS "payroll_periods" CASCADE;
1125-
DROP TABLE IF EXISTS "payroll_settings" CASCADE;
1126-
DROP TABLE IF EXISTS "price_alert_rules" CASCADE;
1127-
DROP TABLE IF EXISTS "purchase_order_items" CASCADE;
1128-
DROP TABLE IF EXISTS "purchase_orders" CASCADE;
1129-
DROP TABLE IF EXISTS "push_subscriptions" CASCADE;
1130-
DROP TABLE IF EXISTS "quick_actions_log" CASCADE;
1131-
DROP TABLE IF EXISTS "recurring_bill_templates" CASCADE;
1132-
DROP TABLE IF EXISTS "refresh_tokens" CASCADE;
1133-
DROP TABLE IF EXISTS "revenue_categories" CASCADE;
1134-
DROP TABLE IF EXISTS "role_permissions" CASCADE;
1135-
DROP TABLE IF EXISTS "supplier_price_history" CASCADE;
1136-
DROP TABLE IF EXISTS "suppliers" CASCADE;
1137-
DROP TABLE IF EXISTS "user_businesses" CASCADE;
1138-
DROP TABLE IF EXISTS "users" CASCADE;
1139-
DROP TABLE IF EXISTS "webhook_deliveries" CASCADE;
1140-
DROP TABLE IF EXISTS "webhooks" CASCADE;
1141-
1142-
-- Step 3: Drop all custom enum types
1143-
DROP TYPE IF EXISTS "public"."accountSubType";
1144-
DROP TYPE IF EXISTS "public"."accountType";
1145-
DROP TYPE IF EXISTS "public"."accountingClass";
1146-
DROP TYPE IF EXISTS "public"."action";
1147-
DROP TYPE IF EXISTS "public"."advanceStatus";
1148-
DROP TYPE IF EXISTS "public"."allocation_invite_status";
1149-
DROP TYPE IF EXISTS "public"."allocation_rights";
1150-
DROP TYPE IF EXISTS "public"."billStatus";
1151-
DROP TYPE IF EXISTS "public"."depreciationMethod";
1152-
DROP TYPE IF EXISTS "public"."entryType";
1153-
DROP TYPE IF EXISTS "public"."frequency";
1154-
DROP TYPE IF EXISTS "public"."itemType";
1155-
DROP TYPE IF EXISTS "public"."leadStatus";
1156-
DROP TYPE IF EXISTS "public"."orderStatus";
1157-
DROP TYPE IF EXISTS "public"."partner_allocation_status";
1158-
DROP TYPE IF EXISTS "public"."paymentMethod";
1159-
DROP TYPE IF EXISTS "public"."paymentMethod2";
1160-
DROP TYPE IF EXISTS "public"."payrollStatus";
1161-
DROP TYPE IF EXISTS "public"."revenueCategoryType";
1162-
DROP TYPE IF EXISTS "public"."role";
1163-
DROP TYPE IF EXISTS "public"."salaryType";
1164-
DROP TYPE IF EXISTS "public"."severity";
1165-
DROP TYPE IF EXISTS "public"."status";
1166-
DROP TYPE IF EXISTS "public"."transactionType";
1167-
DROP TYPE IF EXISTS "public"."txnType";
1168-
DROP TYPE IF EXISTS "public"."type";
1169-
DROP TYPE IF EXISTS "public"."user_type";
1099+
CREATE UNIQUE INDEX "idx_users_username_accountId" ON "users" USING btree ("username","accountId");

‎db/migrations/0001_gifted_secret_warriors.sql‎

Lines changed: 0 additions & 19 deletions
This file was deleted.

‎db/migrations/0002_soft_flamingo.sql‎

Lines changed: 0 additions & 29 deletions
This file was deleted.

0 commit comments

Comments
 (0)