snf_core 0.2.94 → 0.2.95

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/snf_core/auth_controller.rb +12 -2
  3. data/app/models/snf_core/account_transfer.rb +37 -0
  4. data/app/models/snf_core/item_request.rb +27 -0
  5. data/app/models/snf_core/user.rb +7 -6
  6. data/app/models/snf_core/virtual_account.rb +41 -0
  7. data/app/models/snf_core/virtual_account_transaction.rb +52 -0
  8. data/db/migrate/20250310122954_create_snf_core_virtual_accounts.rb +22 -0
  9. data/db/migrate/20250310123127_add_kyc_attributes_to_user.rb +17 -0
  10. data/db/migrate/20250310133249_create_snf_core_virtual_account_transactions.rb +18 -0
  11. data/db/migrate/20250310143604_create_snf_core_item_requests.rb +14 -0
  12. data/db/migrate/20250311000000_create_snf_core_account_transfers.rb +21 -0
  13. data/lib/snf_core/version.rb +1 -1
  14. data/spec/dummy/db/schema.rb +117 -27
  15. data/spec/dummy/log/development.log +1820 -0
  16. data/spec/dummy/log/test.log +99021 -0
  17. data/spec/dummy/tmp/storage/00/ch/00ch4m884d5bnelqgd2ld1qig6ey +0 -0
  18. data/spec/dummy/tmp/storage/0s/ba/0sbase6mg5sgich6or97cg1faxlw +0 -0
  19. data/spec/dummy/tmp/storage/0x/uy/0xuyfqa0t08zr8vfm8p123o0s34t +0 -0
  20. data/spec/dummy/tmp/storage/1o/ts/1otsbrqkd6n4qiht1wabl7fhjnt3 +0 -0
  21. data/spec/dummy/tmp/storage/1v/54/1v542i134jpb9iwbq9m1v801y0ls +0 -0
  22. data/spec/dummy/tmp/storage/1y/46/1y4617uv2nrk9fa58zfv9xyixmfk +0 -0
  23. data/spec/dummy/tmp/storage/24/kq/24kq40q48k7jry3npyah0td4uend +0 -0
  24. data/spec/dummy/tmp/storage/28/ye/28yeusf04wxopqkg0bxki7mqo9ph +0 -0
  25. data/spec/dummy/tmp/storage/2r/hv/2rhvs6uca2ozrojfuub5d4qk0ugy +0 -0
  26. data/spec/dummy/tmp/storage/2w/r1/2wr14buxnrx4cee19gj6sefnbby5 +0 -0
  27. data/spec/dummy/tmp/storage/3k/7z/3k7zlcd9fm2jwn99kinxpahrmm4u +0 -0
  28. data/spec/dummy/tmp/storage/3o/2a/3o2ahddfby8aqgutow91vo4asm4f +0 -0
  29. data/spec/dummy/tmp/storage/46/zj/46zjkljy84qmg4ebes40e2zolzp7 +0 -0
  30. data/spec/dummy/tmp/storage/4f/fl/4fflxsg2pissq4960wfazyv9mgp1 +0 -0
  31. data/spec/dummy/tmp/storage/4l/6a/4l6ap3t705ektu02kabqobaq8huf +0 -0
  32. data/spec/dummy/tmp/storage/4m/3n/4m3n3r5zl2jevvvw3alq0omnnowk +0 -0
  33. data/spec/dummy/tmp/storage/4t/qc/4tqc587gmu2g7hgntrgjnhkw0e1u +0 -0
  34. data/spec/dummy/tmp/storage/4w/76/4w7656628v1p4mp87fqz3okc6ix4 +0 -0
  35. data/spec/dummy/tmp/storage/50/ct/50ctjwt8y93spjaef1b3rfnav9gb +0 -0
  36. data/spec/dummy/tmp/storage/5m/0k/5m0k5zx08ouqos7rs09bpgmalspu +0 -0
  37. data/spec/dummy/tmp/storage/5m/4n/5m4nvbe3vqwrdpy6hujr1oq5nolv +0 -0
  38. data/spec/dummy/tmp/storage/5r/tv/5rtv2agppt9e52eg0oc81svs896e +0 -0
  39. data/spec/dummy/tmp/storage/5s/b6/5sb6kux9jtdj4du9ihu32tc82s12 +0 -0
  40. data/spec/dummy/tmp/storage/5t/84/5t84ncnwqnv83rndaztqz1dsae3v +0 -0
  41. data/spec/dummy/tmp/storage/6h/9a/6h9a6bxecnlwx7zbb4dc33rmftee +0 -0
  42. data/spec/dummy/tmp/storage/6h/pd/6hpdw0r7w6vpcotirwqz1fv640kk +0 -0
  43. data/spec/dummy/tmp/storage/6i/dm/6idmnfdfriqdmvcvgreyeho4xgra +0 -0
  44. data/spec/dummy/tmp/storage/6n/3b/6n3bufdfx1tvls9lzm3g625l1lyk +0 -0
  45. data/spec/dummy/tmp/storage/78/5u/785ub96ra353qygeubpq4vlifjas +0 -0
  46. data/spec/dummy/tmp/storage/7v/55/7v55c4y5xdiw6qrvbdpmd63v4toz +0 -0
  47. data/spec/dummy/tmp/storage/83/yi/83yiflnj2evgqahmzgiavbywle7h +0 -0
  48. data/spec/dummy/tmp/storage/8a/02/8a02q8tcm3lowda8cvcjh18tka7i +0 -0
  49. data/spec/dummy/tmp/storage/8g/4a/8g4aarquz0mos9gxzq6j7xzwli09 +0 -0
  50. data/spec/dummy/tmp/storage/8k/0m/8k0mv7xql5lr89d0172izqplypwx +0 -0
  51. data/spec/dummy/tmp/storage/8n/lz/8nlzdb800dgr9iax1ez2ko4euh02 +0 -0
  52. data/spec/dummy/tmp/storage/8y/y2/8yy2kqz8sa11vh7naiomyofj30ox +0 -0
  53. data/spec/dummy/tmp/storage/92/hz/92hz15r26fs5wymc6tced4b08bh6 +0 -0
  54. data/spec/dummy/tmp/storage/9k/wj/9kwjdz4yw0jyzddj32u97xciot47 +0 -0
  55. data/spec/dummy/tmp/storage/a0/ve/a0veqfafcpy1hl6jvg6jc4qt08kr +0 -0
  56. data/spec/dummy/tmp/storage/ak/g9/akg9bg7fdwisycbclvmikbzl676j +0 -0
  57. data/spec/dummy/tmp/storage/ap/fs/apfsy6cp4mt4jsyiyscutqhv36id +0 -0
  58. data/spec/dummy/tmp/storage/b2/ux/b2uxv1pu0hjqty7779grby8qxzoo +0 -0
  59. data/spec/dummy/tmp/storage/bh/s1/bhs1yc1jo5vhc1u8lz7zme0sowln +0 -0
  60. data/spec/dummy/tmp/storage/c6/29/c6299u91u1tc5bc7eb24yq8k7xgk +0 -0
  61. data/spec/dummy/tmp/storage/cb/dh/cbdhbsxm7irfbsrniqvxnfukotka +0 -0
  62. data/spec/dummy/tmp/storage/dj/zr/djzriitbyq5sebmjs7nf0wqijzl2 +0 -0
  63. data/spec/dummy/tmp/storage/dk/z6/dkz6yvma826vmeofy924nzacyi6a +0 -0
  64. data/spec/dummy/tmp/storage/e6/5h/e65haeyr0sglopfuo5chz55thi9z +0 -0
  65. data/spec/dummy/tmp/storage/ez/kd/ezkdx2jgksxsm9fdwpx5qw8qd6hb +0 -0
  66. data/spec/dummy/tmp/storage/ft/pz/ftpzprhag9awyjvcac1xiqv9qngf +0 -0
  67. data/spec/dummy/tmp/storage/g1/fp/g1fprpwzsoltdd9atheqqbmt75w1 +0 -0
  68. data/spec/dummy/tmp/storage/g6/7r/g67rz6k8b5kmrfsk91e77d37vnfg +0 -0
  69. data/spec/dummy/tmp/storage/ik/r8/ikr86smhkvxy0yrqxjr0iubcuy5s +0 -0
  70. data/spec/dummy/tmp/storage/ip/yy/ipyyodp4f221bzp384ncz3alga7l +0 -0
  71. data/spec/dummy/tmp/storage/jc/jk/jcjkdsojvg0n7abwcfpscbkrlvoj +0 -0
  72. data/spec/dummy/tmp/storage/jd/ik/jdik45lk030wwyyfs9xy6m4q0sv9 +0 -0
  73. data/spec/dummy/tmp/storage/jo/34/jo34sgi1pzpkbryh3z6bmeccbada +0 -0
  74. data/spec/dummy/tmp/storage/jw/gm/jwgmfnb1z5jahut7upw5lwnh6orj +0 -0
  75. data/spec/dummy/tmp/storage/kv/7m/kv7mdo1kvqnagfcp1dit4pzrlugm +0 -0
  76. data/spec/dummy/tmp/storage/kz/ao/kzao8av3jxls3bjeal7bv2qefcq2 +0 -0
  77. data/spec/dummy/tmp/storage/lp/iz/lpizuy9o61mj9a6nsp66uhxmwifn +0 -0
  78. data/spec/dummy/tmp/storage/lu/ge/lugetp9a4lxzimpwttg2bkmrv1tf +0 -0
  79. data/spec/dummy/tmp/storage/m0/hl/m0hl9jcc1ra6ogfep0yxwon1n8e4 +0 -0
  80. data/spec/dummy/tmp/storage/md/94/md943ike1q6c3z19js6h89ghdqpd +0 -0
  81. data/spec/dummy/tmp/storage/mi/y2/miy2op7reeft1521or0hx3sa03qi +0 -0
  82. data/spec/dummy/tmp/storage/n4/6y/n46y5dyl1uf9ihlyp79fzdxny80f +0 -0
  83. data/spec/dummy/tmp/storage/ng/sy/ngsy8siky5us2x8cr54uxlzwoji5 +0 -0
  84. data/spec/dummy/tmp/storage/nq/9r/nq9rfa8upvcoyx92za4fhzrmob0t +0 -0
  85. data/spec/dummy/tmp/storage/nz/h5/nzh5f9vo9icpp0qvxvvm57ivsy85 +0 -0
  86. data/spec/dummy/tmp/storage/o3/3e/o33eo1zb3spyqgqbtugs43olucmj +0 -0
  87. data/spec/dummy/tmp/storage/oc/zy/oczyqb5chp2fvo9kdu62c3y7pl5i +0 -0
  88. data/spec/dummy/tmp/storage/of/zt/ofzt1knekv9ft8direbw6fiaacvc +0 -0
  89. data/spec/dummy/tmp/storage/ol/u8/olu875ti78gguc82spdkt9z8tpii +0 -0
  90. data/spec/dummy/tmp/storage/pe/xm/pexmtjvhiiepbza9928j2j0uo6ub +0 -0
  91. data/spec/dummy/tmp/storage/q4/wp/q4wpnk0ajsmg3nnpj2xja15tc1az +0 -0
  92. data/spec/dummy/tmp/storage/q7/48/q748a4a7d3qk28vajhbkli5tttsj +0 -0
  93. data/spec/dummy/tmp/storage/qg/qu/qgquu27ysijim1jv06k39a3c3opr +0 -0
  94. data/spec/dummy/tmp/storage/qo/zx/qozxdnemk1fwxcvhe1j10ys7mxcq +0 -0
  95. data/spec/dummy/tmp/storage/rg/hw/rghwbui1nfqvuuja4hqvzvwofucm +0 -0
  96. data/spec/dummy/tmp/storage/rj/4a/rj4a0t2xebuf22tyhuitu7x0h0ct +0 -0
  97. data/spec/dummy/tmp/storage/ro/gg/roggtjpn82v1pf5hi9c72ta6uxt7 +0 -0
  98. data/spec/dummy/tmp/storage/sd/b5/sdb5dbqjlz1nng8qaejdmh94h5kh +0 -0
  99. data/spec/dummy/tmp/storage/t6/h0/t6h0whv9denben7ktf5maaohv9dg +0 -0
  100. data/spec/dummy/tmp/storage/u8/dc/u8dc1at72gpsq6d2fqb81rku7xq9 +0 -0
  101. data/spec/dummy/tmp/storage/v8/cs/v8csqmcgvc4z177g5hfmp7twf6ay +0 -0
  102. data/spec/dummy/tmp/storage/vb/z1/vbz124po6xcx6fbh4nefle8r6of3 +0 -0
  103. data/spec/dummy/tmp/storage/vc/0v/vc0vb76xhipq8d5xrmqnnvlkbxhi +0 -0
  104. data/spec/dummy/tmp/storage/vc/eu/vceu8un4vczdune7r9oaihtx3l09 +0 -0
  105. data/spec/dummy/tmp/storage/vg/qn/vgqnfl62z1s3940ei2s9ifrjufiz +0 -0
  106. data/spec/dummy/tmp/storage/vz/qz/vzqz49sc3hfzbcaawqw6yuqzpocv +0 -0
  107. data/spec/dummy/tmp/storage/w1/9e/w19epnmenhmu0y14exloj2oskf53 +0 -0
  108. data/spec/dummy/tmp/storage/w4/k8/w4k8g0iv6qtdhzyw454un1d048hp +0 -0
  109. data/spec/dummy/tmp/storage/wv/8i/wv8iai6dxxh2wqwnj667p5rre1tn +0 -0
  110. data/spec/dummy/tmp/storage/xd/fp/xdfpr9gw2neskzyq6cfxyj2lsa47 +0 -0
  111. data/spec/dummy/tmp/storage/xh/4e/xh4e0tnk5ysrfndrhyu9u0ywueku +0 -0
  112. data/spec/dummy/tmp/storage/xj/d2/xjd2s558zk0eduk4f25ul4t29b2r +0 -0
  113. data/spec/dummy/tmp/storage/yi/r2/yir26w0pcj2268kp8biw0lcrnimz +0 -0
  114. data/spec/dummy/tmp/storage/yj/d7/yjd7k0ea2d8y6yjp8syfudd0qvhr +0 -0
  115. data/spec/dummy/tmp/storage/z0/il/z0ilfyp3hmqqn6alkocrt7y949ee +0 -0
  116. data/spec/dummy/tmp/storage/zc/i3/zci3kt86sywh9q6u7xv7yt38xznu +0 -0
  117. data/spec/examples.txt +192 -128
  118. data/spec/factories/snf_core/account_transfers.rb +27 -0
  119. data/spec/factories/snf_core/addresses.rb +1 -0
  120. data/spec/factories/snf_core/item_requests.rb +26 -0
  121. data/spec/factories/snf_core/users.rb +10 -1
  122. data/spec/factories/snf_core/virtual_account_transactions.rb +33 -0
  123. data/spec/factories/snf_core/virtual_accounts.rb +32 -0
  124. data/spec/models/snf_core/account_transfer_spec.rb +29 -0
  125. data/spec/models/snf_core/item_request_spec.rb +44 -0
  126. data/spec/models/snf_core/user_spec.rb +5 -8
  127. data/spec/models/snf_core/virtual_account_spec.rb +86 -0
  128. data/spec/models/snf_core/virtual_account_transaction_spec.rb +72 -0
  129. data/spec/requests/snf_core/auth_spec.rb +11 -1
  130. metadata +119 -2
@@ -3466,3 +3466,1823 @@ Migrating to AddPasswordFieldsToSnfCoreUsers (20250306074713)
3466
3466
  TRANSACTION (0.4ms) COMMIT /*application='Dummy'*/
3467
3467
   (1.6ms) SELECT pg_advisory_unlock(869468062957908540) /*application='Dummy'*/
3468
3468
  ActiveRecord::SchemaMigration Load (0.3ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3469
+ ActiveRecord::SchemaMigration Load (2.7ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3470
+ ActiveRecord::InternalMetadata Load (5.2ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
3471
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3472
+ ActiveRecord::InternalMetadata Load (0.2ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
3473
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3474
+ ActiveRecord::InternalMetadata Load (0.2ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
3475
+ SQL (0.1ms) SET search_path TO public /*application='Dummy'*/
3476
+  (86.3ms) DROP DATABASE IF EXISTS "snf_test" /*application='Dummy'*/
3477
+  (160.0ms) CREATE DATABASE "snf_test" ENCODING = 'unicode' /*application='Dummy'*/
3478
+ SQL (77.4ms) CREATE EXTENSION IF NOT EXISTS "plpgsql" SCHEMA pg_catalog /*application='Dummy'*/
3479
+  (4.2ms) DROP TABLE IF EXISTS "active_storage_attachments" CASCADE /*application='Dummy'*/
3480
+  (58.8ms) CREATE TABLE "active_storage_attachments" ("id" bigserial primary key, "name" character varying NOT NULL, "record_type" character varying NOT NULL, "record_id" bigint NOT NULL, "blob_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3481
+  (2.5ms) CREATE INDEX "index_active_storage_attachments_on_blob_id" ON "active_storage_attachments" ("blob_id") /*application='Dummy'*/
3482
+  (1.7ms) CREATE UNIQUE INDEX "index_active_storage_attachments_uniqueness" ON "active_storage_attachments" ("record_type", "record_id", "name", "blob_id") /*application='Dummy'*/
3483
+  (0.3ms) DROP TABLE IF EXISTS "active_storage_blobs" CASCADE /*application='Dummy'*/
3484
+  (12.1ms) CREATE TABLE "active_storage_blobs" ("id" bigserial primary key, "key" character varying NOT NULL, "filename" character varying NOT NULL, "content_type" character varying, "metadata" text, "service_name" character varying NOT NULL, "byte_size" bigint NOT NULL, "checksum" character varying, "created_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3485
+  (2.7ms) CREATE UNIQUE INDEX "index_active_storage_blobs_on_key" ON "active_storage_blobs" ("key") /*application='Dummy'*/
3486
+  (0.4ms) DROP TABLE IF EXISTS "active_storage_variant_records" CASCADE /*application='Dummy'*/
3487
+  (5.9ms) CREATE TABLE "active_storage_variant_records" ("id" bigserial primary key, "blob_id" bigint NOT NULL, "variation_digest" character varying NOT NULL) /*application='Dummy'*/
3488
+  (2.2ms) CREATE UNIQUE INDEX "index_active_storage_variant_records_uniqueness" ON "active_storage_variant_records" ("blob_id", "variation_digest") /*application='Dummy'*/
3489
+  (0.4ms) DROP TABLE IF EXISTS "snf_core_addresses" CASCADE /*application='Dummy'*/
3490
+  (6.9ms) CREATE TABLE "snf_core_addresses" ("id" bigserial primary key, "address_type" character varying NOT NULL, "city" character varying NOT NULL, "sub_city" character varying NOT NULL, "woreda" character varying, "latitude" decimal NOT NULL, "longitude" decimal NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3491
+  (0.6ms) DROP TABLE IF EXISTS "snf_core_business_documents" CASCADE /*application='Dummy'*/
3492
+  (4.1ms) CREATE TABLE "snf_core_business_documents" ("id" bigserial primary key, "business_id" bigint NOT NULL, "document_type" integer NOT NULL, "verified_at" timestamp(6), "verified_by_id" bigint, "uploaded_at" timestamp(6), "is_verified" boolean DEFAULT FALSE NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3493
+  (2.9ms) CREATE INDEX "index_snf_core_business_documents_on_business_id" ON "snf_core_business_documents" ("business_id") /*application='Dummy'*/
3494
+  (2.1ms) CREATE INDEX "index_snf_core_business_documents_on_verified_by_id" ON "snf_core_business_documents" ("verified_by_id") /*application='Dummy'*/
3495
+  (0.4ms) DROP TABLE IF EXISTS "snf_core_businesses" CASCADE /*application='Dummy'*/
3496
+  (7.3ms) CREATE TABLE "snf_core_businesses" ("id" bigserial primary key, "user_id" bigint NOT NULL, "business_name" character varying NOT NULL, "tin_number" character varying NOT NULL, "business_type" integer NOT NULL, "verified_at" timestamp(6), "verification_status" integer DEFAULT 0 NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3497
+  (3.2ms) CREATE INDEX "index_snf_core_businesses_on_user_id" ON "snf_core_businesses" ("user_id") /*application='Dummy'*/
3498
+  (0.3ms) DROP TABLE IF EXISTS "snf_core_categories" CASCADE /*application='Dummy'*/
3499
+  (5.7ms) CREATE TABLE "snf_core_categories" ("id" bigserial primary key, "name" character varying NOT NULL, "description" character varying, "parent_id" bigint, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3500
+  (2.1ms) CREATE INDEX "index_snf_core_categories_on_parent_id" ON "snf_core_categories" ("parent_id") /*application='Dummy'*/
3501
+  (0.3ms) DROP TABLE IF EXISTS "snf_core_customer_groups" CASCADE /*application='Dummy'*/
3502
+  (5.1ms) CREATE TABLE "snf_core_customer_groups" ("id" bigserial primary key, "discount_code" character varying, "expire_date" timestamp(6), "is_used" boolean, "group_id" bigint NOT NULL, "customer_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3503
+  (2.2ms) CREATE INDEX "index_snf_core_customer_groups_on_customer_id" ON "snf_core_customer_groups" ("customer_id") /*application='Dummy'*/
3504
+  (1.5ms) CREATE INDEX "index_snf_core_customer_groups_on_group_id" ON "snf_core_customer_groups" ("group_id") /*application='Dummy'*/
3505
+  (0.4ms) DROP TABLE IF EXISTS "snf_core_delivery_orders" CASCADE /*application='Dummy'*/
3506
+  (5.0ms) CREATE TABLE "snf_core_delivery_orders" ("id" bigserial primary key, "order_id" bigint NOT NULL, "delivery_address" character varying NOT NULL, "contact_phone" character varying NOT NULL, "delivery_notes" text NOT NULL, "estimated_delivery_time" timestamp(6) NOT NULL, "actual_delivery_time" timestamp(6), "status" integer NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3507
+  (2.3ms) CREATE INDEX "index_snf_core_delivery_orders_on_order_id" ON "snf_core_delivery_orders" ("order_id") /*application='Dummy'*/
3508
+  (0.4ms) DROP TABLE IF EXISTS "snf_core_groups" CASCADE /*application='Dummy'*/
3509
+  (7.4ms) CREATE TABLE "snf_core_groups" ("id" bigserial primary key, "name" character varying NOT NULL, "business_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3510
+  (2.9ms) CREATE INDEX "index_snf_core_groups_on_business_id" ON "snf_core_groups" ("business_id") /*application='Dummy'*/
3511
+  (0.5ms) DROP TABLE IF EXISTS "snf_core_order_items" CASCADE /*application='Dummy'*/
3512
+  (6.4ms) CREATE TABLE "snf_core_order_items" ("id" bigserial primary key, "order_id" bigint NOT NULL, "store_inventory_id" bigint NOT NULL, "quantity" integer NOT NULL, "unit_price" decimal NOT NULL, "subtotal" decimal NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3513
+  (2.3ms) CREATE INDEX "index_snf_core_order_items_on_order_id" ON "snf_core_order_items" ("order_id") /*application='Dummy'*/
3514
+  (2.1ms) CREATE INDEX "index_snf_core_order_items_on_store_inventory_id" ON "snf_core_order_items" ("store_inventory_id") /*application='Dummy'*/
3515
+  (0.6ms) DROP TABLE IF EXISTS "snf_core_orders" CASCADE /*application='Dummy'*/
3516
+  (6.0ms) CREATE TABLE "snf_core_orders" ("id" bigserial primary key, "user_id" bigint NOT NULL, "store_id" bigint NOT NULL, "status" integer DEFAULT 1 NOT NULL, "total_amount" decimal DEFAULT 0.0 NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3517
+  (2.1ms) CREATE INDEX "index_snf_core_orders_on_store_id" ON "snf_core_orders" ("store_id") /*application='Dummy'*/
3518
+  (1.5ms) CREATE INDEX "index_snf_core_orders_on_user_id" ON "snf_core_orders" ("user_id") /*application='Dummy'*/
3519
+  (0.3ms) DROP TABLE IF EXISTS "snf_core_products" CASCADE /*application='Dummy'*/
3520
+  (5.2ms) CREATE TABLE "snf_core_products" ("id" bigserial primary key, "sku" character varying NOT NULL, "name" character varying NOT NULL, "description" character varying, "category_id" bigint NOT NULL, "base_price" float, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3521
+  (2.2ms) CREATE INDEX "index_snf_core_products_on_category_id" ON "snf_core_products" ("category_id") /*application='Dummy'*/
3522
+  (0.3ms) DROP TABLE IF EXISTS "snf_core_roles" CASCADE /*application='Dummy'*/
3523
+  (5.3ms) CREATE TABLE "snf_core_roles" ("id" bigserial primary key, "name" character varying NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3524
+  (0.8ms) DROP TABLE IF EXISTS "snf_core_store_inventories" CASCADE /*application='Dummy'*/
3525
+  (4.7ms) CREATE TABLE "snf_core_store_inventories" ("id" bigserial primary key, "store_id" bigint NOT NULL, "product_id" bigint NOT NULL, "base_price" decimal(10,2) NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, "status" integer DEFAULT 0 NOT NULL) /*application='Dummy'*/
3526
+  (3.2ms) CREATE INDEX "index_snf_core_store_inventories_on_product_id" ON "snf_core_store_inventories" ("product_id") /*application='Dummy'*/
3527
+  (2.0ms) CREATE UNIQUE INDEX "index_snf_core_store_inventories_on_store_id_and_product_id" ON "snf_core_store_inventories" ("store_id", "product_id") /*application='Dummy'*/
3528
+  (2.2ms) CREATE INDEX "index_snf_core_store_inventories_on_store_id" ON "snf_core_store_inventories" ("store_id") /*application='Dummy'*/
3529
+  (0.4ms) DROP TABLE IF EXISTS "snf_core_stores" CASCADE /*application='Dummy'*/
3530
+  (6.4ms) CREATE TABLE "snf_core_stores" ("id" bigserial primary key, "name" character varying NOT NULL, "email" character varying, "operational_status" integer DEFAULT 1 NOT NULL, "business_id" bigint NOT NULL, "address_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3531
+  (2.2ms) CREATE INDEX "index_snf_core_stores_on_address_id" ON "snf_core_stores" ("address_id") /*application='Dummy'*/
3532
+  (2.0ms) CREATE INDEX "index_snf_core_stores_on_business_id" ON "snf_core_stores" ("business_id") /*application='Dummy'*/
3533
+  (0.4ms) DROP TABLE IF EXISTS "snf_core_user_roles" CASCADE /*application='Dummy'*/
3534
+  (4.7ms) CREATE TABLE "snf_core_user_roles" ("id" bigserial primary key, "user_id" bigint NOT NULL, "role_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3535
+  (2.2ms) CREATE INDEX "index_snf_core_user_roles_on_role_id" ON "snf_core_user_roles" ("role_id") /*application='Dummy'*/
3536
+  (1.9ms) CREATE INDEX "index_snf_core_user_roles_on_user_id" ON "snf_core_user_roles" ("user_id") /*application='Dummy'*/
3537
+  (0.8ms) DROP TABLE IF EXISTS "snf_core_users" CASCADE /*application='Dummy'*/
3538
+  (5.0ms) CREATE TABLE "snf_core_users" ("id" bigserial primary key, "first_name" character varying NOT NULL, "middle_name" character varying NOT NULL, "last_name" character varying NOT NULL, "email" character varying, "phone_number" character varying NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, "password_digest" character varying NOT NULL, "password_changed" boolean DEFAULT FALSE, "reset_password_token" character varying) /*application='Dummy'*/
3539
+  (0.7ms) DROP TABLE IF EXISTS "snf_core_wallets" CASCADE /*application='Dummy'*/
3540
+  (7.0ms) CREATE TABLE "snf_core_wallets" ("id" bigserial primary key, "user_id" bigint NOT NULL, "wallet_number" character varying NOT NULL, "balance" decimal NOT NULL, "is_active" boolean DEFAULT TRUE NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3541
+  (4.2ms) CREATE INDEX "index_snf_core_wallets_on_user_id" ON "snf_core_wallets" ("user_id") /*application='Dummy'*/
3542
+  (2.5ms) CREATE UNIQUE INDEX "index_snf_core_wallets_on_wallet_number" ON "snf_core_wallets" ("wallet_number") /*application='Dummy'*/
3543
+  (6.8ms) ALTER TABLE "active_storage_attachments" ADD CONSTRAINT "fk_rails_c3b3935057"
3544
+ FOREIGN KEY ("blob_id")
3545
+ REFERENCES "active_storage_blobs" ("id")
3546
+ /*application='Dummy'*/
3547
+  (2.7ms) ALTER TABLE "active_storage_variant_records" ADD CONSTRAINT "fk_rails_993965df05"
3548
+ FOREIGN KEY ("blob_id")
3549
+ REFERENCES "active_storage_blobs" ("id")
3550
+ /*application='Dummy'*/
3551
+  (2.7ms) ALTER TABLE "snf_core_business_documents" ADD CONSTRAINT "fk_rails_1efd7338ed"
3552
+ FOREIGN KEY ("business_id")
3553
+ REFERENCES "snf_core_businesses" ("id")
3554
+ /*application='Dummy'*/
3555
+  (2.0ms) ALTER TABLE "snf_core_business_documents" ADD CONSTRAINT "fk_rails_a6157021cc"
3556
+ FOREIGN KEY ("verified_by_id")
3557
+ REFERENCES "snf_core_users" ("id")
3558
+ /*application='Dummy'*/
3559
+  (2.7ms) ALTER TABLE "snf_core_businesses" ADD CONSTRAINT "fk_rails_a61edcbd4b"
3560
+ FOREIGN KEY ("user_id")
3561
+ REFERENCES "snf_core_users" ("id")
3562
+ /*application='Dummy'*/
3563
+  (1.9ms) ALTER TABLE "snf_core_categories" ADD CONSTRAINT "fk_rails_26a925b05d"
3564
+ FOREIGN KEY ("parent_id")
3565
+ REFERENCES "snf_core_categories" ("id")
3566
+ /*application='Dummy'*/
3567
+  (2.2ms) ALTER TABLE "snf_core_customer_groups" ADD CONSTRAINT "fk_rails_9c45f4015a"
3568
+ FOREIGN KEY ("group_id")
3569
+ REFERENCES "snf_core_groups" ("id")
3570
+ /*application='Dummy'*/
3571
+  (2.2ms) ALTER TABLE "snf_core_customer_groups" ADD CONSTRAINT "fk_rails_792eb3404d"
3572
+ FOREIGN KEY ("customer_id")
3573
+ REFERENCES "snf_core_users" ("id")
3574
+ /*application='Dummy'*/
3575
+  (2.8ms) ALTER TABLE "snf_core_delivery_orders" ADD CONSTRAINT "fk_rails_450d17b1b2"
3576
+ FOREIGN KEY ("order_id")
3577
+ REFERENCES "snf_core_orders" ("id")
3578
+ /*application='Dummy'*/
3579
+  (2.0ms) ALTER TABLE "snf_core_groups" ADD CONSTRAINT "fk_rails_c52b27ad67"
3580
+ FOREIGN KEY ("business_id")
3581
+ REFERENCES "snf_core_businesses" ("id")
3582
+ /*application='Dummy'*/
3583
+  (2.2ms) ALTER TABLE "snf_core_order_items" ADD CONSTRAINT "fk_rails_1f4046ba92"
3584
+ FOREIGN KEY ("order_id")
3585
+ REFERENCES "snf_core_orders" ("id")
3586
+ /*application='Dummy'*/
3587
+  (2.5ms) ALTER TABLE "snf_core_order_items" ADD CONSTRAINT "fk_rails_50419437e9"
3588
+ FOREIGN KEY ("store_inventory_id")
3589
+ REFERENCES "snf_core_store_inventories" ("id")
3590
+ /*application='Dummy'*/
3591
+  (3.3ms) ALTER TABLE "snf_core_orders" ADD CONSTRAINT "fk_rails_400cf2029c"
3592
+ FOREIGN KEY ("store_id")
3593
+ REFERENCES "snf_core_stores" ("id")
3594
+ /*application='Dummy'*/
3595
+  (1.6ms) ALTER TABLE "snf_core_orders" ADD CONSTRAINT "fk_rails_45b78fb6f9"
3596
+ FOREIGN KEY ("user_id")
3597
+ REFERENCES "snf_core_users" ("id")
3598
+ /*application='Dummy'*/
3599
+  (1.9ms) ALTER TABLE "snf_core_products" ADD CONSTRAINT "fk_rails_a0ba3fa883"
3600
+ FOREIGN KEY ("category_id")
3601
+ REFERENCES "snf_core_categories" ("id")
3602
+ /*application='Dummy'*/
3603
+  (1.9ms) ALTER TABLE "snf_core_store_inventories" ADD CONSTRAINT "fk_rails_15fb263e75"
3604
+ FOREIGN KEY ("product_id")
3605
+ REFERENCES "snf_core_products" ("id")
3606
+ /*application='Dummy'*/
3607
+  (1.8ms) ALTER TABLE "snf_core_store_inventories" ADD CONSTRAINT "fk_rails_2ca88d30e2"
3608
+ FOREIGN KEY ("store_id")
3609
+ REFERENCES "snf_core_stores" ("id")
3610
+ /*application='Dummy'*/
3611
+  (2.0ms) ALTER TABLE "snf_core_stores" ADD CONSTRAINT "fk_rails_421441da8e"
3612
+ FOREIGN KEY ("address_id")
3613
+ REFERENCES "snf_core_addresses" ("id")
3614
+ /*application='Dummy'*/
3615
+  (2.4ms) ALTER TABLE "snf_core_stores" ADD CONSTRAINT "fk_rails_e100fc7454"
3616
+ FOREIGN KEY ("business_id")
3617
+ REFERENCES "snf_core_businesses" ("id")
3618
+ /*application='Dummy'*/
3619
+  (2.8ms) ALTER TABLE "snf_core_user_roles" ADD CONSTRAINT "fk_rails_0e70d7ce00"
3620
+ FOREIGN KEY ("role_id")
3621
+ REFERENCES "snf_core_roles" ("id")
3622
+ /*application='Dummy'*/
3623
+  (1.7ms) ALTER TABLE "snf_core_user_roles" ADD CONSTRAINT "fk_rails_9ad2e78133"
3624
+ FOREIGN KEY ("user_id")
3625
+ REFERENCES "snf_core_users" ("id")
3626
+ /*application='Dummy'*/
3627
+  (2.4ms) ALTER TABLE "snf_core_wallets" ADD CONSTRAINT "fk_rails_77c94979ce"
3628
+ FOREIGN KEY ("user_id")
3629
+ REFERENCES "snf_core_users" ("id")
3630
+ /*application='Dummy'*/
3631
+  (5.6ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL PRIMARY KEY) /*application='Dummy'*/
3632
+ ActiveRecord::SchemaMigration Load (1.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3633
+  (1.2ms) INSERT INTO "schema_migrations" (version) VALUES (20250306074713) /*application='Dummy'*/
3634
+  (0.7ms) INSERT INTO "schema_migrations" (version) VALUES
3635
+ (20250305232530),
3636
+ (20250305232529),
3637
+ (20250305201008),
3638
+ (20250305170248),
3639
+ (20250305165926),
3640
+ (20250227102833),
3641
+ (20250227075048),
3642
+ (20250226193938),
3643
+ (20250226192104),
3644
+ (20250226190000),
3645
+ (20250226181007),
3646
+ (20250226123213),
3647
+ (20250226115215),
3648
+ (20250226110217),
3649
+ (20250226102931),
3650
+ (20250226080323),
3651
+ (20250226064444),
3652
+ (20250226042622); /*application='Dummy'*/
3653
+  (4.1ms) CREATE TABLE "ar_internal_metadata" ("key" character varying NOT NULL PRIMARY KEY, "value" character varying, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3654
+ ActiveRecord::InternalMetadata Load (1.8ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
3655
+ ActiveRecord::InternalMetadata Create (1.2ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ('environment', 'development', '2025-03-10 12:16:50.656367', '2025-03-10 12:16:50.656375') RETURNING "key" /*application='Dummy'*/
3656
+ ActiveRecord::InternalMetadata Load (0.4ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
3657
+ ActiveRecord::InternalMetadata Update (0.6ms) UPDATE "ar_internal_metadata" SET "value" = 'test', "updated_at" = '2025-03-10 12:16:50.663347' WHERE "ar_internal_metadata"."key" = 'environment' /*application='Dummy'*/
3658
+ ActiveRecord::InternalMetadata Load (0.4ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'schema_sha1' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
3659
+ ActiveRecord::InternalMetadata Create (0.6ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ('schema_sha1', '95103a11899edf9b45c45c69eaab3f63eff05b93', '2025-03-10 12:16:50.668096', '2025-03-10 12:16:50.668100') RETURNING "key" /*application='Dummy'*/
3660
+ ActiveRecord::SchemaMigration Load (4.8ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3661
+ ActiveRecord::InternalMetadata Load (8.1ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
3662
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3663
+ ActiveRecord::InternalMetadata Load (0.1ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
3664
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3665
+ ActiveRecord::InternalMetadata Load (0.1ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
3666
+ SQL (0.1ms) SET search_path TO public /*application='Dummy'*/
3667
+  (177.8ms) DROP DATABASE IF EXISTS "snf_test" /*application='Dummy'*/
3668
+  (201.9ms) CREATE DATABASE "snf_test" ENCODING = 'unicode' /*application='Dummy'*/
3669
+ SQL (22.1ms) CREATE EXTENSION IF NOT EXISTS "plpgsql" SCHEMA pg_catalog /*application='Dummy'*/
3670
+  (0.4ms) DROP TABLE IF EXISTS "active_storage_attachments" CASCADE /*application='Dummy'*/
3671
+  (7.8ms) CREATE TABLE "active_storage_attachments" ("id" bigserial primary key, "name" character varying NOT NULL, "record_type" character varying NOT NULL, "record_id" bigint NOT NULL, "blob_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3672
+  (1.4ms) CREATE INDEX "index_active_storage_attachments_on_blob_id" ON "active_storage_attachments" ("blob_id") /*application='Dummy'*/
3673
+  (1.1ms) CREATE UNIQUE INDEX "index_active_storage_attachments_uniqueness" ON "active_storage_attachments" ("record_type", "record_id", "name", "blob_id") /*application='Dummy'*/
3674
+  (0.2ms) DROP TABLE IF EXISTS "active_storage_blobs" CASCADE /*application='Dummy'*/
3675
+  (2.8ms) CREATE TABLE "active_storage_blobs" ("id" bigserial primary key, "key" character varying NOT NULL, "filename" character varying NOT NULL, "content_type" character varying, "metadata" text, "service_name" character varying NOT NULL, "byte_size" bigint NOT NULL, "checksum" character varying, "created_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3676
+  (1.1ms) CREATE UNIQUE INDEX "index_active_storage_blobs_on_key" ON "active_storage_blobs" ("key") /*application='Dummy'*/
3677
+  (0.2ms) DROP TABLE IF EXISTS "active_storage_variant_records" CASCADE /*application='Dummy'*/
3678
+  (2.0ms) CREATE TABLE "active_storage_variant_records" ("id" bigserial primary key, "blob_id" bigint NOT NULL, "variation_digest" character varying NOT NULL) /*application='Dummy'*/
3679
+  (1.6ms) CREATE UNIQUE INDEX "index_active_storage_variant_records_uniqueness" ON "active_storage_variant_records" ("blob_id", "variation_digest") /*application='Dummy'*/
3680
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_addresses" CASCADE /*application='Dummy'*/
3681
+  (2.4ms) CREATE TABLE "snf_core_addresses" ("id" bigserial primary key, "address_type" character varying NOT NULL, "city" character varying NOT NULL, "sub_city" character varying NOT NULL, "woreda" character varying, "latitude" decimal NOT NULL, "longitude" decimal NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3682
+  (0.6ms) DROP TABLE IF EXISTS "snf_core_business_documents" CASCADE /*application='Dummy'*/
3683
+  (1.8ms) CREATE TABLE "snf_core_business_documents" ("id" bigserial primary key, "business_id" bigint NOT NULL, "document_type" integer NOT NULL, "verified_at" timestamp(6), "verified_by_id" bigint, "uploaded_at" timestamp(6), "is_verified" boolean DEFAULT FALSE NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3684
+  (1.6ms) CREATE INDEX "index_snf_core_business_documents_on_business_id" ON "snf_core_business_documents" ("business_id") /*application='Dummy'*/
3685
+  (0.9ms) CREATE INDEX "index_snf_core_business_documents_on_verified_by_id" ON "snf_core_business_documents" ("verified_by_id") /*application='Dummy'*/
3686
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_businesses" CASCADE /*application='Dummy'*/
3687
+  (5.0ms) CREATE TABLE "snf_core_businesses" ("id" bigserial primary key, "user_id" bigint NOT NULL, "business_name" character varying NOT NULL, "tin_number" character varying NOT NULL, "business_type" integer NOT NULL, "verified_at" timestamp(6), "verification_status" integer DEFAULT 0 NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3688
+  (1.6ms) CREATE INDEX "index_snf_core_businesses_on_user_id" ON "snf_core_businesses" ("user_id") /*application='Dummy'*/
3689
+  (0.3ms) DROP TABLE IF EXISTS "snf_core_categories" CASCADE /*application='Dummy'*/
3690
+  (3.0ms) CREATE TABLE "snf_core_categories" ("id" bigserial primary key, "name" character varying NOT NULL, "description" character varying, "parent_id" bigint, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3691
+  (1.2ms) CREATE INDEX "index_snf_core_categories_on_parent_id" ON "snf_core_categories" ("parent_id") /*application='Dummy'*/
3692
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_customer_groups" CASCADE /*application='Dummy'*/
3693
+  (2.8ms) CREATE TABLE "snf_core_customer_groups" ("id" bigserial primary key, "discount_code" character varying, "expire_date" timestamp(6), "is_used" boolean, "group_id" bigint NOT NULL, "customer_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3694
+  (1.4ms) CREATE INDEX "index_snf_core_customer_groups_on_customer_id" ON "snf_core_customer_groups" ("customer_id") /*application='Dummy'*/
3695
+  (0.9ms) CREATE INDEX "index_snf_core_customer_groups_on_group_id" ON "snf_core_customer_groups" ("group_id") /*application='Dummy'*/
3696
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_delivery_orders" CASCADE /*application='Dummy'*/
3697
+  (3.1ms) CREATE TABLE "snf_core_delivery_orders" ("id" bigserial primary key, "order_id" bigint NOT NULL, "delivery_address" character varying NOT NULL, "contact_phone" character varying NOT NULL, "delivery_notes" text NOT NULL, "estimated_delivery_time" timestamp(6) NOT NULL, "actual_delivery_time" timestamp(6), "status" integer NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3698
+  (1.5ms) CREATE INDEX "index_snf_core_delivery_orders_on_order_id" ON "snf_core_delivery_orders" ("order_id") /*application='Dummy'*/
3699
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_groups" CASCADE /*application='Dummy'*/
3700
+  (3.1ms) CREATE TABLE "snf_core_groups" ("id" bigserial primary key, "name" character varying NOT NULL, "business_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3701
+  (1.1ms) CREATE INDEX "index_snf_core_groups_on_business_id" ON "snf_core_groups" ("business_id") /*application='Dummy'*/
3702
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_order_items" CASCADE /*application='Dummy'*/
3703
+  (2.8ms) CREATE TABLE "snf_core_order_items" ("id" bigserial primary key, "order_id" bigint NOT NULL, "store_inventory_id" bigint NOT NULL, "quantity" integer NOT NULL, "unit_price" decimal NOT NULL, "subtotal" decimal NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3704
+  (1.2ms) CREATE INDEX "index_snf_core_order_items_on_order_id" ON "snf_core_order_items" ("order_id") /*application='Dummy'*/
3705
+  (0.8ms) CREATE INDEX "index_snf_core_order_items_on_store_inventory_id" ON "snf_core_order_items" ("store_inventory_id") /*application='Dummy'*/
3706
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_orders" CASCADE /*application='Dummy'*/
3707
+  (4.2ms) CREATE TABLE "snf_core_orders" ("id" bigserial primary key, "user_id" bigint NOT NULL, "store_id" bigint NOT NULL, "status" integer DEFAULT 1 NOT NULL, "total_amount" decimal DEFAULT 0.0 NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3708
+  (1.3ms) CREATE INDEX "index_snf_core_orders_on_store_id" ON "snf_core_orders" ("store_id") /*application='Dummy'*/
3709
+  (1.0ms) CREATE INDEX "index_snf_core_orders_on_user_id" ON "snf_core_orders" ("user_id") /*application='Dummy'*/
3710
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_products" CASCADE /*application='Dummy'*/
3711
+  (3.6ms) CREATE TABLE "snf_core_products" ("id" bigserial primary key, "sku" character varying NOT NULL, "name" character varying NOT NULL, "description" character varying, "category_id" bigint NOT NULL, "base_price" float, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3712
+  (1.4ms) CREATE INDEX "index_snf_core_products_on_category_id" ON "snf_core_products" ("category_id") /*application='Dummy'*/
3713
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_roles" CASCADE /*application='Dummy'*/
3714
+  (3.6ms) CREATE TABLE "snf_core_roles" ("id" bigserial primary key, "name" character varying NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3715
+  (0.7ms) DROP TABLE IF EXISTS "snf_core_store_inventories" CASCADE /*application='Dummy'*/
3716
+  (2.8ms) CREATE TABLE "snf_core_store_inventories" ("id" bigserial primary key, "store_id" bigint NOT NULL, "product_id" bigint NOT NULL, "base_price" decimal(10,2) NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, "status" integer DEFAULT 0 NOT NULL) /*application='Dummy'*/
3717
+  (1.4ms) CREATE INDEX "index_snf_core_store_inventories_on_product_id" ON "snf_core_store_inventories" ("product_id") /*application='Dummy'*/
3718
+  (1.4ms) CREATE UNIQUE INDEX "index_snf_core_store_inventories_on_store_id_and_product_id" ON "snf_core_store_inventories" ("store_id", "product_id") /*application='Dummy'*/
3719
+  (1.4ms) CREATE INDEX "index_snf_core_store_inventories_on_store_id" ON "snf_core_store_inventories" ("store_id") /*application='Dummy'*/
3720
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_stores" CASCADE /*application='Dummy'*/
3721
+  (4.1ms) CREATE TABLE "snf_core_stores" ("id" bigserial primary key, "name" character varying NOT NULL, "email" character varying, "operational_status" integer DEFAULT 1 NOT NULL, "business_id" bigint NOT NULL, "address_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3722
+  (1.6ms) CREATE INDEX "index_snf_core_stores_on_address_id" ON "snf_core_stores" ("address_id") /*application='Dummy'*/
3723
+  (1.3ms) CREATE INDEX "index_snf_core_stores_on_business_id" ON "snf_core_stores" ("business_id") /*application='Dummy'*/
3724
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_user_roles" CASCADE /*application='Dummy'*/
3725
+  (2.3ms) CREATE TABLE "snf_core_user_roles" ("id" bigserial primary key, "user_id" bigint NOT NULL, "role_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3726
+  (1.5ms) CREATE INDEX "index_snf_core_user_roles_on_role_id" ON "snf_core_user_roles" ("role_id") /*application='Dummy'*/
3727
+  (1.3ms) CREATE INDEX "index_snf_core_user_roles_on_user_id" ON "snf_core_user_roles" ("user_id") /*application='Dummy'*/
3728
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_users" CASCADE /*application='Dummy'*/
3729
+  (4.4ms) CREATE TABLE "snf_core_users" ("id" bigserial primary key, "first_name" character varying NOT NULL, "middle_name" character varying NOT NULL, "last_name" character varying NOT NULL, "email" character varying, "phone_number" character varying NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, "password_digest" character varying NOT NULL, "password_changed" boolean DEFAULT FALSE, "reset_password_token" character varying) /*application='Dummy'*/
3730
+  (0.4ms) DROP TABLE IF EXISTS "snf_core_wallets" CASCADE /*application='Dummy'*/
3731
+  (3.8ms) CREATE TABLE "snf_core_wallets" ("id" bigserial primary key, "user_id" bigint NOT NULL, "wallet_number" character varying NOT NULL, "balance" decimal NOT NULL, "is_active" boolean DEFAULT TRUE NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3732
+  (2.2ms) CREATE INDEX "index_snf_core_wallets_on_user_id" ON "snf_core_wallets" ("user_id") /*application='Dummy'*/
3733
+  (1.8ms) CREATE UNIQUE INDEX "index_snf_core_wallets_on_wallet_number" ON "snf_core_wallets" ("wallet_number") /*application='Dummy'*/
3734
+  (4.7ms) ALTER TABLE "active_storage_attachments" ADD CONSTRAINT "fk_rails_c3b3935057"
3735
+ FOREIGN KEY ("blob_id")
3736
+ REFERENCES "active_storage_blobs" ("id")
3737
+ /*application='Dummy'*/
3738
+  (1.5ms) ALTER TABLE "active_storage_variant_records" ADD CONSTRAINT "fk_rails_993965df05"
3739
+ FOREIGN KEY ("blob_id")
3740
+ REFERENCES "active_storage_blobs" ("id")
3741
+ /*application='Dummy'*/
3742
+  (1.9ms) ALTER TABLE "snf_core_business_documents" ADD CONSTRAINT "fk_rails_1efd7338ed"
3743
+ FOREIGN KEY ("business_id")
3744
+ REFERENCES "snf_core_businesses" ("id")
3745
+ /*application='Dummy'*/
3746
+  (1.3ms) ALTER TABLE "snf_core_business_documents" ADD CONSTRAINT "fk_rails_a6157021cc"
3747
+ FOREIGN KEY ("verified_by_id")
3748
+ REFERENCES "snf_core_users" ("id")
3749
+ /*application='Dummy'*/
3750
+  (1.2ms) ALTER TABLE "snf_core_businesses" ADD CONSTRAINT "fk_rails_a61edcbd4b"
3751
+ FOREIGN KEY ("user_id")
3752
+ REFERENCES "snf_core_users" ("id")
3753
+ /*application='Dummy'*/
3754
+  (1.4ms) ALTER TABLE "snf_core_categories" ADD CONSTRAINT "fk_rails_26a925b05d"
3755
+ FOREIGN KEY ("parent_id")
3756
+ REFERENCES "snf_core_categories" ("id")
3757
+ /*application='Dummy'*/
3758
+  (2.0ms) ALTER TABLE "snf_core_customer_groups" ADD CONSTRAINT "fk_rails_9c45f4015a"
3759
+ FOREIGN KEY ("group_id")
3760
+ REFERENCES "snf_core_groups" ("id")
3761
+ /*application='Dummy'*/
3762
+  (1.4ms) ALTER TABLE "snf_core_customer_groups" ADD CONSTRAINT "fk_rails_792eb3404d"
3763
+ FOREIGN KEY ("customer_id")
3764
+ REFERENCES "snf_core_users" ("id")
3765
+ /*application='Dummy'*/
3766
+  (1.9ms) ALTER TABLE "snf_core_delivery_orders" ADD CONSTRAINT "fk_rails_450d17b1b2"
3767
+ FOREIGN KEY ("order_id")
3768
+ REFERENCES "snf_core_orders" ("id")
3769
+ /*application='Dummy'*/
3770
+  (1.2ms) ALTER TABLE "snf_core_groups" ADD CONSTRAINT "fk_rails_c52b27ad67"
3771
+ FOREIGN KEY ("business_id")
3772
+ REFERENCES "snf_core_businesses" ("id")
3773
+ /*application='Dummy'*/
3774
+  (1.7ms) ALTER TABLE "snf_core_order_items" ADD CONSTRAINT "fk_rails_1f4046ba92"
3775
+ FOREIGN KEY ("order_id")
3776
+ REFERENCES "snf_core_orders" ("id")
3777
+ /*application='Dummy'*/
3778
+  (1.5ms) ALTER TABLE "snf_core_order_items" ADD CONSTRAINT "fk_rails_50419437e9"
3779
+ FOREIGN KEY ("store_inventory_id")
3780
+ REFERENCES "snf_core_store_inventories" ("id")
3781
+ /*application='Dummy'*/
3782
+  (2.4ms) ALTER TABLE "snf_core_orders" ADD CONSTRAINT "fk_rails_400cf2029c"
3783
+ FOREIGN KEY ("store_id")
3784
+ REFERENCES "snf_core_stores" ("id")
3785
+ /*application='Dummy'*/
3786
+  (1.2ms) ALTER TABLE "snf_core_orders" ADD CONSTRAINT "fk_rails_45b78fb6f9"
3787
+ FOREIGN KEY ("user_id")
3788
+ REFERENCES "snf_core_users" ("id")
3789
+ /*application='Dummy'*/
3790
+  (1.6ms) ALTER TABLE "snf_core_products" ADD CONSTRAINT "fk_rails_a0ba3fa883"
3791
+ FOREIGN KEY ("category_id")
3792
+ REFERENCES "snf_core_categories" ("id")
3793
+ /*application='Dummy'*/
3794
+  (1.1ms) ALTER TABLE "snf_core_store_inventories" ADD CONSTRAINT "fk_rails_15fb263e75"
3795
+ FOREIGN KEY ("product_id")
3796
+ REFERENCES "snf_core_products" ("id")
3797
+ /*application='Dummy'*/
3798
+  (1.1ms) ALTER TABLE "snf_core_store_inventories" ADD CONSTRAINT "fk_rails_2ca88d30e2"
3799
+ FOREIGN KEY ("store_id")
3800
+ REFERENCES "snf_core_stores" ("id")
3801
+ /*application='Dummy'*/
3802
+  (1.2ms) ALTER TABLE "snf_core_stores" ADD CONSTRAINT "fk_rails_421441da8e"
3803
+ FOREIGN KEY ("address_id")
3804
+ REFERENCES "snf_core_addresses" ("id")
3805
+ /*application='Dummy'*/
3806
+  (2.1ms) ALTER TABLE "snf_core_stores" ADD CONSTRAINT "fk_rails_e100fc7454"
3807
+ FOREIGN KEY ("business_id")
3808
+ REFERENCES "snf_core_businesses" ("id")
3809
+ /*application='Dummy'*/
3810
+  (2.5ms) ALTER TABLE "snf_core_user_roles" ADD CONSTRAINT "fk_rails_0e70d7ce00"
3811
+ FOREIGN KEY ("role_id")
3812
+ REFERENCES "snf_core_roles" ("id")
3813
+ /*application='Dummy'*/
3814
+  (1.9ms) ALTER TABLE "snf_core_user_roles" ADD CONSTRAINT "fk_rails_9ad2e78133"
3815
+ FOREIGN KEY ("user_id")
3816
+ REFERENCES "snf_core_users" ("id")
3817
+ /*application='Dummy'*/
3818
+  (2.7ms) ALTER TABLE "snf_core_wallets" ADD CONSTRAINT "fk_rails_77c94979ce"
3819
+ FOREIGN KEY ("user_id")
3820
+ REFERENCES "snf_core_users" ("id")
3821
+ /*application='Dummy'*/
3822
+  (5.2ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL PRIMARY KEY) /*application='Dummy'*/
3823
+ ActiveRecord::SchemaMigration Load (0.9ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3824
+  (0.9ms) INSERT INTO "schema_migrations" (version) VALUES (20250306074713) /*application='Dummy'*/
3825
+  (0.9ms) INSERT INTO "schema_migrations" (version) VALUES
3826
+ (20250305232530),
3827
+ (20250305232529),
3828
+ (20250305201008),
3829
+ (20250305170248),
3830
+ (20250305165926),
3831
+ (20250227102833),
3832
+ (20250227075048),
3833
+ (20250226193938),
3834
+ (20250226192104),
3835
+ (20250226190000),
3836
+ (20250226181007),
3837
+ (20250226123213),
3838
+ (20250226115215),
3839
+ (20250226110217),
3840
+ (20250226102931),
3841
+ (20250226080323),
3842
+ (20250226064444),
3843
+ (20250226042622); /*application='Dummy'*/
3844
+  (4.7ms) CREATE TABLE "ar_internal_metadata" ("key" character varying NOT NULL PRIMARY KEY, "value" character varying, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
3845
+ ActiveRecord::InternalMetadata Load (1.1ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
3846
+ ActiveRecord::InternalMetadata Create (0.8ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ('environment', 'development', '2025-03-10 12:38:07.258496', '2025-03-10 12:38:07.258503') RETURNING "key" /*application='Dummy'*/
3847
+ ActiveRecord::InternalMetadata Load (0.4ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
3848
+ ActiveRecord::InternalMetadata Update (0.6ms) UPDATE "ar_internal_metadata" SET "value" = 'test', "updated_at" = '2025-03-10 12:38:07.264258' WHERE "ar_internal_metadata"."key" = 'environment' /*application='Dummy'*/
3849
+ ActiveRecord::InternalMetadata Load (0.3ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'schema_sha1' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
3850
+ ActiveRecord::InternalMetadata Create (0.4ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ('schema_sha1', '95103a11899edf9b45c45c69eaab3f63eff05b93', '2025-03-10 12:38:07.268635', '2025-03-10 12:38:07.268639') RETURNING "key" /*application='Dummy'*/
3851
+  (0.7ms) SELECT pg_try_advisory_lock(869468062957908540) /*application='Dummy'*/
3852
+ ActiveRecord::SchemaMigration Load (1.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3853
+ ActiveRecord::InternalMetadata Load (1.1ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
3854
+ Migrating to AddKycAttributesToUser (20250310123127)
3855
+ TRANSACTION (0.1ms) BEGIN /*application='Dummy'*/
3856
+  (11.6ms) ALTER TABLE "snf_core_users" ADD "date_of_birth" date /*application='Dummy'*/
3857
+  (0.8ms) ALTER TABLE "snf_core_users" ADD "nationality" character varying /*application='Dummy'*/
3858
+  (0.1ms) ALTER TABLE "snf_core_users" ADD "occupation" character varying /*application='Dummy'*/
3859
+  (0.9ms) ALTER TABLE "snf_core_users" ADD "source_of_funds" character varying /*application='Dummy'*/
3860
+  (0.3ms) ALTER TABLE "snf_core_users" ADD "kyc_status" character varying /*application='Dummy'*/
3861
+  (0.1ms) ALTER TABLE "snf_core_users" ADD "verified_at" timestamp(6) /*application='Dummy'*/
3862
+  (0.4ms) ALTER TABLE "snf_core_addresses" ADD "house_number" character varying /*application='Dummy'*/
3863
+  (0.8ms) ALTER TABLE "snf_core_users" ADD CONSTRAINT "fk_rails_e672dea3f8"
3864
+ FOREIGN KEY ("verified_by_id")
3865
+ REFERENCES "snf_core_users" ("id")
3866
+ /*application='Dummy'*/
3867
+ TRANSACTION (0.1ms) ROLLBACK /*application='Dummy'*/
3868
+  (0.5ms) SELECT pg_advisory_unlock(869468062957908540) /*application='Dummy'*/
3869
+  (0.3ms) SELECT pg_try_advisory_lock(869468062957908540) /*application='Dummy'*/
3870
+ ActiveRecord::SchemaMigration Load (1.5ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3871
+ ActiveRecord::InternalMetadata Load (1.2ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
3872
+ Migrating to AddKycAttributesToUser (20250310123127)
3873
+ TRANSACTION (0.1ms) BEGIN /*application='Dummy'*/
3874
+  (1.4ms) ALTER TABLE "snf_core_users" ADD "date_of_birth" date /*application='Dummy'*/
3875
+  (0.3ms) ALTER TABLE "snf_core_users" ADD "nationality" character varying /*application='Dummy'*/
3876
+  (0.1ms) ALTER TABLE "snf_core_users" ADD "occupation" character varying /*application='Dummy'*/
3877
+  (0.2ms) ALTER TABLE "snf_core_users" ADD "source_of_funds" character varying /*application='Dummy'*/
3878
+  (0.1ms) ALTER TABLE "snf_core_users" ADD "kyc_status" character varying /*application='Dummy'*/
3879
+  (0.1ms) ALTER TABLE "snf_core_users" ADD "verified_at" timestamp(6) /*application='Dummy'*/
3880
+  (0.4ms) ALTER TABLE "snf_core_users" ADD "verified_by_id" bigint /*application='Dummy'*/
3881
+  (0.1ms) ALTER TABLE "snf_core_addresses" ADD "house_number" character varying /*application='Dummy'*/
3882
+  (0.1ms) ALTER TABLE "snf_core_users" ADD "address_id" bigint /*application='Dummy'*/
3883
+  (10.3ms) ALTER TABLE "snf_core_users" ADD CONSTRAINT "fk_rails_e672dea3f8"
3884
+ FOREIGN KEY ("verified_by_id")
3885
+ REFERENCES "snf_core_users" ("id")
3886
+ ON DELETE SET NULL /*application='Dummy'*/
3887
+  (1.3ms) ALTER TABLE "snf_core_users" ADD CONSTRAINT "fk_rails_aaf9dcb5a5"
3888
+ FOREIGN KEY ("address_id")
3889
+ REFERENCES "snf_core_addresses" ("id")
3890
+ /*application='Dummy'*/
3891
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250310123127') RETURNING "version" /*application='Dummy'*/
3892
+ TRANSACTION (0.3ms) COMMIT /*application='Dummy'*/
3893
+  (0.1ms) SELECT pg_advisory_unlock(869468062957908540) /*application='Dummy'*/
3894
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3895
+ ActiveRecord::SchemaMigration Load (1.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3896
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3897
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3898
+  (0.2ms) SELECT pg_try_advisory_lock(869468062957908540) /*application='Dummy'*/
3899
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3900
+ Migrating to AddKycAttributesToUser (20250310123127)
3901
+ TRANSACTION (0.1ms) BEGIN /*application='Dummy'*/
3902
+  (6.4ms) ALTER TABLE "snf_core_users" DROP CONSTRAINT "fk_rails_aaf9dcb5a5" /*application='Dummy'*/
3903
+  (0.9ms) ALTER TABLE "snf_core_users" DROP CONSTRAINT "fk_rails_e672dea3f8" /*application='Dummy'*/
3904
+  (0.6ms) ALTER TABLE "snf_core_users" DROP COLUMN "address_id" /*application='Dummy'*/
3905
+  (0.1ms) ALTER TABLE "snf_core_addresses" DROP COLUMN "house_number" /*application='Dummy'*/
3906
+  (0.1ms) ALTER TABLE "snf_core_users" DROP COLUMN "verified_by_id" /*application='Dummy'*/
3907
+  (0.1ms) ALTER TABLE "snf_core_users" DROP COLUMN "verified_at" /*application='Dummy'*/
3908
+  (0.1ms) ALTER TABLE "snf_core_users" DROP COLUMN "kyc_status" /*application='Dummy'*/
3909
+  (0.1ms) ALTER TABLE "snf_core_users" DROP COLUMN "source_of_funds" /*application='Dummy'*/
3910
+  (0.1ms) ALTER TABLE "snf_core_users" DROP COLUMN "occupation" /*application='Dummy'*/
3911
+  (0.1ms) ALTER TABLE "snf_core_users" DROP COLUMN "nationality" /*application='Dummy'*/
3912
+  (0.1ms) ALTER TABLE "snf_core_users" DROP COLUMN "date_of_birth" /*application='Dummy'*/
3913
+ ActiveRecord::SchemaMigration Destroy (0.4ms) DELETE FROM "schema_migrations" WHERE "schema_migrations"."version" = '20250310123127' /*application='Dummy'*/
3914
+ TRANSACTION (0.8ms) COMMIT /*application='Dummy'*/
3915
+  (0.3ms) SELECT pg_advisory_unlock(869468062957908540) /*application='Dummy'*/
3916
+ ActiveRecord::SchemaMigration Load (0.3ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3917
+  (0.2ms) SELECT pg_try_advisory_lock(869468062957908540) /*application='Dummy'*/
3918
+ ActiveRecord::SchemaMigration Load (2.6ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3919
+ ActiveRecord::InternalMetadata Load (1.1ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
3920
+ Migrating to AddKycAttributesToUser (20250310123127)
3921
+ TRANSACTION (0.1ms) BEGIN /*application='Dummy'*/
3922
+  (1.6ms) ALTER TABLE "snf_core_users" ADD "date_of_birth" date NOT NULL /*application='Dummy'*/
3923
+  (0.4ms) ALTER TABLE "snf_core_users" ADD "nationality" character varying NOT NULL /*application='Dummy'*/
3924
+  (0.1ms) ALTER TABLE "snf_core_users" ADD "occupation" character varying /*application='Dummy'*/
3925
+  (0.1ms) ALTER TABLE "snf_core_users" ADD "source_of_funds" character varying /*application='Dummy'*/
3926
+  (0.1ms) ALTER TABLE "snf_core_users" ADD "kyc_status" integer /*application='Dummy'*/
3927
+  (0.1ms) ALTER TABLE "snf_core_users" ADD "verified_at" timestamp(6) /*application='Dummy'*/
3928
+  (0.1ms) ALTER TABLE "snf_core_users" ADD "verified_by_id" bigint /*application='Dummy'*/
3929
+  (0.2ms) ALTER TABLE "snf_core_addresses" ADD "house_number" character varying /*application='Dummy'*/
3930
+  (0.1ms) ALTER TABLE "snf_core_users" ADD "address_id" bigint /*application='Dummy'*/
3931
+  (2.2ms) ALTER TABLE "snf_core_users" ADD CONSTRAINT "fk_rails_e672dea3f8"
3932
+ FOREIGN KEY ("verified_by_id")
3933
+ REFERENCES "snf_core_users" ("id")
3934
+ ON DELETE SET NULL /*application='Dummy'*/
3935
+  (2.9ms) ALTER TABLE "snf_core_users" ADD CONSTRAINT "fk_rails_aaf9dcb5a5"
3936
+ FOREIGN KEY ("address_id")
3937
+ REFERENCES "snf_core_addresses" ("id")
3938
+ /*application='Dummy'*/
3939
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250310123127') RETURNING "version" /*application='Dummy'*/
3940
+ TRANSACTION (0.2ms) COMMIT /*application='Dummy'*/
3941
+  (0.1ms) SELECT pg_advisory_unlock(869468062957908540) /*application='Dummy'*/
3942
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3943
+ ActiveRecord::SchemaMigration Load (6.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3944
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3945
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3946
+  (0.2ms) SELECT pg_try_advisory_lock(869468062957908540) /*application='Dummy'*/
3947
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3948
+ Migrating to AddKycAttributesToUser (20250310123127)
3949
+ TRANSACTION (0.1ms) BEGIN /*application='Dummy'*/
3950
+  (21.4ms) ALTER TABLE "snf_core_users" DROP CONSTRAINT "fk_rails_aaf9dcb5a5" /*application='Dummy'*/
3951
+  (0.4ms) ALTER TABLE "snf_core_users" DROP CONSTRAINT "fk_rails_e672dea3f8" /*application='Dummy'*/
3952
+  (0.5ms) ALTER TABLE "snf_core_users" DROP COLUMN "address_id" /*application='Dummy'*/
3953
+  (0.2ms) ALTER TABLE "snf_core_addresses" DROP COLUMN "house_number" /*application='Dummy'*/
3954
+  (1.6ms) ALTER TABLE "snf_core_users" DROP COLUMN "verified_by_id" /*application='Dummy'*/
3955
+  (0.2ms) ALTER TABLE "snf_core_users" DROP COLUMN "verified_at" /*application='Dummy'*/
3956
+  (6.7ms) ALTER TABLE "snf_core_users" DROP COLUMN "gender" /*application='Dummy'*/
3957
+ TRANSACTION (0.2ms) ROLLBACK /*application='Dummy'*/
3958
+  (0.2ms) SELECT pg_advisory_unlock(869468062957908540) /*application='Dummy'*/
3959
+ ActiveRecord::SchemaMigration Load (1.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3960
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3961
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3962
+  (0.2ms) SELECT pg_try_advisory_lock(869468062957908540) /*application='Dummy'*/
3963
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3964
+ Migrating to AddKycAttributesToUser (20250310123127)
3965
+ TRANSACTION (0.1ms) BEGIN /*application='Dummy'*/
3966
+  (2.0ms) ALTER TABLE "snf_core_users" DROP CONSTRAINT "fk_rails_aaf9dcb5a5" /*application='Dummy'*/
3967
+  (0.8ms) ALTER TABLE "snf_core_users" DROP CONSTRAINT "fk_rails_e672dea3f8" /*application='Dummy'*/
3968
+  (0.4ms) ALTER TABLE "snf_core_users" DROP COLUMN "address_id" /*application='Dummy'*/
3969
+  (0.1ms) ALTER TABLE "snf_core_addresses" DROP COLUMN "house_number" /*application='Dummy'*/
3970
+  (0.1ms) ALTER TABLE "snf_core_users" DROP COLUMN "verified_by_id" /*application='Dummy'*/
3971
+  (0.2ms) ALTER TABLE "snf_core_users" DROP COLUMN "verified_at" /*application='Dummy'*/
3972
+  (0.2ms) ALTER TABLE "snf_core_users" DROP COLUMN "kyc_status" /*application='Dummy'*/
3973
+  (0.2ms) ALTER TABLE "snf_core_users" DROP COLUMN "source_of_funds" /*application='Dummy'*/
3974
+  (0.1ms) ALTER TABLE "snf_core_users" DROP COLUMN "occupation" /*application='Dummy'*/
3975
+  (0.1ms) ALTER TABLE "snf_core_users" DROP COLUMN "nationality" /*application='Dummy'*/
3976
+  (0.1ms) ALTER TABLE "snf_core_users" DROP COLUMN "date_of_birth" /*application='Dummy'*/
3977
+ ActiveRecord::SchemaMigration Destroy (0.6ms) DELETE FROM "schema_migrations" WHERE "schema_migrations"."version" = '20250310123127' /*application='Dummy'*/
3978
+ TRANSACTION (1.2ms) COMMIT /*application='Dummy'*/
3979
+  (0.3ms) SELECT pg_advisory_unlock(869468062957908540) /*application='Dummy'*/
3980
+ ActiveRecord::SchemaMigration Load (0.3ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3981
+ ActiveRecord::SchemaMigration Load (1.3ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3982
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3983
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3984
+  (0.3ms) SELECT pg_try_advisory_lock(869468062957908540) /*application='Dummy'*/
3985
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3986
+ Migrating to AddPasswordFieldsToSnfCoreUsers (20250306074713)
3987
+ TRANSACTION (0.1ms) BEGIN /*application='Dummy'*/
3988
+  (1.3ms) ALTER TABLE "snf_core_users" DROP COLUMN "reset_password_token" /*application='Dummy'*/
3989
+  (1.2ms) ALTER TABLE "snf_core_users" DROP COLUMN "password_changed" /*application='Dummy'*/
3990
+  (0.3ms) ALTER TABLE "snf_core_users" DROP COLUMN "password_digest" /*application='Dummy'*/
3991
+ ActiveRecord::SchemaMigration Destroy (0.3ms) DELETE FROM "schema_migrations" WHERE "schema_migrations"."version" = '20250306074713' /*application='Dummy'*/
3992
+ TRANSACTION (0.2ms) COMMIT /*application='Dummy'*/
3993
+  (0.1ms) SELECT pg_advisory_unlock(869468062957908540) /*application='Dummy'*/
3994
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3995
+  (0.3ms) SELECT pg_try_advisory_lock(869468062957908540) /*application='Dummy'*/
3996
+ ActiveRecord::SchemaMigration Load (1.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
3997
+ ActiveRecord::InternalMetadata Load (1.4ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
3998
+ Migrating to AddPasswordFieldsToSnfCoreUsers (20250306074713)
3999
+ TRANSACTION (0.1ms) BEGIN /*application='Dummy'*/
4000
+  (2.3ms) ALTER TABLE "snf_core_users" ADD "password_digest" character varying NOT NULL /*application='Dummy'*/
4001
+  (1.4ms) ALTER TABLE "snf_core_users" ADD "password_changed" boolean DEFAULT FALSE /*application='Dummy'*/
4002
+  (0.3ms) ALTER TABLE "snf_core_users" ADD "reset_password_token" character varying /*application='Dummy'*/
4003
+ ActiveRecord::SchemaMigration Create (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250306074713') RETURNING "version" /*application='Dummy'*/
4004
+ TRANSACTION (0.4ms) COMMIT /*application='Dummy'*/
4005
+ Migrating to AddKycAttributesToUser (20250310123127)
4006
+ TRANSACTION (0.1ms) BEGIN /*application='Dummy'*/
4007
+  (0.7ms) ALTER TABLE "snf_core_users" ADD "date_of_birth" date NOT NULL /*application='Dummy'*/
4008
+  (0.3ms) ALTER TABLE "snf_core_users" ADD "nationality" character varying NOT NULL /*application='Dummy'*/
4009
+  (0.1ms) ALTER TABLE "snf_core_users" ADD "occupation" character varying /*application='Dummy'*/
4010
+  (0.1ms) ALTER TABLE "snf_core_users" ADD "source_of_funds" character varying /*application='Dummy'*/
4011
+  (0.1ms) ALTER TABLE "snf_core_users" ADD "kyc_status" integer /*application='Dummy'*/
4012
+  (0.1ms) ALTER TABLE "snf_core_users" ADD "gender" integer /*application='Dummy'*/
4013
+  (0.1ms) ALTER TABLE "snf_core_users" ADD "verified_at" timestamp(6) /*application='Dummy'*/
4014
+  (0.1ms) ALTER TABLE "snf_core_users" ADD "verified_by_id" bigint /*application='Dummy'*/
4015
+  (0.2ms) ALTER TABLE "snf_core_addresses" ADD "house_number" character varying /*application='Dummy'*/
4016
+  (0.1ms) ALTER TABLE "snf_core_users" ADD "address_id" bigint /*application='Dummy'*/
4017
+  (4.0ms) ALTER TABLE "snf_core_users" ADD CONSTRAINT "fk_rails_e672dea3f8"
4018
+ FOREIGN KEY ("verified_by_id")
4019
+ REFERENCES "snf_core_users" ("id")
4020
+ ON DELETE SET NULL /*application='Dummy'*/
4021
+  (1.8ms) ALTER TABLE "snf_core_users" ADD CONSTRAINT "fk_rails_aaf9dcb5a5"
4022
+ FOREIGN KEY ("address_id")
4023
+ REFERENCES "snf_core_addresses" ("id")
4024
+ /*application='Dummy'*/
4025
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250310123127') RETURNING "version" /*application='Dummy'*/
4026
+ TRANSACTION (0.4ms) COMMIT /*application='Dummy'*/
4027
+  (0.2ms) SELECT pg_advisory_unlock(869468062957908540) /*application='Dummy'*/
4028
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
4029
+  (0.2ms) SELECT pg_try_advisory_lock(869468062957908540) /*application='Dummy'*/
4030
+ ActiveRecord::SchemaMigration Load (2.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
4031
+ ActiveRecord::InternalMetadata Load (1.2ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
4032
+  (0.2ms) SELECT pg_advisory_unlock(869468062957908540) /*application='Dummy'*/
4033
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
4034
+ ActiveRecord::SchemaMigration Load (1.3ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
4035
+ ActiveRecord::InternalMetadata Load (1.2ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
4036
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
4037
+ ActiveRecord::InternalMetadata Load (0.2ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
4038
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
4039
+ ActiveRecord::InternalMetadata Load (0.2ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
4040
+ SQL (0.2ms) SET search_path TO public /*application='Dummy'*/
4041
+  (111.4ms) DROP DATABASE IF EXISTS "snf_test" /*application='Dummy'*/
4042
+  (165.9ms) CREATE DATABASE "snf_test" ENCODING = 'unicode' /*application='Dummy'*/
4043
+ SQL (21.1ms) CREATE EXTENSION IF NOT EXISTS "plpgsql" SCHEMA pg_catalog /*application='Dummy'*/
4044
+  (0.2ms) DROP TABLE IF EXISTS "active_storage_attachments" CASCADE /*application='Dummy'*/
4045
+  (4.1ms) CREATE TABLE "active_storage_attachments" ("id" bigserial primary key, "name" character varying NOT NULL, "record_type" character varying NOT NULL, "record_id" bigint NOT NULL, "blob_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4046
+  (2.5ms) CREATE INDEX "index_active_storage_attachments_on_blob_id" ON "active_storage_attachments" ("blob_id") /*application='Dummy'*/
4047
+  (0.7ms) CREATE UNIQUE INDEX "index_active_storage_attachments_uniqueness" ON "active_storage_attachments" ("record_type", "record_id", "name", "blob_id") /*application='Dummy'*/
4048
+  (0.2ms) DROP TABLE IF EXISTS "active_storage_blobs" CASCADE /*application='Dummy'*/
4049
+  (2.1ms) CREATE TABLE "active_storage_blobs" ("id" bigserial primary key, "key" character varying NOT NULL, "filename" character varying NOT NULL, "content_type" character varying, "metadata" text, "service_name" character varying NOT NULL, "byte_size" bigint NOT NULL, "checksum" character varying, "created_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4050
+  (0.7ms) CREATE UNIQUE INDEX "index_active_storage_blobs_on_key" ON "active_storage_blobs" ("key") /*application='Dummy'*/
4051
+  (0.2ms) DROP TABLE IF EXISTS "active_storage_variant_records" CASCADE /*application='Dummy'*/
4052
+  (2.0ms) CREATE TABLE "active_storage_variant_records" ("id" bigserial primary key, "blob_id" bigint NOT NULL, "variation_digest" character varying NOT NULL) /*application='Dummy'*/
4053
+  (1.5ms) CREATE UNIQUE INDEX "index_active_storage_variant_records_uniqueness" ON "active_storage_variant_records" ("blob_id", "variation_digest") /*application='Dummy'*/
4054
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_addresses" CASCADE /*application='Dummy'*/
4055
+  (1.7ms) CREATE TABLE "snf_core_addresses" ("id" bigserial primary key, "address_type" character varying NOT NULL, "city" character varying NOT NULL, "sub_city" character varying NOT NULL, "woreda" character varying, "latitude" decimal NOT NULL, "longitude" decimal NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, "house_number" character varying) /*application='Dummy'*/
4056
+  (0.3ms) DROP TABLE IF EXISTS "snf_core_business_documents" CASCADE /*application='Dummy'*/
4057
+  (1.4ms) CREATE TABLE "snf_core_business_documents" ("id" bigserial primary key, "business_id" bigint NOT NULL, "document_type" integer NOT NULL, "verified_at" timestamp(6), "verified_by_id" bigint, "uploaded_at" timestamp(6), "is_verified" boolean DEFAULT FALSE NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4058
+  (1.0ms) CREATE INDEX "index_snf_core_business_documents_on_business_id" ON "snf_core_business_documents" ("business_id") /*application='Dummy'*/
4059
+  (1.0ms) CREATE INDEX "index_snf_core_business_documents_on_verified_by_id" ON "snf_core_business_documents" ("verified_by_id") /*application='Dummy'*/
4060
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_businesses" CASCADE /*application='Dummy'*/
4061
+  (2.4ms) CREATE TABLE "snf_core_businesses" ("id" bigserial primary key, "user_id" bigint NOT NULL, "business_name" character varying NOT NULL, "tin_number" character varying NOT NULL, "business_type" integer NOT NULL, "verified_at" timestamp(6), "verification_status" integer DEFAULT 0 NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4062
+  (1.0ms) CREATE INDEX "index_snf_core_businesses_on_user_id" ON "snf_core_businesses" ("user_id") /*application='Dummy'*/
4063
+  (0.1ms) DROP TABLE IF EXISTS "snf_core_categories" CASCADE /*application='Dummy'*/
4064
+  (2.2ms) CREATE TABLE "snf_core_categories" ("id" bigserial primary key, "name" character varying NOT NULL, "description" character varying, "parent_id" bigint, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4065
+  (3.0ms) CREATE INDEX "index_snf_core_categories_on_parent_id" ON "snf_core_categories" ("parent_id") /*application='Dummy'*/
4066
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_customer_groups" CASCADE /*application='Dummy'*/
4067
+  (2.7ms) CREATE TABLE "snf_core_customer_groups" ("id" bigserial primary key, "discount_code" character varying, "expire_date" timestamp(6), "is_used" boolean, "group_id" bigint NOT NULL, "customer_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4068
+  (1.3ms) CREATE INDEX "index_snf_core_customer_groups_on_customer_id" ON "snf_core_customer_groups" ("customer_id") /*application='Dummy'*/
4069
+  (1.3ms) CREATE INDEX "index_snf_core_customer_groups_on_group_id" ON "snf_core_customer_groups" ("group_id") /*application='Dummy'*/
4070
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_delivery_orders" CASCADE /*application='Dummy'*/
4071
+  (2.8ms) CREATE TABLE "snf_core_delivery_orders" ("id" bigserial primary key, "order_id" bigint NOT NULL, "delivery_address" character varying NOT NULL, "contact_phone" character varying NOT NULL, "delivery_notes" text NOT NULL, "estimated_delivery_time" timestamp(6) NOT NULL, "actual_delivery_time" timestamp(6), "status" integer NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4072
+  (1.6ms) CREATE INDEX "index_snf_core_delivery_orders_on_order_id" ON "snf_core_delivery_orders" ("order_id") /*application='Dummy'*/
4073
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_groups" CASCADE /*application='Dummy'*/
4074
+  (3.0ms) CREATE TABLE "snf_core_groups" ("id" bigserial primary key, "name" character varying NOT NULL, "business_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4075
+  (1.6ms) CREATE INDEX "index_snf_core_groups_on_business_id" ON "snf_core_groups" ("business_id") /*application='Dummy'*/
4076
+  (0.3ms) DROP TABLE IF EXISTS "snf_core_order_items" CASCADE /*application='Dummy'*/
4077
+  (3.1ms) CREATE TABLE "snf_core_order_items" ("id" bigserial primary key, "order_id" bigint NOT NULL, "store_inventory_id" bigint NOT NULL, "quantity" integer NOT NULL, "unit_price" decimal NOT NULL, "subtotal" decimal NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4078
+  (1.5ms) CREATE INDEX "index_snf_core_order_items_on_order_id" ON "snf_core_order_items" ("order_id") /*application='Dummy'*/
4079
+  (1.0ms) CREATE INDEX "index_snf_core_order_items_on_store_inventory_id" ON "snf_core_order_items" ("store_inventory_id") /*application='Dummy'*/
4080
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_orders" CASCADE /*application='Dummy'*/
4081
+  (3.2ms) CREATE TABLE "snf_core_orders" ("id" bigserial primary key, "user_id" bigint NOT NULL, "store_id" bigint NOT NULL, "status" integer DEFAULT 1 NOT NULL, "total_amount" decimal DEFAULT 0.0 NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4082
+  (1.3ms) CREATE INDEX "index_snf_core_orders_on_store_id" ON "snf_core_orders" ("store_id") /*application='Dummy'*/
4083
+  (1.2ms) CREATE INDEX "index_snf_core_orders_on_user_id" ON "snf_core_orders" ("user_id") /*application='Dummy'*/
4084
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_products" CASCADE /*application='Dummy'*/
4085
+  (3.1ms) CREATE TABLE "snf_core_products" ("id" bigserial primary key, "sku" character varying NOT NULL, "name" character varying NOT NULL, "description" character varying, "category_id" bigint NOT NULL, "base_price" float, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4086
+  (1.4ms) CREATE INDEX "index_snf_core_products_on_category_id" ON "snf_core_products" ("category_id") /*application='Dummy'*/
4087
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_roles" CASCADE /*application='Dummy'*/
4088
+  (2.6ms) CREATE TABLE "snf_core_roles" ("id" bigserial primary key, "name" character varying NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4089
+  (0.5ms) DROP TABLE IF EXISTS "snf_core_store_inventories" CASCADE /*application='Dummy'*/
4090
+  (1.9ms) CREATE TABLE "snf_core_store_inventories" ("id" bigserial primary key, "store_id" bigint NOT NULL, "product_id" bigint NOT NULL, "base_price" decimal(10,2) NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, "status" integer DEFAULT 0 NOT NULL) /*application='Dummy'*/
4091
+  (1.3ms) CREATE INDEX "index_snf_core_store_inventories_on_product_id" ON "snf_core_store_inventories" ("product_id") /*application='Dummy'*/
4092
+  (1.3ms) CREATE UNIQUE INDEX "index_snf_core_store_inventories_on_store_id_and_product_id" ON "snf_core_store_inventories" ("store_id", "product_id") /*application='Dummy'*/
4093
+  (1.2ms) CREATE INDEX "index_snf_core_store_inventories_on_store_id" ON "snf_core_store_inventories" ("store_id") /*application='Dummy'*/
4094
+  (0.3ms) DROP TABLE IF EXISTS "snf_core_stores" CASCADE /*application='Dummy'*/
4095
+  (3.6ms) CREATE TABLE "snf_core_stores" ("id" bigserial primary key, "name" character varying NOT NULL, "email" character varying, "operational_status" integer DEFAULT 1 NOT NULL, "business_id" bigint NOT NULL, "address_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4096
+  (1.6ms) CREATE INDEX "index_snf_core_stores_on_address_id" ON "snf_core_stores" ("address_id") /*application='Dummy'*/
4097
+  (1.5ms) CREATE INDEX "index_snf_core_stores_on_business_id" ON "snf_core_stores" ("business_id") /*application='Dummy'*/
4098
+  (0.3ms) DROP TABLE IF EXISTS "snf_core_user_roles" CASCADE /*application='Dummy'*/
4099
+  (2.5ms) CREATE TABLE "snf_core_user_roles" ("id" bigserial primary key, "user_id" bigint NOT NULL, "role_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4100
+  (1.6ms) CREATE INDEX "index_snf_core_user_roles_on_role_id" ON "snf_core_user_roles" ("role_id") /*application='Dummy'*/
4101
+  (1.3ms) CREATE INDEX "index_snf_core_user_roles_on_user_id" ON "snf_core_user_roles" ("user_id") /*application='Dummy'*/
4102
+  (0.4ms) DROP TABLE IF EXISTS "snf_core_users" CASCADE /*application='Dummy'*/
4103
+  (4.5ms) CREATE TABLE "snf_core_users" ("id" bigserial primary key, "first_name" character varying NOT NULL, "middle_name" character varying NOT NULL, "last_name" character varying NOT NULL, "email" character varying, "phone_number" character varying NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, "password_digest" character varying NOT NULL, "password_changed" boolean DEFAULT FALSE, "reset_password_token" character varying, "date_of_birth" date NOT NULL, "nationality" character varying NOT NULL, "occupation" character varying, "source_of_funds" character varying, "kyc_status" integer, "gender" integer, "verified_at" timestamp(6), "verified_by_id" bigint, "address_id" bigint) /*application='Dummy'*/
4104
+  (0.6ms) DROP TABLE IF EXISTS "snf_core_wallets" CASCADE /*application='Dummy'*/
4105
+  (4.5ms) CREATE TABLE "snf_core_wallets" ("id" bigserial primary key, "user_id" bigint NOT NULL, "wallet_number" character varying NOT NULL, "balance" decimal NOT NULL, "is_active" boolean DEFAULT TRUE NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4106
+  (1.7ms) CREATE INDEX "index_snf_core_wallets_on_user_id" ON "snf_core_wallets" ("user_id") /*application='Dummy'*/
4107
+  (1.7ms) CREATE UNIQUE INDEX "index_snf_core_wallets_on_wallet_number" ON "snf_core_wallets" ("wallet_number") /*application='Dummy'*/
4108
+  (3.2ms) ALTER TABLE "active_storage_attachments" ADD CONSTRAINT "fk_rails_c3b3935057"
4109
+ FOREIGN KEY ("blob_id")
4110
+ REFERENCES "active_storage_blobs" ("id")
4111
+ /*application='Dummy'*/
4112
+  (1.9ms) ALTER TABLE "active_storage_variant_records" ADD CONSTRAINT "fk_rails_993965df05"
4113
+ FOREIGN KEY ("blob_id")
4114
+ REFERENCES "active_storage_blobs" ("id")
4115
+ /*application='Dummy'*/
4116
+  (1.8ms) ALTER TABLE "snf_core_business_documents" ADD CONSTRAINT "fk_rails_1efd7338ed"
4117
+ FOREIGN KEY ("business_id")
4118
+ REFERENCES "snf_core_businesses" ("id")
4119
+ /*application='Dummy'*/
4120
+  (1.8ms) ALTER TABLE "snf_core_business_documents" ADD CONSTRAINT "fk_rails_a6157021cc"
4121
+ FOREIGN KEY ("verified_by_id")
4122
+ REFERENCES "snf_core_users" ("id")
4123
+ /*application='Dummy'*/
4124
+  (1.8ms) ALTER TABLE "snf_core_businesses" ADD CONSTRAINT "fk_rails_a61edcbd4b"
4125
+ FOREIGN KEY ("user_id")
4126
+ REFERENCES "snf_core_users" ("id")
4127
+ /*application='Dummy'*/
4128
+  (1.5ms) ALTER TABLE "snf_core_categories" ADD CONSTRAINT "fk_rails_26a925b05d"
4129
+ FOREIGN KEY ("parent_id")
4130
+ REFERENCES "snf_core_categories" ("id")
4131
+ /*application='Dummy'*/
4132
+  (1.8ms) ALTER TABLE "snf_core_customer_groups" ADD CONSTRAINT "fk_rails_9c45f4015a"
4133
+ FOREIGN KEY ("group_id")
4134
+ REFERENCES "snf_core_groups" ("id")
4135
+ /*application='Dummy'*/
4136
+  (1.5ms) ALTER TABLE "snf_core_customer_groups" ADD CONSTRAINT "fk_rails_792eb3404d"
4137
+ FOREIGN KEY ("customer_id")
4138
+ REFERENCES "snf_core_users" ("id")
4139
+ /*application='Dummy'*/
4140
+  (2.0ms) ALTER TABLE "snf_core_delivery_orders" ADD CONSTRAINT "fk_rails_450d17b1b2"
4141
+ FOREIGN KEY ("order_id")
4142
+ REFERENCES "snf_core_orders" ("id")
4143
+ /*application='Dummy'*/
4144
+  (1.3ms) ALTER TABLE "snf_core_groups" ADD CONSTRAINT "fk_rails_c52b27ad67"
4145
+ FOREIGN KEY ("business_id")
4146
+ REFERENCES "snf_core_businesses" ("id")
4147
+ /*application='Dummy'*/
4148
+  (1.8ms) ALTER TABLE "snf_core_order_items" ADD CONSTRAINT "fk_rails_1f4046ba92"
4149
+ FOREIGN KEY ("order_id")
4150
+ REFERENCES "snf_core_orders" ("id")
4151
+ /*application='Dummy'*/
4152
+  (2.0ms) ALTER TABLE "snf_core_order_items" ADD CONSTRAINT "fk_rails_50419437e9"
4153
+ FOREIGN KEY ("store_inventory_id")
4154
+ REFERENCES "snf_core_store_inventories" ("id")
4155
+ /*application='Dummy'*/
4156
+  (2.7ms) ALTER TABLE "snf_core_orders" ADD CONSTRAINT "fk_rails_400cf2029c"
4157
+ FOREIGN KEY ("store_id")
4158
+ REFERENCES "snf_core_stores" ("id")
4159
+ /*application='Dummy'*/
4160
+  (1.3ms) ALTER TABLE "snf_core_orders" ADD CONSTRAINT "fk_rails_45b78fb6f9"
4161
+ FOREIGN KEY ("user_id")
4162
+ REFERENCES "snf_core_users" ("id")
4163
+ /*application='Dummy'*/
4164
+  (1.4ms) ALTER TABLE "snf_core_products" ADD CONSTRAINT "fk_rails_a0ba3fa883"
4165
+ FOREIGN KEY ("category_id")
4166
+ REFERENCES "snf_core_categories" ("id")
4167
+ /*application='Dummy'*/
4168
+  (1.7ms) ALTER TABLE "snf_core_store_inventories" ADD CONSTRAINT "fk_rails_15fb263e75"
4169
+ FOREIGN KEY ("product_id")
4170
+ REFERENCES "snf_core_products" ("id")
4171
+ /*application='Dummy'*/
4172
+  (1.5ms) ALTER TABLE "snf_core_store_inventories" ADD CONSTRAINT "fk_rails_2ca88d30e2"
4173
+ FOREIGN KEY ("store_id")
4174
+ REFERENCES "snf_core_stores" ("id")
4175
+ /*application='Dummy'*/
4176
+  (1.7ms) ALTER TABLE "snf_core_stores" ADD CONSTRAINT "fk_rails_421441da8e"
4177
+ FOREIGN KEY ("address_id")
4178
+ REFERENCES "snf_core_addresses" ("id")
4179
+ /*application='Dummy'*/
4180
+  (1.3ms) ALTER TABLE "snf_core_stores" ADD CONSTRAINT "fk_rails_e100fc7454"
4181
+ FOREIGN KEY ("business_id")
4182
+ REFERENCES "snf_core_businesses" ("id")
4183
+ /*application='Dummy'*/
4184
+  (1.7ms) ALTER TABLE "snf_core_user_roles" ADD CONSTRAINT "fk_rails_0e70d7ce00"
4185
+ FOREIGN KEY ("role_id")
4186
+ REFERENCES "snf_core_roles" ("id")
4187
+ /*application='Dummy'*/
4188
+  (1.3ms) ALTER TABLE "snf_core_user_roles" ADD CONSTRAINT "fk_rails_9ad2e78133"
4189
+ FOREIGN KEY ("user_id")
4190
+ REFERENCES "snf_core_users" ("id")
4191
+ /*application='Dummy'*/
4192
+  (1.1ms) ALTER TABLE "snf_core_users" ADD CONSTRAINT "fk_rails_aaf9dcb5a5"
4193
+ FOREIGN KEY ("address_id")
4194
+ REFERENCES "snf_core_addresses" ("id")
4195
+ /*application='Dummy'*/
4196
+  (2.5ms) ALTER TABLE "snf_core_users" ADD CONSTRAINT "fk_rails_e672dea3f8"
4197
+ FOREIGN KEY ("verified_by_id")
4198
+ REFERENCES "snf_core_users" ("id")
4199
+ ON DELETE SET NULL /*application='Dummy'*/
4200
+  (4.9ms) ALTER TABLE "snf_core_wallets" ADD CONSTRAINT "fk_rails_77c94979ce"
4201
+ FOREIGN KEY ("user_id")
4202
+ REFERENCES "snf_core_users" ("id")
4203
+ /*application='Dummy'*/
4204
+  (3.6ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL PRIMARY KEY) /*application='Dummy'*/
4205
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
4206
+  (0.6ms) INSERT INTO "schema_migrations" (version) VALUES (20250310123127) /*application='Dummy'*/
4207
+  (0.7ms) INSERT INTO "schema_migrations" (version) VALUES
4208
+ (20250306074713),
4209
+ (20250305232530),
4210
+ (20250305232529),
4211
+ (20250305201008),
4212
+ (20250305170248),
4213
+ (20250305165926),
4214
+ (20250227102833),
4215
+ (20250227075048),
4216
+ (20250226193938),
4217
+ (20250226192104),
4218
+ (20250226190000),
4219
+ (20250226181007),
4220
+ (20250226123213),
4221
+ (20250226115215),
4222
+ (20250226110217),
4223
+ (20250226102931),
4224
+ (20250226080323),
4225
+ (20250226064444),
4226
+ (20250226042622); /*application='Dummy'*/
4227
+  (5.3ms) CREATE TABLE "ar_internal_metadata" ("key" character varying NOT NULL PRIMARY KEY, "value" character varying, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4228
+ ActiveRecord::InternalMetadata Load (1.3ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
4229
+ ActiveRecord::InternalMetadata Create (0.8ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ('environment', 'development', '2025-03-10 13:01:05.760938', '2025-03-10 13:01:05.760947') RETURNING "key" /*application='Dummy'*/
4230
+ ActiveRecord::InternalMetadata Load (0.3ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
4231
+ ActiveRecord::InternalMetadata Update (0.5ms) UPDATE "ar_internal_metadata" SET "value" = 'test', "updated_at" = '2025-03-10 13:01:05.766052' WHERE "ar_internal_metadata"."key" = 'environment' /*application='Dummy'*/
4232
+ ActiveRecord::InternalMetadata Load (0.3ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'schema_sha1' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
4233
+ ActiveRecord::InternalMetadata Create (0.4ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ('schema_sha1', 'a020f46e33542fa280d0186f8433c560706fa00f', '2025-03-10 13:01:05.769462', '2025-03-10 13:01:05.769464') RETURNING "key" /*application='Dummy'*/
4234
+  (0.3ms) SELECT pg_try_advisory_lock(869468062957908540) /*application='Dummy'*/
4235
+ ActiveRecord::SchemaMigration Load (2.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
4236
+ ActiveRecord::InternalMetadata Load (5.6ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
4237
+ Migrating to CreateSnfCoreVirtualAccounts (20250310122954)
4238
+ TRANSACTION (0.1ms) BEGIN /*application='Dummy'*/
4239
+  (29.7ms) CREATE TABLE "snf_core_virtual_accounts" ("id" bigserial primary key, "user_id" bigint NOT NULL, "account_number" character varying(11) NOT NULL, "cbs_account_number" character varying NOT NULL, "balance" decimal DEFAULT 0.0 NOT NULL, "interest_rate" decimal DEFAULT 0.0 NOT NULL, "interest_type" integer DEFAULT 0 NOT NULL, "active" boolean DEFAULT TRUE NOT NULL, "branch_code" character varying(3) NOT NULL, "product_scheme" character varying(1) NOT NULL, "voucher_type" character varying(1) NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, CONSTRAINT "fk_rails_5b22a265fb"
4240
+ FOREIGN KEY ("user_id")
4241
+ REFERENCES "snf_core_users" ("id")
4242
+ ) /*application='Dummy'*/
4243
+  (1.7ms) CREATE INDEX "index_snf_core_virtual_accounts_on_user_id" ON "snf_core_virtual_accounts" ("user_id") /*application='Dummy'*/
4244
+  (1.3ms) CREATE UNIQUE INDEX "index_snf_core_virtual_accounts_on_account_number" ON "snf_core_virtual_accounts" ("account_number") /*application='Dummy'*/
4245
+  (1.3ms) CREATE UNIQUE INDEX "index_snf_core_virtual_accounts_on_cbs_account_number" ON "snf_core_virtual_accounts" ("cbs_account_number") /*application='Dummy'*/
4246
+  (1.3ms) CREATE INDEX "idx_on_branch_code_product_scheme_voucher_type_b7038b3d5f" ON "snf_core_virtual_accounts" ("branch_code", "product_scheme", "voucher_type") /*application='Dummy'*/
4247
+ ActiveRecord::SchemaMigration Create (1.9ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250310122954') RETURNING "version" /*application='Dummy'*/
4248
+ TRANSACTION (1.4ms) COMMIT /*application='Dummy'*/
4249
+ Migrating to CreateSnfCoreAccountTransfers (20250311000000)
4250
+ TRANSACTION (0.4ms) BEGIN /*application='Dummy'*/
4251
+  (6.7ms) CREATE TABLE "snf_core_account_transfers" ("id" bigserial primary key, "source_account_type" character varying NOT NULL, "source_account_id" bigint NOT NULL, "destination_account_type" character varying NOT NULL, "destination_account_id" bigint NOT NULL, "user_id" bigint NOT NULL, "amount" decimal(15,2) NOT NULL, "reference_number" character varying NOT NULL, "status" integer DEFAULT 0 NOT NULL, "transfer_type" integer NOT NULL, "description" text, "failure_reason" text, "completed_at" timestamp(6), "reversal_transfer_id" bigint, "cbs_response_data" jsonb, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, CONSTRAINT "fk_rails_0d109a55ef"
4252
+ FOREIGN KEY ("user_id")
4253
+ REFERENCES "snf_core_users" ("id")
4254
+ ) /*application='Dummy'*/
4255
+  (1.4ms) CREATE INDEX "index_snf_core_account_transfers_on_source_account" ON "snf_core_account_transfers" ("source_account_type", "source_account_id") /*application='Dummy'*/
4256
+  (1.3ms) CREATE INDEX "index_snf_core_account_transfers_on_destination_account" ON "snf_core_account_transfers" ("destination_account_type", "destination_account_id") /*application='Dummy'*/
4257
+  (1.1ms) CREATE INDEX "index_snf_core_account_transfers_on_user_id" ON "snf_core_account_transfers" ("user_id") /*application='Dummy'*/
4258
+  (1.2ms) CREATE UNIQUE INDEX "index_snf_core_account_transfers_on_reference_number" ON "snf_core_account_transfers" ("reference_number") /*application='Dummy'*/
4259
+  (0.8ms) CREATE INDEX "index_snf_core_account_transfers_on_reversal_transfer_id" ON "snf_core_account_transfers" ("reversal_transfer_id") /*application='Dummy'*/
4260
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250311000000') RETURNING "version" /*application='Dummy'*/
4261
+ TRANSACTION (0.5ms) COMMIT /*application='Dummy'*/
4262
+  (0.5ms) SELECT pg_advisory_unlock(869468062957908540) /*application='Dummy'*/
4263
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
4264
+ ActiveRecord::SchemaMigration Load (1.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
4265
+ ActiveRecord::InternalMetadata Load (1.2ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
4266
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
4267
+ ActiveRecord::InternalMetadata Load (0.2ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
4268
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
4269
+ ActiveRecord::InternalMetadata Load (0.2ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
4270
+ SQL (0.1ms) SET search_path TO public /*application='Dummy'*/
4271
+  (129.6ms) DROP DATABASE IF EXISTS "snf_test" /*application='Dummy'*/
4272
+  (123.4ms) CREATE DATABASE "snf_test" ENCODING = 'unicode' /*application='Dummy'*/
4273
+ SQL (12.3ms) CREATE EXTENSION IF NOT EXISTS "plpgsql" SCHEMA pg_catalog /*application='Dummy'*/
4274
+  (0.1ms) DROP TABLE IF EXISTS "active_storage_attachments" CASCADE /*application='Dummy'*/
4275
+  (2.6ms) CREATE TABLE "active_storage_attachments" ("id" bigserial primary key, "name" character varying NOT NULL, "record_type" character varying NOT NULL, "record_id" bigint NOT NULL, "blob_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4276
+  (0.6ms) CREATE INDEX "index_active_storage_attachments_on_blob_id" ON "active_storage_attachments" ("blob_id") /*application='Dummy'*/
4277
+  (0.8ms) CREATE UNIQUE INDEX "index_active_storage_attachments_uniqueness" ON "active_storage_attachments" ("record_type", "record_id", "name", "blob_id") /*application='Dummy'*/
4278
+  (0.2ms) DROP TABLE IF EXISTS "active_storage_blobs" CASCADE /*application='Dummy'*/
4279
+  (1.2ms) CREATE TABLE "active_storage_blobs" ("id" bigserial primary key, "key" character varying NOT NULL, "filename" character varying NOT NULL, "content_type" character varying, "metadata" text, "service_name" character varying NOT NULL, "byte_size" bigint NOT NULL, "checksum" character varying, "created_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4280
+  (0.6ms) CREATE UNIQUE INDEX "index_active_storage_blobs_on_key" ON "active_storage_blobs" ("key") /*application='Dummy'*/
4281
+  (0.2ms) DROP TABLE IF EXISTS "active_storage_variant_records" CASCADE /*application='Dummy'*/
4282
+  (1.3ms) CREATE TABLE "active_storage_variant_records" ("id" bigserial primary key, "blob_id" bigint NOT NULL, "variation_digest" character varying NOT NULL) /*application='Dummy'*/
4283
+  (0.8ms) CREATE UNIQUE INDEX "index_active_storage_variant_records_uniqueness" ON "active_storage_variant_records" ("blob_id", "variation_digest") /*application='Dummy'*/
4284
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_account_transfers" CASCADE /*application='Dummy'*/
4285
+  (1.3ms) CREATE TABLE "snf_core_account_transfers" ("id" bigserial primary key, "source_account_type" character varying NOT NULL, "source_account_id" bigint NOT NULL, "destination_account_type" character varying NOT NULL, "destination_account_id" bigint NOT NULL, "user_id" bigint NOT NULL, "amount" decimal(15,2) NOT NULL, "reference_number" character varying NOT NULL, "status" integer DEFAULT 0 NOT NULL, "transfer_type" integer NOT NULL, "description" text, "failure_reason" text, "completed_at" timestamp(6), "reversal_transfer_id" bigint, "cbs_response_data" jsonb, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4286
+  (0.7ms) CREATE INDEX "index_snf_core_account_transfers_on_destination_account" ON "snf_core_account_transfers" ("destination_account_type", "destination_account_id") /*application='Dummy'*/
4287
+  (0.4ms) CREATE UNIQUE INDEX "index_snf_core_account_transfers_on_reference_number" ON "snf_core_account_transfers" ("reference_number") /*application='Dummy'*/
4288
+  (0.6ms) CREATE INDEX "index_snf_core_account_transfers_on_reversal_transfer_id" ON "snf_core_account_transfers" ("reversal_transfer_id") /*application='Dummy'*/
4289
+  (0.8ms) CREATE INDEX "index_snf_core_account_transfers_on_source_account" ON "snf_core_account_transfers" ("source_account_type", "source_account_id") /*application='Dummy'*/
4290
+  (0.4ms) CREATE INDEX "index_snf_core_account_transfers_on_user_id" ON "snf_core_account_transfers" ("user_id") /*application='Dummy'*/
4291
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_addresses" CASCADE /*application='Dummy'*/
4292
+  (1.3ms) CREATE TABLE "snf_core_addresses" ("id" bigserial primary key, "address_type" character varying NOT NULL, "city" character varying NOT NULL, "sub_city" character varying NOT NULL, "woreda" character varying, "latitude" decimal NOT NULL, "longitude" decimal NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, "house_number" character varying) /*application='Dummy'*/
4293
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_business_documents" CASCADE /*application='Dummy'*/
4294
+  (1.0ms) CREATE TABLE "snf_core_business_documents" ("id" bigserial primary key, "business_id" bigint NOT NULL, "document_type" integer NOT NULL, "verified_at" timestamp(6), "verified_by_id" bigint, "uploaded_at" timestamp(6), "is_verified" boolean DEFAULT FALSE NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4295
+  (1.9ms) CREATE INDEX "index_snf_core_business_documents_on_business_id" ON "snf_core_business_documents" ("business_id") /*application='Dummy'*/
4296
+  (0.5ms) CREATE INDEX "index_snf_core_business_documents_on_verified_by_id" ON "snf_core_business_documents" ("verified_by_id") /*application='Dummy'*/
4297
+  (0.1ms) DROP TABLE IF EXISTS "snf_core_businesses" CASCADE /*application='Dummy'*/
4298
+  (1.8ms) CREATE TABLE "snf_core_businesses" ("id" bigserial primary key, "user_id" bigint NOT NULL, "business_name" character varying NOT NULL, "tin_number" character varying NOT NULL, "business_type" integer NOT NULL, "verified_at" timestamp(6), "verification_status" integer DEFAULT 0 NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4299
+  (0.6ms) CREATE INDEX "index_snf_core_businesses_on_user_id" ON "snf_core_businesses" ("user_id") /*application='Dummy'*/
4300
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_categories" CASCADE /*application='Dummy'*/
4301
+  (1.5ms) CREATE TABLE "snf_core_categories" ("id" bigserial primary key, "name" character varying NOT NULL, "description" character varying, "parent_id" bigint, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4302
+  (0.5ms) CREATE INDEX "index_snf_core_categories_on_parent_id" ON "snf_core_categories" ("parent_id") /*application='Dummy'*/
4303
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_customer_groups" CASCADE /*application='Dummy'*/
4304
+  (1.4ms) CREATE TABLE "snf_core_customer_groups" ("id" bigserial primary key, "discount_code" character varying, "expire_date" timestamp(6), "is_used" boolean, "group_id" bigint NOT NULL, "customer_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4305
+  (0.8ms) CREATE INDEX "index_snf_core_customer_groups_on_customer_id" ON "snf_core_customer_groups" ("customer_id") /*application='Dummy'*/
4306
+  (1.7ms) CREATE INDEX "index_snf_core_customer_groups_on_group_id" ON "snf_core_customer_groups" ("group_id") /*application='Dummy'*/
4307
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_delivery_orders" CASCADE /*application='Dummy'*/
4308
+  (1.4ms) CREATE TABLE "snf_core_delivery_orders" ("id" bigserial primary key, "order_id" bigint NOT NULL, "delivery_address" character varying NOT NULL, "contact_phone" character varying NOT NULL, "delivery_notes" text NOT NULL, "estimated_delivery_time" timestamp(6) NOT NULL, "actual_delivery_time" timestamp(6), "status" integer NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4309
+  (0.7ms) CREATE INDEX "index_snf_core_delivery_orders_on_order_id" ON "snf_core_delivery_orders" ("order_id") /*application='Dummy'*/
4310
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_groups" CASCADE /*application='Dummy'*/
4311
+  (2.0ms) CREATE TABLE "snf_core_groups" ("id" bigserial primary key, "name" character varying NOT NULL, "business_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4312
+  (0.5ms) CREATE INDEX "index_snf_core_groups_on_business_id" ON "snf_core_groups" ("business_id") /*application='Dummy'*/
4313
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_order_items" CASCADE /*application='Dummy'*/
4314
+  (1.9ms) CREATE TABLE "snf_core_order_items" ("id" bigserial primary key, "order_id" bigint NOT NULL, "store_inventory_id" bigint NOT NULL, "quantity" integer NOT NULL, "unit_price" decimal NOT NULL, "subtotal" decimal NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4315
+  (0.6ms) CREATE INDEX "index_snf_core_order_items_on_order_id" ON "snf_core_order_items" ("order_id") /*application='Dummy'*/
4316
+  (0.4ms) CREATE INDEX "index_snf_core_order_items_on_store_inventory_id" ON "snf_core_order_items" ("store_inventory_id") /*application='Dummy'*/
4317
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_orders" CASCADE /*application='Dummy'*/
4318
+  (1.1ms) CREATE TABLE "snf_core_orders" ("id" bigserial primary key, "user_id" bigint NOT NULL, "store_id" bigint NOT NULL, "status" integer DEFAULT 1 NOT NULL, "total_amount" decimal DEFAULT 0.0 NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4319
+  (0.6ms) CREATE INDEX "index_snf_core_orders_on_store_id" ON "snf_core_orders" ("store_id") /*application='Dummy'*/
4320
+  (0.8ms) CREATE INDEX "index_snf_core_orders_on_user_id" ON "snf_core_orders" ("user_id") /*application='Dummy'*/
4321
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_products" CASCADE /*application='Dummy'*/
4322
+  (1.8ms) CREATE TABLE "snf_core_products" ("id" bigserial primary key, "sku" character varying NOT NULL, "name" character varying NOT NULL, "description" character varying, "category_id" bigint NOT NULL, "base_price" float, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4323
+  (0.7ms) CREATE INDEX "index_snf_core_products_on_category_id" ON "snf_core_products" ("category_id") /*application='Dummy'*/
4324
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_roles" CASCADE /*application='Dummy'*/
4325
+  (1.4ms) CREATE TABLE "snf_core_roles" ("id" bigserial primary key, "name" character varying NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4326
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_store_inventories" CASCADE /*application='Dummy'*/
4327
+  (0.9ms) CREATE TABLE "snf_core_store_inventories" ("id" bigserial primary key, "store_id" bigint NOT NULL, "product_id" bigint NOT NULL, "base_price" decimal(10,2) NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, "status" integer DEFAULT 0 NOT NULL) /*application='Dummy'*/
4328
+  (0.8ms) CREATE INDEX "index_snf_core_store_inventories_on_product_id" ON "snf_core_store_inventories" ("product_id") /*application='Dummy'*/
4329
+  (0.6ms) CREATE UNIQUE INDEX "index_snf_core_store_inventories_on_store_id_and_product_id" ON "snf_core_store_inventories" ("store_id", "product_id") /*application='Dummy'*/
4330
+  (0.6ms) CREATE INDEX "index_snf_core_store_inventories_on_store_id" ON "snf_core_store_inventories" ("store_id") /*application='Dummy'*/
4331
+  (0.1ms) DROP TABLE IF EXISTS "snf_core_stores" CASCADE /*application='Dummy'*/
4332
+  (2.0ms) CREATE TABLE "snf_core_stores" ("id" bigserial primary key, "name" character varying NOT NULL, "email" character varying, "operational_status" integer DEFAULT 1 NOT NULL, "business_id" bigint NOT NULL, "address_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4333
+  (0.8ms) CREATE INDEX "index_snf_core_stores_on_address_id" ON "snf_core_stores" ("address_id") /*application='Dummy'*/
4334
+  (0.6ms) CREATE INDEX "index_snf_core_stores_on_business_id" ON "snf_core_stores" ("business_id") /*application='Dummy'*/
4335
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_user_roles" CASCADE /*application='Dummy'*/
4336
+  (1.2ms) CREATE TABLE "snf_core_user_roles" ("id" bigserial primary key, "user_id" bigint NOT NULL, "role_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4337
+  (0.9ms) CREATE INDEX "index_snf_core_user_roles_on_role_id" ON "snf_core_user_roles" ("role_id") /*application='Dummy'*/
4338
+  (1.0ms) CREATE INDEX "index_snf_core_user_roles_on_user_id" ON "snf_core_user_roles" ("user_id") /*application='Dummy'*/
4339
+  (0.1ms) DROP TABLE IF EXISTS "snf_core_users" CASCADE /*application='Dummy'*/
4340
+  (1.9ms) CREATE TABLE "snf_core_users" ("id" bigserial primary key, "first_name" character varying NOT NULL, "middle_name" character varying NOT NULL, "last_name" character varying NOT NULL, "email" character varying, "phone_number" character varying NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, "password_digest" character varying NOT NULL, "password_changed" boolean DEFAULT FALSE, "reset_password_token" character varying, "date_of_birth" date NOT NULL, "nationality" character varying NOT NULL, "occupation" character varying, "source_of_funds" character varying, "kyc_status" integer, "gender" integer, "verified_at" timestamp(6), "verified_by_id" bigint, "address_id" bigint) /*application='Dummy'*/
4341
+  (0.4ms) DROP TABLE IF EXISTS "snf_core_virtual_accounts" CASCADE /*application='Dummy'*/
4342
+  (2.2ms) CREATE TABLE "snf_core_virtual_accounts" ("id" bigserial primary key, "user_id" bigint NOT NULL, "account_number" character varying(11) NOT NULL, "cbs_account_number" character varying NOT NULL, "balance" decimal DEFAULT 0.0 NOT NULL, "interest_rate" decimal DEFAULT 0.0 NOT NULL, "interest_type" integer DEFAULT 0 NOT NULL, "active" boolean DEFAULT TRUE NOT NULL, "branch_code" character varying(3) NOT NULL, "product_scheme" character varying(1) NOT NULL, "voucher_type" character varying(1) NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4343
+  (0.6ms) CREATE UNIQUE INDEX "index_snf_core_virtual_accounts_on_account_number" ON "snf_core_virtual_accounts" ("account_number") /*application='Dummy'*/
4344
+  (0.9ms) CREATE INDEX "idx_on_branch_code_product_scheme_voucher_type_b7038b3d5f" ON "snf_core_virtual_accounts" ("branch_code", "product_scheme", "voucher_type") /*application='Dummy'*/
4345
+  (0.7ms) CREATE UNIQUE INDEX "index_snf_core_virtual_accounts_on_cbs_account_number" ON "snf_core_virtual_accounts" ("cbs_account_number") /*application='Dummy'*/
4346
+  (0.4ms) CREATE INDEX "index_snf_core_virtual_accounts_on_user_id" ON "snf_core_virtual_accounts" ("user_id") /*application='Dummy'*/
4347
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_wallets" CASCADE /*application='Dummy'*/
4348
+  (2.2ms) CREATE TABLE "snf_core_wallets" ("id" bigserial primary key, "user_id" bigint NOT NULL, "wallet_number" character varying NOT NULL, "balance" decimal NOT NULL, "is_active" boolean DEFAULT TRUE NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4349
+  (1.2ms) CREATE INDEX "index_snf_core_wallets_on_user_id" ON "snf_core_wallets" ("user_id") /*application='Dummy'*/
4350
+  (0.8ms) CREATE UNIQUE INDEX "index_snf_core_wallets_on_wallet_number" ON "snf_core_wallets" ("wallet_number") /*application='Dummy'*/
4351
+  (2.2ms) ALTER TABLE "active_storage_attachments" ADD CONSTRAINT "fk_rails_c3b3935057"
4352
+ FOREIGN KEY ("blob_id")
4353
+ REFERENCES "active_storage_blobs" ("id")
4354
+ /*application='Dummy'*/
4355
+  (0.9ms) ALTER TABLE "active_storage_variant_records" ADD CONSTRAINT "fk_rails_993965df05"
4356
+ FOREIGN KEY ("blob_id")
4357
+ REFERENCES "active_storage_blobs" ("id")
4358
+ /*application='Dummy'*/
4359
+  (0.9ms) ALTER TABLE "snf_core_account_transfers" ADD CONSTRAINT "fk_rails_0d109a55ef"
4360
+ FOREIGN KEY ("user_id")
4361
+ REFERENCES "snf_core_users" ("id")
4362
+ /*application='Dummy'*/
4363
+  (1.0ms) ALTER TABLE "snf_core_business_documents" ADD CONSTRAINT "fk_rails_1efd7338ed"
4364
+ FOREIGN KEY ("business_id")
4365
+ REFERENCES "snf_core_businesses" ("id")
4366
+ /*application='Dummy'*/
4367
+  (0.7ms) ALTER TABLE "snf_core_business_documents" ADD CONSTRAINT "fk_rails_a6157021cc"
4368
+ FOREIGN KEY ("verified_by_id")
4369
+ REFERENCES "snf_core_users" ("id")
4370
+ /*application='Dummy'*/
4371
+  (0.7ms) ALTER TABLE "snf_core_businesses" ADD CONSTRAINT "fk_rails_a61edcbd4b"
4372
+ FOREIGN KEY ("user_id")
4373
+ REFERENCES "snf_core_users" ("id")
4374
+ /*application='Dummy'*/
4375
+  (0.5ms) ALTER TABLE "snf_core_categories" ADD CONSTRAINT "fk_rails_26a925b05d"
4376
+ FOREIGN KEY ("parent_id")
4377
+ REFERENCES "snf_core_categories" ("id")
4378
+ /*application='Dummy'*/
4379
+  (1.1ms) ALTER TABLE "snf_core_customer_groups" ADD CONSTRAINT "fk_rails_9c45f4015a"
4380
+ FOREIGN KEY ("group_id")
4381
+ REFERENCES "snf_core_groups" ("id")
4382
+ /*application='Dummy'*/
4383
+  (0.6ms) ALTER TABLE "snf_core_customer_groups" ADD CONSTRAINT "fk_rails_792eb3404d"
4384
+ FOREIGN KEY ("customer_id")
4385
+ REFERENCES "snf_core_users" ("id")
4386
+ /*application='Dummy'*/
4387
+  (0.6ms) ALTER TABLE "snf_core_delivery_orders" ADD CONSTRAINT "fk_rails_450d17b1b2"
4388
+ FOREIGN KEY ("order_id")
4389
+ REFERENCES "snf_core_orders" ("id")
4390
+ /*application='Dummy'*/
4391
+  (0.7ms) ALTER TABLE "snf_core_groups" ADD CONSTRAINT "fk_rails_c52b27ad67"
4392
+ FOREIGN KEY ("business_id")
4393
+ REFERENCES "snf_core_businesses" ("id")
4394
+ /*application='Dummy'*/
4395
+  (1.1ms) ALTER TABLE "snf_core_order_items" ADD CONSTRAINT "fk_rails_1f4046ba92"
4396
+ FOREIGN KEY ("order_id")
4397
+ REFERENCES "snf_core_orders" ("id")
4398
+ /*application='Dummy'*/
4399
+  (1.2ms) ALTER TABLE "snf_core_order_items" ADD CONSTRAINT "fk_rails_50419437e9"
4400
+ FOREIGN KEY ("store_inventory_id")
4401
+ REFERENCES "snf_core_store_inventories" ("id")
4402
+ /*application='Dummy'*/
4403
+  (0.5ms) ALTER TABLE "snf_core_orders" ADD CONSTRAINT "fk_rails_400cf2029c"
4404
+ FOREIGN KEY ("store_id")
4405
+ REFERENCES "snf_core_stores" ("id")
4406
+ /*application='Dummy'*/
4407
+  (0.7ms) ALTER TABLE "snf_core_orders" ADD CONSTRAINT "fk_rails_45b78fb6f9"
4408
+ FOREIGN KEY ("user_id")
4409
+ REFERENCES "snf_core_users" ("id")
4410
+ /*application='Dummy'*/
4411
+  (1.1ms) ALTER TABLE "snf_core_products" ADD CONSTRAINT "fk_rails_a0ba3fa883"
4412
+ FOREIGN KEY ("category_id")
4413
+ REFERENCES "snf_core_categories" ("id")
4414
+ /*application='Dummy'*/
4415
+  (0.6ms) ALTER TABLE "snf_core_store_inventories" ADD CONSTRAINT "fk_rails_15fb263e75"
4416
+ FOREIGN KEY ("product_id")
4417
+ REFERENCES "snf_core_products" ("id")
4418
+ /*application='Dummy'*/
4419
+  (0.6ms) ALTER TABLE "snf_core_store_inventories" ADD CONSTRAINT "fk_rails_2ca88d30e2"
4420
+ FOREIGN KEY ("store_id")
4421
+ REFERENCES "snf_core_stores" ("id")
4422
+ /*application='Dummy'*/
4423
+  (1.0ms) ALTER TABLE "snf_core_stores" ADD CONSTRAINT "fk_rails_421441da8e"
4424
+ FOREIGN KEY ("address_id")
4425
+ REFERENCES "snf_core_addresses" ("id")
4426
+ /*application='Dummy'*/
4427
+  (0.7ms) ALTER TABLE "snf_core_stores" ADD CONSTRAINT "fk_rails_e100fc7454"
4428
+ FOREIGN KEY ("business_id")
4429
+ REFERENCES "snf_core_businesses" ("id")
4430
+ /*application='Dummy'*/
4431
+  (0.5ms) ALTER TABLE "snf_core_user_roles" ADD CONSTRAINT "fk_rails_0e70d7ce00"
4432
+ FOREIGN KEY ("role_id")
4433
+ REFERENCES "snf_core_roles" ("id")
4434
+ /*application='Dummy'*/
4435
+  (0.7ms) ALTER TABLE "snf_core_user_roles" ADD CONSTRAINT "fk_rails_9ad2e78133"
4436
+ FOREIGN KEY ("user_id")
4437
+ REFERENCES "snf_core_users" ("id")
4438
+ /*application='Dummy'*/
4439
+  (1.0ms) ALTER TABLE "snf_core_users" ADD CONSTRAINT "fk_rails_aaf9dcb5a5"
4440
+ FOREIGN KEY ("address_id")
4441
+ REFERENCES "snf_core_addresses" ("id")
4442
+ /*application='Dummy'*/
4443
+  (0.5ms) ALTER TABLE "snf_core_users" ADD CONSTRAINT "fk_rails_e672dea3f8"
4444
+ FOREIGN KEY ("verified_by_id")
4445
+ REFERENCES "snf_core_users" ("id")
4446
+ ON DELETE SET NULL /*application='Dummy'*/
4447
+  (1.0ms) ALTER TABLE "snf_core_virtual_accounts" ADD CONSTRAINT "fk_rails_5b22a265fb"
4448
+ FOREIGN KEY ("user_id")
4449
+ REFERENCES "snf_core_users" ("id")
4450
+ /*application='Dummy'*/
4451
+  (0.9ms) ALTER TABLE "snf_core_wallets" ADD CONSTRAINT "fk_rails_77c94979ce"
4452
+ FOREIGN KEY ("user_id")
4453
+ REFERENCES "snf_core_users" ("id")
4454
+ /*application='Dummy'*/
4455
+  (1.7ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL PRIMARY KEY) /*application='Dummy'*/
4456
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
4457
+  (1.0ms) INSERT INTO "schema_migrations" (version) VALUES (20250311000000) /*application='Dummy'*/
4458
+  (0.5ms) INSERT INTO "schema_migrations" (version) VALUES
4459
+ (20250310123127),
4460
+ (20250310122954),
4461
+ (20250306074713),
4462
+ (20250305232530),
4463
+ (20250305232529),
4464
+ (20250305201008),
4465
+ (20250305170248),
4466
+ (20250305165926),
4467
+ (20250227102833),
4468
+ (20250227075048),
4469
+ (20250226193938),
4470
+ (20250226192104),
4471
+ (20250226190000),
4472
+ (20250226181007),
4473
+ (20250226123213),
4474
+ (20250226115215),
4475
+ (20250226110217),
4476
+ (20250226102931),
4477
+ (20250226080323),
4478
+ (20250226064444),
4479
+ (20250226042622); /*application='Dummy'*/
4480
+  (3.0ms) CREATE TABLE "ar_internal_metadata" ("key" character varying NOT NULL PRIMARY KEY, "value" character varying, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4481
+ ActiveRecord::InternalMetadata Load (1.3ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
4482
+ ActiveRecord::InternalMetadata Create (0.6ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ('environment', 'development', '2025-03-10 14:14:00.912636', '2025-03-10 14:14:00.912643') RETURNING "key" /*application='Dummy'*/
4483
+ ActiveRecord::InternalMetadata Load (0.3ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
4484
+ ActiveRecord::InternalMetadata Update (0.5ms) UPDATE "ar_internal_metadata" SET "value" = 'test', "updated_at" = '2025-03-10 14:14:00.917301' WHERE "ar_internal_metadata"."key" = 'environment' /*application='Dummy'*/
4485
+ ActiveRecord::InternalMetadata Load (0.3ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'schema_sha1' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
4486
+ ActiveRecord::InternalMetadata Create (1.1ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ('schema_sha1', '3d4c1f9ec43234e4cf2859215d5e58f8965794ad', '2025-03-10 14:14:00.943571', '2025-03-10 14:14:00.943575') RETURNING "key" /*application='Dummy'*/
4487
+ ActiveRecord::SchemaMigration Load (2.7ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
4488
+ ActiveRecord::InternalMetadata Load (1.4ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
4489
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
4490
+ ActiveRecord::InternalMetadata Load (0.3ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
4491
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
4492
+ ActiveRecord::InternalMetadata Load (0.3ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
4493
+ SQL (0.2ms) SET search_path TO public /*application='Dummy'*/
4494
+  (120.3ms) DROP DATABASE IF EXISTS "snf_dev" /*application='Dummy'*/
4495
+ SQL (0.1ms) SET search_path TO public /*application='Dummy'*/
4496
+  (55.5ms) DROP DATABASE IF EXISTS "snf_test" /*application='Dummy'*/
4497
+ SQL (0.1ms) SET search_path TO public /*application='Dummy'*/
4498
+  (138.1ms) CREATE DATABASE "snf_dev" ENCODING = 'unicode' /*application='Dummy'*/
4499
+ SQL (0.1ms) SET search_path TO public /*application='Dummy'*/
4500
+  (92.5ms) CREATE DATABASE "snf_test" ENCODING = 'unicode' /*application='Dummy'*/
4501
+ SQL (2.2ms) CREATE EXTENSION IF NOT EXISTS "plpgsql" SCHEMA pg_catalog /*application='Dummy'*/
4502
+  (3.7ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL PRIMARY KEY) /*application='Dummy'*/
4503
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
4504
+  (0.7ms) INSERT INTO "schema_migrations" (version) VALUES (0) /*application='Dummy'*/
4505
+  (0.9ms) CREATE TABLE "ar_internal_metadata" ("key" character varying NOT NULL PRIMARY KEY, "value" character varying, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4506
+ ActiveRecord::InternalMetadata Load (0.3ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
4507
+ ActiveRecord::InternalMetadata Create (0.3ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ('environment', 'development', '2025-03-10 14:29:01.094035', '2025-03-10 14:29:01.094036') RETURNING "key" /*application='Dummy'*/
4508
+ ActiveRecord::InternalMetadata Load (0.2ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
4509
+ ActiveRecord::InternalMetadata Load (0.1ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'schema_sha1' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
4510
+ ActiveRecord::InternalMetadata Create (0.2ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ('schema_sha1', '9c6777daaa6ce85cc74b26c38000144a7834a947', '2025-03-10 14:29:01.095947', '2025-03-10 14:29:01.095947') RETURNING "key" /*application='Dummy'*/
4511
+  (0.1ms) SELECT pg_try_advisory_lock(869468062957908540) /*application='Dummy'*/
4512
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
4513
+ ActiveRecord::InternalMetadata Load (0.1ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
4514
+ Migrating to CreateSnfCoreUsers (20250226042622)
4515
+ TRANSACTION (0.1ms) BEGIN /*application='Dummy'*/
4516
+  (2.7ms) CREATE TABLE "snf_core_users" ("id" bigserial primary key, "first_name" character varying NOT NULL, "middle_name" character varying NOT NULL, "last_name" character varying NOT NULL, "email" character varying, "phone_number" character varying NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4517
+ ActiveRecord::SchemaMigration Create (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250226042622') RETURNING "version" /*application='Dummy'*/
4518
+ TRANSACTION (0.2ms) COMMIT /*application='Dummy'*/
4519
+ Migrating to CreateSnfCoreCategories (20250226064444)
4520
+ TRANSACTION (0.2ms) BEGIN /*application='Dummy'*/
4521
+  (2.5ms) CREATE TABLE "snf_core_categories" ("id" bigserial primary key, "name" character varying NOT NULL, "description" character varying, "parent_id" bigint, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, CONSTRAINT "fk_rails_26a925b05d"
4522
+ FOREIGN KEY ("parent_id")
4523
+ REFERENCES "snf_core_categories" ("id")
4524
+ ) /*application='Dummy'*/
4525
+  (0.4ms) CREATE INDEX "index_snf_core_categories_on_parent_id" ON "snf_core_categories" ("parent_id") /*application='Dummy'*/
4526
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250226064444') RETURNING "version" /*application='Dummy'*/
4527
+ TRANSACTION (0.2ms) COMMIT /*application='Dummy'*/
4528
+ Migrating to CreateSnfCoreBusinesses (20250226080323)
4529
+ TRANSACTION (0.2ms) BEGIN /*application='Dummy'*/
4530
+  (1.7ms) CREATE TABLE "snf_core_businesses" ("id" bigserial primary key, "user_id" bigint NOT NULL, "business_name" character varying NOT NULL, "tin_number" character varying NOT NULL, "business_type" integer NOT NULL, "verified_at" timestamp(6), "verification_status" integer DEFAULT 0 NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, CONSTRAINT "fk_rails_a61edcbd4b"
4531
+ FOREIGN KEY ("user_id")
4532
+ REFERENCES "snf_core_users" ("id")
4533
+ ) /*application='Dummy'*/
4534
+  (0.4ms) CREATE INDEX "index_snf_core_businesses_on_user_id" ON "snf_core_businesses" ("user_id") /*application='Dummy'*/
4535
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250226080323') RETURNING "version" /*application='Dummy'*/
4536
+ TRANSACTION (0.1ms) COMMIT /*application='Dummy'*/
4537
+ Migrating to CreateSnfCoreBusinessDocuments (20250226102931)
4538
+ TRANSACTION (0.2ms) BEGIN /*application='Dummy'*/
4539
+  (1.3ms) CREATE TABLE "snf_core_business_documents" ("id" bigserial primary key, "business_id" bigint NOT NULL, "document_type" integer NOT NULL, "verified_at" timestamp(6), "verified_by_id" bigint, "uploaded_at" timestamp(6), "is_verified" boolean DEFAULT FALSE NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, CONSTRAINT "fk_rails_1efd7338ed"
4540
+ FOREIGN KEY ("business_id")
4541
+ REFERENCES "snf_core_businesses" ("id")
4542
+ , CONSTRAINT "fk_rails_a6157021cc"
4543
+ FOREIGN KEY ("verified_by_id")
4544
+ REFERENCES "snf_core_users" ("id")
4545
+ ) /*application='Dummy'*/
4546
+  (0.3ms) CREATE INDEX "index_snf_core_business_documents_on_business_id" ON "snf_core_business_documents" ("business_id") /*application='Dummy'*/
4547
+  (0.4ms) CREATE INDEX "index_snf_core_business_documents_on_verified_by_id" ON "snf_core_business_documents" ("verified_by_id") /*application='Dummy'*/
4548
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250226102931') RETURNING "version" /*application='Dummy'*/
4549
+ TRANSACTION (0.3ms) COMMIT /*application='Dummy'*/
4550
+ Migrating to CreateSnfCoreAddresses (20250226110217)
4551
+ TRANSACTION (0.2ms) BEGIN /*application='Dummy'*/
4552
+  (1.9ms) CREATE TABLE "snf_core_addresses" ("id" bigserial primary key, "address_type" character varying NOT NULL, "city" character varying NOT NULL, "sub_city" character varying NOT NULL, "woreda" character varying, "latitude" decimal NOT NULL, "longitude" decimal NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4553
+ ActiveRecord::SchemaMigration Create (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250226110217') RETURNING "version" /*application='Dummy'*/
4554
+ TRANSACTION (0.1ms) COMMIT /*application='Dummy'*/
4555
+ Migrating to CreateSnfCoreStores (20250226115215)
4556
+ TRANSACTION (0.1ms) BEGIN /*application='Dummy'*/
4557
+  (1.5ms) CREATE TABLE "snf_core_stores" ("id" bigserial primary key, "name" character varying NOT NULL, "email" character varying, "operational_status" integer DEFAULT 1 NOT NULL, "business_id" bigint NOT NULL, "address_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, CONSTRAINT "fk_rails_e100fc7454"
4558
+ FOREIGN KEY ("business_id")
4559
+ REFERENCES "snf_core_businesses" ("id")
4560
+ , CONSTRAINT "fk_rails_421441da8e"
4561
+ FOREIGN KEY ("address_id")
4562
+ REFERENCES "snf_core_addresses" ("id")
4563
+ ) /*application='Dummy'*/
4564
+  (0.4ms) CREATE INDEX "index_snf_core_stores_on_business_id" ON "snf_core_stores" ("business_id") /*application='Dummy'*/
4565
+  (0.3ms) CREATE INDEX "index_snf_core_stores_on_address_id" ON "snf_core_stores" ("address_id") /*application='Dummy'*/
4566
+ ActiveRecord::SchemaMigration Create (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250226115215') RETURNING "version" /*application='Dummy'*/
4567
+ TRANSACTION (0.2ms) COMMIT /*application='Dummy'*/
4568
+ Migrating to CreateActiveStorageTables (20250226123213)
4569
+ TRANSACTION (0.2ms) BEGIN /*application='Dummy'*/
4570
+  (1.9ms) CREATE TABLE "active_storage_blobs" ("id" bigserial primary key, "key" character varying NOT NULL, "filename" character varying NOT NULL, "content_type" character varying, "metadata" text, "service_name" character varying NOT NULL, "byte_size" bigint NOT NULL, "checksum" character varying, "created_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4571
+  (0.4ms) CREATE UNIQUE INDEX "index_active_storage_blobs_on_key" ON "active_storage_blobs" ("key") /*application='Dummy'*/
4572
+  (2.0ms) CREATE TABLE "active_storage_attachments" ("id" bigserial primary key, "name" character varying NOT NULL, "record_type" character varying NOT NULL, "record_id" bigint NOT NULL, "blob_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, CONSTRAINT "fk_rails_c3b3935057"
4573
+ FOREIGN KEY ("blob_id")
4574
+ REFERENCES "active_storage_blobs" ("id")
4575
+ ) /*application='Dummy'*/
4576
+  (0.6ms) CREATE INDEX "index_active_storage_attachments_on_blob_id" ON "active_storage_attachments" ("blob_id") /*application='Dummy'*/
4577
+  (0.7ms) CREATE UNIQUE INDEX "index_active_storage_attachments_uniqueness" ON "active_storage_attachments" ("record_type", "record_id", "name", "blob_id") /*application='Dummy'*/
4578
+  (1.3ms) CREATE TABLE "active_storage_variant_records" ("id" bigserial primary key, "blob_id" bigint NOT NULL, "variation_digest" character varying NOT NULL, CONSTRAINT "fk_rails_993965df05"
4579
+ FOREIGN KEY ("blob_id")
4580
+ REFERENCES "active_storage_blobs" ("id")
4581
+ ) /*application='Dummy'*/
4582
+  (1.6ms) CREATE UNIQUE INDEX "index_active_storage_variant_records_uniqueness" ON "active_storage_variant_records" ("blob_id", "variation_digest") /*application='Dummy'*/
4583
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250226123213') RETURNING "version" /*application='Dummy'*/
4584
+ TRANSACTION (0.2ms) COMMIT /*application='Dummy'*/
4585
+ Migrating to CreateSnfCoreProducts (20250226181007)
4586
+ TRANSACTION (0.3ms) BEGIN /*application='Dummy'*/
4587
+  (3.1ms) CREATE TABLE "snf_core_products" ("id" bigserial primary key, "sku" character varying NOT NULL, "name" character varying NOT NULL, "description" character varying, "category_id" bigint NOT NULL, "base_price" float, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, CONSTRAINT "fk_rails_a0ba3fa883"
4588
+ FOREIGN KEY ("category_id")
4589
+ REFERENCES "snf_core_categories" ("id")
4590
+ ) /*application='Dummy'*/
4591
+  (0.5ms) CREATE INDEX "index_snf_core_products_on_category_id" ON "snf_core_products" ("category_id") /*application='Dummy'*/
4592
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250226181007') RETURNING "version" /*application='Dummy'*/
4593
+ TRANSACTION (0.3ms) COMMIT /*application='Dummy'*/
4594
+ Migrating to CreateSnfCoreStoreInventories (20250226190000)
4595
+ TRANSACTION (1.7ms) BEGIN /*application='Dummy'*/
4596
+  (2.2ms) CREATE TABLE "snf_core_store_inventories" ("id" bigserial primary key, "store_id" bigint NOT NULL, "product_id" bigint NOT NULL, "stock_quantity" integer DEFAULT 0 NOT NULL, "base_price" decimal(10,2) NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, CONSTRAINT "fk_rails_2ca88d30e2"
4597
+ FOREIGN KEY ("store_id")
4598
+ REFERENCES "snf_core_stores" ("id")
4599
+ , CONSTRAINT "fk_rails_15fb263e75"
4600
+ FOREIGN KEY ("product_id")
4601
+ REFERENCES "snf_core_products" ("id")
4602
+ ) /*application='Dummy'*/
4603
+  (0.5ms) CREATE INDEX "index_snf_core_store_inventories_on_store_id" ON "snf_core_store_inventories" ("store_id") /*application='Dummy'*/
4604
+  (0.6ms) CREATE INDEX "index_snf_core_store_inventories_on_product_id" ON "snf_core_store_inventories" ("product_id") /*application='Dummy'*/
4605
+  (0.4ms) CREATE UNIQUE INDEX "index_snf_core_store_inventories_on_store_id_and_product_id" ON "snf_core_store_inventories" ("store_id", "product_id") /*application='Dummy'*/
4606
+ ActiveRecord::SchemaMigration Create (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250226190000') RETURNING "version" /*application='Dummy'*/
4607
+ TRANSACTION (10.5ms) COMMIT /*application='Dummy'*/
4608
+ Migrating to CreateSnfCoreGroups (20250226192104)
4609
+ TRANSACTION (0.3ms) BEGIN /*application='Dummy'*/
4610
+  (3.1ms) CREATE TABLE "snf_core_groups" ("id" bigserial primary key, "name" character varying NOT NULL, "business_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, CONSTRAINT "fk_rails_c52b27ad67"
4611
+ FOREIGN KEY ("business_id")
4612
+ REFERENCES "snf_core_businesses" ("id")
4613
+ ) /*application='Dummy'*/
4614
+  (0.5ms) CREATE INDEX "index_snf_core_groups_on_business_id" ON "snf_core_groups" ("business_id") /*application='Dummy'*/
4615
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250226192104') RETURNING "version" /*application='Dummy'*/
4616
+ TRANSACTION (0.3ms) COMMIT /*application='Dummy'*/
4617
+ Migrating to CreateSnfCoreCustomerGroups (20250226193938)
4618
+ TRANSACTION (0.4ms) BEGIN /*application='Dummy'*/
4619
+  (4.6ms) CREATE TABLE "snf_core_customer_groups" ("id" bigserial primary key, "discount_code" character varying, "expire_date" timestamp(6), "is_used" boolean, "group_id" bigint NOT NULL, "customer_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, CONSTRAINT "fk_rails_9c45f4015a"
4620
+ FOREIGN KEY ("group_id")
4621
+ REFERENCES "snf_core_groups" ("id")
4622
+ , CONSTRAINT "fk_rails_792eb3404d"
4623
+ FOREIGN KEY ("customer_id")
4624
+ REFERENCES "snf_core_users" ("id")
4625
+ ) /*application='Dummy'*/
4626
+  (0.5ms) CREATE INDEX "index_snf_core_customer_groups_on_group_id" ON "snf_core_customer_groups" ("group_id") /*application='Dummy'*/
4627
+  (0.5ms) CREATE INDEX "index_snf_core_customer_groups_on_customer_id" ON "snf_core_customer_groups" ("customer_id") /*application='Dummy'*/
4628
+ ActiveRecord::SchemaMigration Create (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250226193938') RETURNING "version" /*application='Dummy'*/
4629
+ TRANSACTION (0.3ms) COMMIT /*application='Dummy'*/
4630
+ Migrating to CreateSnfCoreWallets (20250227075048)
4631
+ TRANSACTION (1.2ms) BEGIN /*application='Dummy'*/
4632
+  (1.2ms) CREATE TABLE "snf_core_wallets" ("id" bigserial primary key, "user_id" bigint NOT NULL, "wallet_number" character varying NOT NULL, "balance" decimal NOT NULL, "is_active" boolean DEFAULT TRUE NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, CONSTRAINT "fk_rails_77c94979ce"
4633
+ FOREIGN KEY ("user_id")
4634
+ REFERENCES "snf_core_users" ("id")
4635
+ ) /*application='Dummy'*/
4636
+  (0.4ms) CREATE INDEX "index_snf_core_wallets_on_user_id" ON "snf_core_wallets" ("user_id") /*application='Dummy'*/
4637
+  (0.4ms) CREATE UNIQUE INDEX "index_snf_core_wallets_on_wallet_number" ON "snf_core_wallets" ("wallet_number") /*application='Dummy'*/
4638
+ ActiveRecord::SchemaMigration Create (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250227075048') RETURNING "version" /*application='Dummy'*/
4639
+ TRANSACTION (0.1ms) COMMIT /*application='Dummy'*/
4640
+ Migrating to ModifyStoreInventories (20250227102833)
4641
+ TRANSACTION (0.2ms) BEGIN /*application='Dummy'*/
4642
+  (1.0ms) ALTER TABLE "snf_core_store_inventories" DROP COLUMN "stock_quantity" /*application='Dummy'*/
4643
+  (0.5ms) ALTER TABLE "snf_core_store_inventories" ADD "status" integer DEFAULT 0 NOT NULL /*application='Dummy'*/
4644
+ ActiveRecord::SchemaMigration Create (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250227102833') RETURNING "version" /*application='Dummy'*/
4645
+ TRANSACTION (0.3ms) COMMIT /*application='Dummy'*/
4646
+ Migrating to CreateSnfCoreOrders (20250305165926)
4647
+ TRANSACTION (0.1ms) BEGIN /*application='Dummy'*/
4648
+  (1.6ms) CREATE TABLE "snf_core_orders" ("id" bigserial primary key, "user_id" bigint NOT NULL, "store_id" bigint NOT NULL, "status" integer DEFAULT 1 NOT NULL, "total_amount" decimal DEFAULT 0.0 NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, CONSTRAINT "fk_rails_45b78fb6f9"
4649
+ FOREIGN KEY ("user_id")
4650
+ REFERENCES "snf_core_users" ("id")
4651
+ , CONSTRAINT "fk_rails_400cf2029c"
4652
+ FOREIGN KEY ("store_id")
4653
+ REFERENCES "snf_core_stores" ("id")
4654
+ ) /*application='Dummy'*/
4655
+  (0.3ms) CREATE INDEX "index_snf_core_orders_on_user_id" ON "snf_core_orders" ("user_id") /*application='Dummy'*/
4656
+  (0.4ms) CREATE INDEX "index_snf_core_orders_on_store_id" ON "snf_core_orders" ("store_id") /*application='Dummy'*/
4657
+ ActiveRecord::SchemaMigration Create (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250305165926') RETURNING "version" /*application='Dummy'*/
4658
+ TRANSACTION (0.3ms) COMMIT /*application='Dummy'*/
4659
+ Migrating to CreateSnfCoreOrderItems (20250305170248)
4660
+ TRANSACTION (0.2ms) BEGIN /*application='Dummy'*/
4661
+  (1.9ms) CREATE TABLE "snf_core_order_items" ("id" bigserial primary key, "order_id" bigint NOT NULL, "store_inventory_id" bigint NOT NULL, "quantity" integer NOT NULL, "unit_price" decimal NOT NULL, "subtotal" decimal NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, CONSTRAINT "fk_rails_1f4046ba92"
4662
+ FOREIGN KEY ("order_id")
4663
+ REFERENCES "snf_core_orders" ("id")
4664
+ , CONSTRAINT "fk_rails_50419437e9"
4665
+ FOREIGN KEY ("store_inventory_id")
4666
+ REFERENCES "snf_core_store_inventories" ("id")
4667
+ ) /*application='Dummy'*/
4668
+  (0.3ms) CREATE INDEX "index_snf_core_order_items_on_order_id" ON "snf_core_order_items" ("order_id") /*application='Dummy'*/
4669
+  (0.4ms) CREATE INDEX "index_snf_core_order_items_on_store_inventory_id" ON "snf_core_order_items" ("store_inventory_id") /*application='Dummy'*/
4670
+ ActiveRecord::SchemaMigration Create (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250305170248') RETURNING "version" /*application='Dummy'*/
4671
+ TRANSACTION (0.1ms) COMMIT /*application='Dummy'*/
4672
+ Migrating to CreateSnfCoreDeliveryOrders (20250305201008)
4673
+ TRANSACTION (1.7ms) BEGIN /*application='Dummy'*/
4674
+  (3.7ms) CREATE TABLE "snf_core_delivery_orders" ("id" bigserial primary key, "order_id" bigint NOT NULL, "delivery_address" character varying NOT NULL, "contact_phone" character varying NOT NULL, "delivery_notes" text NOT NULL, "estimated_delivery_time" timestamp(6) NOT NULL, "actual_delivery_time" timestamp(6), "status" integer NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, CONSTRAINT "fk_rails_450d17b1b2"
4675
+ FOREIGN KEY ("order_id")
4676
+ REFERENCES "snf_core_orders" ("id")
4677
+ ) /*application='Dummy'*/
4678
+  (0.5ms) CREATE INDEX "index_snf_core_delivery_orders_on_order_id" ON "snf_core_delivery_orders" ("order_id") /*application='Dummy'*/
4679
+ ActiveRecord::SchemaMigration Create (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250305201008') RETURNING "version" /*application='Dummy'*/
4680
+ TRANSACTION (0.3ms) COMMIT /*application='Dummy'*/
4681
+ Migrating to CreateSnfCoreRoles (20250305232529)
4682
+ TRANSACTION (1.7ms) BEGIN /*application='Dummy'*/
4683
+  (3.1ms) CREATE TABLE "snf_core_roles" ("id" bigserial primary key, "name" character varying NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4684
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250305232529') RETURNING "version" /*application='Dummy'*/
4685
+ TRANSACTION (0.1ms) COMMIT /*application='Dummy'*/
4686
+ Migrating to CreateSnfCoreUserRoles (20250305232530)
4687
+ TRANSACTION (2.9ms) BEGIN /*application='Dummy'*/
4688
+  (4.4ms) CREATE TABLE "snf_core_user_roles" ("id" bigserial primary key, "user_id" bigint NOT NULL, "role_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, CONSTRAINT "fk_rails_9ad2e78133"
4689
+ FOREIGN KEY ("user_id")
4690
+ REFERENCES "snf_core_users" ("id")
4691
+ , CONSTRAINT "fk_rails_0e70d7ce00"
4692
+ FOREIGN KEY ("role_id")
4693
+ REFERENCES "snf_core_roles" ("id")
4694
+ ) /*application='Dummy'*/
4695
+  (0.5ms) CREATE INDEX "index_snf_core_user_roles_on_user_id" ON "snf_core_user_roles" ("user_id") /*application='Dummy'*/
4696
+  (0.4ms) CREATE INDEX "index_snf_core_user_roles_on_role_id" ON "snf_core_user_roles" ("role_id") /*application='Dummy'*/
4697
+ ActiveRecord::SchemaMigration Create (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250305232530') RETURNING "version" /*application='Dummy'*/
4698
+ TRANSACTION (0.3ms) COMMIT /*application='Dummy'*/
4699
+ Migrating to AddPasswordFieldsToSnfCoreUsers (20250306074713)
4700
+ TRANSACTION (1.4ms) BEGIN /*application='Dummy'*/
4701
+  (2.0ms) ALTER TABLE "snf_core_users" ADD "password_digest" character varying NOT NULL /*application='Dummy'*/
4702
+  (0.3ms) ALTER TABLE "snf_core_users" ADD "password_changed" boolean DEFAULT FALSE /*application='Dummy'*/
4703
+  (0.2ms) ALTER TABLE "snf_core_users" ADD "reset_password_token" character varying /*application='Dummy'*/
4704
+ ActiveRecord::SchemaMigration Create (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250306074713') RETURNING "version" /*application='Dummy'*/
4705
+ TRANSACTION (0.1ms) COMMIT /*application='Dummy'*/
4706
+ Migrating to CreateSnfCoreVirtualAccounts (20250310122954)
4707
+ TRANSACTION (0.1ms) BEGIN /*application='Dummy'*/
4708
+  (1.7ms) CREATE TABLE "snf_core_virtual_accounts" ("id" bigserial primary key, "user_id" bigint NOT NULL, "account_number" character varying(11) NOT NULL, "cbs_account_number" character varying NOT NULL, "balance" decimal DEFAULT 0.0 NOT NULL, "interest_rate" decimal DEFAULT 0.0 NOT NULL, "interest_type" integer DEFAULT 0 NOT NULL, "active" boolean DEFAULT TRUE NOT NULL, "branch_code" character varying(3) NOT NULL, "product_scheme" character varying(1) NOT NULL, "voucher_type" character varying(1) NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, CONSTRAINT "fk_rails_5b22a265fb"
4709
+ FOREIGN KEY ("user_id")
4710
+ REFERENCES "snf_core_users" ("id")
4711
+ ) /*application='Dummy'*/
4712
+  (0.4ms) CREATE INDEX "index_snf_core_virtual_accounts_on_user_id" ON "snf_core_virtual_accounts" ("user_id") /*application='Dummy'*/
4713
+  (0.4ms) CREATE UNIQUE INDEX "index_snf_core_virtual_accounts_on_account_number" ON "snf_core_virtual_accounts" ("account_number") /*application='Dummy'*/
4714
+  (0.4ms) CREATE UNIQUE INDEX "index_snf_core_virtual_accounts_on_cbs_account_number" ON "snf_core_virtual_accounts" ("cbs_account_number") /*application='Dummy'*/
4715
+  (0.4ms) CREATE INDEX "idx_on_branch_code_product_scheme_voucher_type_b7038b3d5f" ON "snf_core_virtual_accounts" ("branch_code", "product_scheme", "voucher_type") /*application='Dummy'*/
4716
+ ActiveRecord::SchemaMigration Create (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250310122954') RETURNING "version" /*application='Dummy'*/
4717
+ TRANSACTION (0.1ms) COMMIT /*application='Dummy'*/
4718
+ Migrating to AddKycAttributesToUser (20250310123127)
4719
+ TRANSACTION (0.2ms) BEGIN /*application='Dummy'*/
4720
+  (0.8ms) ALTER TABLE "snf_core_users" ADD "date_of_birth" date NOT NULL /*application='Dummy'*/
4721
+  (0.1ms) ALTER TABLE "snf_core_users" ADD "nationality" character varying NOT NULL /*application='Dummy'*/
4722
+  (0.3ms) ALTER TABLE "snf_core_users" ADD "occupation" character varying /*application='Dummy'*/
4723
+  (0.1ms) ALTER TABLE "snf_core_users" ADD "source_of_funds" character varying /*application='Dummy'*/
4724
+  (0.1ms) ALTER TABLE "snf_core_users" ADD "kyc_status" integer /*application='Dummy'*/
4725
+  (0.1ms) ALTER TABLE "snf_core_users" ADD "gender" integer /*application='Dummy'*/
4726
+  (0.1ms) ALTER TABLE "snf_core_users" ADD "verified_at" timestamp(6) /*application='Dummy'*/
4727
+  (0.1ms) ALTER TABLE "snf_core_users" ADD "verified_by_id" bigint /*application='Dummy'*/
4728
+  (0.1ms) ALTER TABLE "snf_core_addresses" ADD "house_number" character varying /*application='Dummy'*/
4729
+  (0.1ms) ALTER TABLE "snf_core_users" ADD "address_id" bigint /*application='Dummy'*/
4730
+  (0.8ms) ALTER TABLE "snf_core_users" ADD CONSTRAINT "fk_rails_e672dea3f8"
4731
+ FOREIGN KEY ("verified_by_id")
4732
+ REFERENCES "snf_core_users" ("id")
4733
+ ON DELETE SET NULL /*application='Dummy'*/
4734
+  (0.4ms) ALTER TABLE "snf_core_users" ADD CONSTRAINT "fk_rails_aaf9dcb5a5"
4735
+ FOREIGN KEY ("address_id")
4736
+ REFERENCES "snf_core_addresses" ("id")
4737
+ /*application='Dummy'*/
4738
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250310123127') RETURNING "version" /*application='Dummy'*/
4739
+ TRANSACTION (0.2ms) COMMIT /*application='Dummy'*/
4740
+ Migrating to CreateSnfCoreVirtualAccountTransactions (20250310133249)
4741
+ TRANSACTION (0.1ms) BEGIN /*application='Dummy'*/
4742
+  (3.2ms) CREATE TABLE "snf_core_virtual_account_transactions" ("id" bigserial primary key, "from_account_id" bigint, "to_account_id" bigint, "amount" decimal NOT NULL, "transaction_type" integer NOT NULL, "status" integer DEFAULT 0 NOT NULL, "reference_number" character varying NOT NULL, "description" text, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, CONSTRAINT "fk_rails_746fa19f46"
4743
+ FOREIGN KEY ("from_account_id")
4744
+ REFERENCES "snf_core_virtual_accounts" ("id")
4745
+ , CONSTRAINT "fk_rails_87430c1b60"
4746
+ FOREIGN KEY ("to_account_id")
4747
+ REFERENCES "snf_core_virtual_accounts" ("id")
4748
+ ) /*application='Dummy'*/
4749
+  (0.4ms) CREATE INDEX "index_snf_core_virtual_account_transactions_on_from_account_id" ON "snf_core_virtual_account_transactions" ("from_account_id") /*application='Dummy'*/
4750
+  (0.6ms) CREATE INDEX "index_snf_core_virtual_account_transactions_on_to_account_id" ON "snf_core_virtual_account_transactions" ("to_account_id") /*application='Dummy'*/
4751
+  (0.3ms) CREATE UNIQUE INDEX "idx_on_reference_number_bd9be00f20" ON "snf_core_virtual_account_transactions" ("reference_number") /*application='Dummy'*/
4752
+  (0.3ms) CREATE INDEX "index_snf_core_virtual_account_transactions_on_created_at" ON "snf_core_virtual_account_transactions" ("created_at") /*application='Dummy'*/
4753
+ ActiveRecord::SchemaMigration Create (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250310133249') RETURNING "version" /*application='Dummy'*/
4754
+ TRANSACTION (0.2ms) COMMIT /*application='Dummy'*/
4755
+ Migrating to CreateSnfCoreAccountTransfers (20250311000000)
4756
+ TRANSACTION (0.2ms) BEGIN /*application='Dummy'*/
4757
+  (1.3ms) CREATE TABLE "snf_core_account_transfers" ("id" bigserial primary key, "source_account_type" character varying NOT NULL, "source_account_id" bigint NOT NULL, "destination_account_type" character varying NOT NULL, "destination_account_id" bigint NOT NULL, "user_id" bigint NOT NULL, "amount" decimal(15,2) NOT NULL, "reference_number" character varying NOT NULL, "status" integer DEFAULT 0 NOT NULL, "transfer_type" integer NOT NULL, "description" text, "failure_reason" text, "completed_at" timestamp(6), "reversal_transfer_id" bigint, "cbs_response_data" jsonb, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, CONSTRAINT "fk_rails_0d109a55ef"
4758
+ FOREIGN KEY ("user_id")
4759
+ REFERENCES "snf_core_users" ("id")
4760
+ ) /*application='Dummy'*/
4761
+  (0.3ms) CREATE INDEX "index_snf_core_account_transfers_on_source_account" ON "snf_core_account_transfers" ("source_account_type", "source_account_id") /*application='Dummy'*/
4762
+  (0.5ms) CREATE INDEX "index_snf_core_account_transfers_on_destination_account" ON "snf_core_account_transfers" ("destination_account_type", "destination_account_id") /*application='Dummy'*/
4763
+  (0.5ms) CREATE INDEX "index_snf_core_account_transfers_on_user_id" ON "snf_core_account_transfers" ("user_id") /*application='Dummy'*/
4764
+  (0.4ms) CREATE UNIQUE INDEX "index_snf_core_account_transfers_on_reference_number" ON "snf_core_account_transfers" ("reference_number") /*application='Dummy'*/
4765
+  (0.4ms) CREATE INDEX "index_snf_core_account_transfers_on_reversal_transfer_id" ON "snf_core_account_transfers" ("reversal_transfer_id") /*application='Dummy'*/
4766
+ ActiveRecord::SchemaMigration Create (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250311000000') RETURNING "version" /*application='Dummy'*/
4767
+ TRANSACTION (0.3ms) COMMIT /*application='Dummy'*/
4768
+  (0.3ms) SELECT pg_advisory_unlock(869468062957908540) /*application='Dummy'*/
4769
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
4770
+ ActiveRecord::SchemaMigration Load (11.6ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
4771
+ ActiveRecord::InternalMetadata Load (1.1ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
4772
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
4773
+ ActiveRecord::InternalMetadata Load (0.2ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
4774
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
4775
+ ActiveRecord::InternalMetadata Load (0.1ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
4776
+ SQL (0.1ms) SET search_path TO public /*application='Dummy'*/
4777
+  (104.4ms) DROP DATABASE IF EXISTS "snf_test" /*application='Dummy'*/
4778
+  (151.8ms) CREATE DATABASE "snf_test" ENCODING = 'unicode' /*application='Dummy'*/
4779
+ SQL (30.7ms) CREATE EXTENSION IF NOT EXISTS "plpgsql" SCHEMA pg_catalog /*application='Dummy'*/
4780
+  (0.4ms) DROP TABLE IF EXISTS "active_storage_attachments" CASCADE /*application='Dummy'*/
4781
+  (14.6ms) CREATE TABLE "active_storage_attachments" ("id" bigserial primary key, "name" character varying NOT NULL, "record_type" character varying NOT NULL, "record_id" bigint NOT NULL, "blob_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4782
+  (1.2ms) CREATE INDEX "index_active_storage_attachments_on_blob_id" ON "active_storage_attachments" ("blob_id") /*application='Dummy'*/
4783
+  (1.4ms) CREATE UNIQUE INDEX "index_active_storage_attachments_uniqueness" ON "active_storage_attachments" ("record_type", "record_id", "name", "blob_id") /*application='Dummy'*/
4784
+  (0.2ms) DROP TABLE IF EXISTS "active_storage_blobs" CASCADE /*application='Dummy'*/
4785
+  (2.3ms) CREATE TABLE "active_storage_blobs" ("id" bigserial primary key, "key" character varying NOT NULL, "filename" character varying NOT NULL, "content_type" character varying, "metadata" text, "service_name" character varying NOT NULL, "byte_size" bigint NOT NULL, "checksum" character varying, "created_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4786
+  (1.0ms) CREATE UNIQUE INDEX "index_active_storage_blobs_on_key" ON "active_storage_blobs" ("key") /*application='Dummy'*/
4787
+  (0.2ms) DROP TABLE IF EXISTS "active_storage_variant_records" CASCADE /*application='Dummy'*/
4788
+  (3.0ms) CREATE TABLE "active_storage_variant_records" ("id" bigserial primary key, "blob_id" bigint NOT NULL, "variation_digest" character varying NOT NULL) /*application='Dummy'*/
4789
+  (1.0ms) CREATE UNIQUE INDEX "index_active_storage_variant_records_uniqueness" ON "active_storage_variant_records" ("blob_id", "variation_digest") /*application='Dummy'*/
4790
+  (0.3ms) DROP TABLE IF EXISTS "snf_core_account_transfers" CASCADE /*application='Dummy'*/
4791
+  (3.0ms) CREATE TABLE "snf_core_account_transfers" ("id" bigserial primary key, "source_account_type" character varying NOT NULL, "source_account_id" bigint NOT NULL, "destination_account_type" character varying NOT NULL, "destination_account_id" bigint NOT NULL, "user_id" bigint NOT NULL, "amount" decimal(15,2) NOT NULL, "reference_number" character varying NOT NULL, "status" integer DEFAULT 0 NOT NULL, "transfer_type" integer NOT NULL, "description" text, "failure_reason" text, "completed_at" timestamp(6), "reversal_transfer_id" bigint, "cbs_response_data" jsonb, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4792
+  (1.0ms) CREATE INDEX "index_snf_core_account_transfers_on_destination_account" ON "snf_core_account_transfers" ("destination_account_type", "destination_account_id") /*application='Dummy'*/
4793
+  (1.0ms) CREATE UNIQUE INDEX "index_snf_core_account_transfers_on_reference_number" ON "snf_core_account_transfers" ("reference_number") /*application='Dummy'*/
4794
+  (0.8ms) CREATE INDEX "index_snf_core_account_transfers_on_reversal_transfer_id" ON "snf_core_account_transfers" ("reversal_transfer_id") /*application='Dummy'*/
4795
+  (0.8ms) CREATE INDEX "index_snf_core_account_transfers_on_source_account" ON "snf_core_account_transfers" ("source_account_type", "source_account_id") /*application='Dummy'*/
4796
+  (0.8ms) CREATE INDEX "index_snf_core_account_transfers_on_user_id" ON "snf_core_account_transfers" ("user_id") /*application='Dummy'*/
4797
+  (0.3ms) DROP TABLE IF EXISTS "snf_core_addresses" CASCADE /*application='Dummy'*/
4798
+  (3.3ms) CREATE TABLE "snf_core_addresses" ("id" bigserial primary key, "address_type" character varying NOT NULL, "city" character varying NOT NULL, "sub_city" character varying NOT NULL, "woreda" character varying, "latitude" decimal NOT NULL, "longitude" decimal NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, "house_number" character varying) /*application='Dummy'*/
4799
+  (0.4ms) DROP TABLE IF EXISTS "snf_core_business_documents" CASCADE /*application='Dummy'*/
4800
+  (2.8ms) CREATE TABLE "snf_core_business_documents" ("id" bigserial primary key, "business_id" bigint NOT NULL, "document_type" integer NOT NULL, "verified_at" timestamp(6), "verified_by_id" bigint, "uploaded_at" timestamp(6), "is_verified" boolean DEFAULT FALSE NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4801
+  (1.1ms) CREATE INDEX "index_snf_core_business_documents_on_business_id" ON "snf_core_business_documents" ("business_id") /*application='Dummy'*/
4802
+  (1.6ms) CREATE INDEX "index_snf_core_business_documents_on_verified_by_id" ON "snf_core_business_documents" ("verified_by_id") /*application='Dummy'*/
4803
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_businesses" CASCADE /*application='Dummy'*/
4804
+  (3.7ms) CREATE TABLE "snf_core_businesses" ("id" bigserial primary key, "user_id" bigint NOT NULL, "business_name" character varying NOT NULL, "tin_number" character varying NOT NULL, "business_type" integer NOT NULL, "verified_at" timestamp(6), "verification_status" integer DEFAULT 0 NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4805
+  (1.1ms) CREATE INDEX "index_snf_core_businesses_on_user_id" ON "snf_core_businesses" ("user_id") /*application='Dummy'*/
4806
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_categories" CASCADE /*application='Dummy'*/
4807
+  (5.1ms) CREATE TABLE "snf_core_categories" ("id" bigserial primary key, "name" character varying NOT NULL, "description" character varying, "parent_id" bigint, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4808
+  (1.3ms) CREATE INDEX "index_snf_core_categories_on_parent_id" ON "snf_core_categories" ("parent_id") /*application='Dummy'*/
4809
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_customer_groups" CASCADE /*application='Dummy'*/
4810
+  (3.7ms) CREATE TABLE "snf_core_customer_groups" ("id" bigserial primary key, "discount_code" character varying, "expire_date" timestamp(6), "is_used" boolean, "group_id" bigint NOT NULL, "customer_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4811
+  (1.9ms) CREATE INDEX "index_snf_core_customer_groups_on_customer_id" ON "snf_core_customer_groups" ("customer_id") /*application='Dummy'*/
4812
+  (1.7ms) CREATE INDEX "index_snf_core_customer_groups_on_group_id" ON "snf_core_customer_groups" ("group_id") /*application='Dummy'*/
4813
+  (0.4ms) DROP TABLE IF EXISTS "snf_core_delivery_orders" CASCADE /*application='Dummy'*/
4814
+  (4.6ms) CREATE TABLE "snf_core_delivery_orders" ("id" bigserial primary key, "order_id" bigint NOT NULL, "delivery_address" character varying NOT NULL, "contact_phone" character varying NOT NULL, "delivery_notes" text NOT NULL, "estimated_delivery_time" timestamp(6) NOT NULL, "actual_delivery_time" timestamp(6), "status" integer NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4815
+  (1.7ms) CREATE INDEX "index_snf_core_delivery_orders_on_order_id" ON "snf_core_delivery_orders" ("order_id") /*application='Dummy'*/
4816
+  (0.3ms) DROP TABLE IF EXISTS "snf_core_groups" CASCADE /*application='Dummy'*/
4817
+  (5.4ms) CREATE TABLE "snf_core_groups" ("id" bigserial primary key, "name" character varying NOT NULL, "business_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4818
+  (1.8ms) CREATE INDEX "index_snf_core_groups_on_business_id" ON "snf_core_groups" ("business_id") /*application='Dummy'*/
4819
+  (0.3ms) DROP TABLE IF EXISTS "snf_core_item_requests" CASCADE /*application='Dummy'*/
4820
+  (6.0ms) CREATE TABLE "snf_core_item_requests" ("id" bigserial primary key, "user_id" bigint NOT NULL, "product_id" bigint NOT NULL, "quantity" integer NOT NULL, "requested_delivery_date" date NOT NULL, "notes" text, "status" integer DEFAULT 0 NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4821
+  (1.6ms) CREATE INDEX "index_snf_core_item_requests_on_product_id" ON "snf_core_item_requests" ("product_id") /*application='Dummy'*/
4822
+  (1.4ms) CREATE INDEX "index_snf_core_item_requests_on_user_id" ON "snf_core_item_requests" ("user_id") /*application='Dummy'*/
4823
+  (0.3ms) DROP TABLE IF EXISTS "snf_core_order_items" CASCADE /*application='Dummy'*/
4824
+  (4.8ms) CREATE TABLE "snf_core_order_items" ("id" bigserial primary key, "order_id" bigint NOT NULL, "store_inventory_id" bigint NOT NULL, "quantity" integer NOT NULL, "unit_price" decimal NOT NULL, "subtotal" decimal NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4825
+  (2.4ms) CREATE INDEX "index_snf_core_order_items_on_order_id" ON "snf_core_order_items" ("order_id") /*application='Dummy'*/
4826
+  (1.5ms) CREATE INDEX "index_snf_core_order_items_on_store_inventory_id" ON "snf_core_order_items" ("store_inventory_id") /*application='Dummy'*/
4827
+  (0.3ms) DROP TABLE IF EXISTS "snf_core_orders" CASCADE /*application='Dummy'*/
4828
+  (4.9ms) CREATE TABLE "snf_core_orders" ("id" bigserial primary key, "user_id" bigint NOT NULL, "store_id" bigint NOT NULL, "status" integer DEFAULT 1 NOT NULL, "total_amount" decimal DEFAULT 0.0 NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4829
+  (1.3ms) CREATE INDEX "index_snf_core_orders_on_store_id" ON "snf_core_orders" ("store_id") /*application='Dummy'*/
4830
+  (1.5ms) CREATE INDEX "index_snf_core_orders_on_user_id" ON "snf_core_orders" ("user_id") /*application='Dummy'*/
4831
+  (0.3ms) DROP TABLE IF EXISTS "snf_core_products" CASCADE /*application='Dummy'*/
4832
+  (5.1ms) CREATE TABLE "snf_core_products" ("id" bigserial primary key, "sku" character varying NOT NULL, "name" character varying NOT NULL, "description" character varying, "category_id" bigint NOT NULL, "base_price" float, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4833
+  (1.5ms) CREATE INDEX "index_snf_core_products_on_category_id" ON "snf_core_products" ("category_id") /*application='Dummy'*/
4834
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_roles" CASCADE /*application='Dummy'*/
4835
+  (4.8ms) CREATE TABLE "snf_core_roles" ("id" bigserial primary key, "name" character varying NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4836
+  (0.4ms) DROP TABLE IF EXISTS "snf_core_store_inventories" CASCADE /*application='Dummy'*/
4837
+  (4.5ms) CREATE TABLE "snf_core_store_inventories" ("id" bigserial primary key, "store_id" bigint NOT NULL, "product_id" bigint NOT NULL, "base_price" decimal(10,2) NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, "status" integer DEFAULT 0 NOT NULL) /*application='Dummy'*/
4838
+  (2.0ms) CREATE INDEX "index_snf_core_store_inventories_on_product_id" ON "snf_core_store_inventories" ("product_id") /*application='Dummy'*/
4839
+  (2.0ms) CREATE UNIQUE INDEX "index_snf_core_store_inventories_on_store_id_and_product_id" ON "snf_core_store_inventories" ("store_id", "product_id") /*application='Dummy'*/
4840
+  (1.4ms) CREATE INDEX "index_snf_core_store_inventories_on_store_id" ON "snf_core_store_inventories" ("store_id") /*application='Dummy'*/
4841
+  (0.3ms) DROP TABLE IF EXISTS "snf_core_stores" CASCADE /*application='Dummy'*/
4842
+  (6.9ms) CREATE TABLE "snf_core_stores" ("id" bigserial primary key, "name" character varying NOT NULL, "email" character varying, "operational_status" integer DEFAULT 1 NOT NULL, "business_id" bigint NOT NULL, "address_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4843
+  (3.3ms) CREATE INDEX "index_snf_core_stores_on_address_id" ON "snf_core_stores" ("address_id") /*application='Dummy'*/
4844
+  (1.8ms) CREATE INDEX "index_snf_core_stores_on_business_id" ON "snf_core_stores" ("business_id") /*application='Dummy'*/
4845
+  (0.3ms) DROP TABLE IF EXISTS "snf_core_user_roles" CASCADE /*application='Dummy'*/
4846
+  (7.7ms) CREATE TABLE "snf_core_user_roles" ("id" bigserial primary key, "user_id" bigint NOT NULL, "role_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4847
+  (2.6ms) CREATE INDEX "index_snf_core_user_roles_on_role_id" ON "snf_core_user_roles" ("role_id") /*application='Dummy'*/
4848
+  (2.1ms) CREATE INDEX "index_snf_core_user_roles_on_user_id" ON "snf_core_user_roles" ("user_id") /*application='Dummy'*/
4849
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_users" CASCADE /*application='Dummy'*/
4850
+  (6.8ms) CREATE TABLE "snf_core_users" ("id" bigserial primary key, "first_name" character varying NOT NULL, "middle_name" character varying NOT NULL, "last_name" character varying NOT NULL, "email" character varying, "phone_number" character varying NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, "password_digest" character varying NOT NULL, "password_changed" boolean DEFAULT FALSE, "reset_password_token" character varying, "date_of_birth" date NOT NULL, "nationality" character varying NOT NULL, "occupation" character varying, "source_of_funds" character varying, "kyc_status" integer, "gender" integer, "verified_at" timestamp(6), "verified_by_id" bigint, "address_id" bigint) /*application='Dummy'*/
4851
+  (0.5ms) DROP TABLE IF EXISTS "snf_core_virtual_account_transactions" CASCADE /*application='Dummy'*/
4852
+  (5.4ms) CREATE TABLE "snf_core_virtual_account_transactions" ("id" bigserial primary key, "from_account_id" bigint, "to_account_id" bigint, "amount" decimal NOT NULL, "transaction_type" integer NOT NULL, "status" integer DEFAULT 0 NOT NULL, "reference_number" character varying NOT NULL, "description" text, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4853
+  (2.0ms) CREATE INDEX "index_snf_core_virtual_account_transactions_on_created_at" ON "snf_core_virtual_account_transactions" ("created_at") /*application='Dummy'*/
4854
+  (2.2ms) CREATE INDEX "index_snf_core_virtual_account_transactions_on_from_account_id" ON "snf_core_virtual_account_transactions" ("from_account_id") /*application='Dummy'*/
4855
+  (2.2ms) CREATE UNIQUE INDEX "idx_on_reference_number_bd9be00f20" ON "snf_core_virtual_account_transactions" ("reference_number") /*application='Dummy'*/
4856
+  (2.0ms) CREATE INDEX "index_snf_core_virtual_account_transactions_on_to_account_id" ON "snf_core_virtual_account_transactions" ("to_account_id") /*application='Dummy'*/
4857
+  (0.4ms) DROP TABLE IF EXISTS "snf_core_virtual_accounts" CASCADE /*application='Dummy'*/
4858
+  (6.4ms) CREATE TABLE "snf_core_virtual_accounts" ("id" bigserial primary key, "user_id" bigint NOT NULL, "account_number" character varying(11) NOT NULL, "cbs_account_number" character varying NOT NULL, "balance" decimal DEFAULT 0.0 NOT NULL, "interest_rate" decimal DEFAULT 0.0 NOT NULL, "interest_type" integer DEFAULT 0 NOT NULL, "active" boolean DEFAULT TRUE NOT NULL, "branch_code" character varying(3) NOT NULL, "product_scheme" character varying(1) NOT NULL, "voucher_type" character varying(1) NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4859
+  (1.6ms) CREATE UNIQUE INDEX "index_snf_core_virtual_accounts_on_account_number" ON "snf_core_virtual_accounts" ("account_number") /*application='Dummy'*/
4860
+  (2.0ms) CREATE INDEX "idx_on_branch_code_product_scheme_voucher_type_b7038b3d5f" ON "snf_core_virtual_accounts" ("branch_code", "product_scheme", "voucher_type") /*application='Dummy'*/
4861
+  (1.7ms) CREATE UNIQUE INDEX "index_snf_core_virtual_accounts_on_cbs_account_number" ON "snf_core_virtual_accounts" ("cbs_account_number") /*application='Dummy'*/
4862
+  (1.5ms) CREATE INDEX "index_snf_core_virtual_accounts_on_user_id" ON "snf_core_virtual_accounts" ("user_id") /*application='Dummy'*/
4863
+  (0.5ms) DROP TABLE IF EXISTS "snf_core_wallets" CASCADE /*application='Dummy'*/
4864
+  (6.2ms) CREATE TABLE "snf_core_wallets" ("id" bigserial primary key, "user_id" bigint NOT NULL, "wallet_number" character varying NOT NULL, "balance" decimal NOT NULL, "is_active" boolean DEFAULT TRUE NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
4865
+  (1.9ms) CREATE INDEX "index_snf_core_wallets_on_user_id" ON "snf_core_wallets" ("user_id") /*application='Dummy'*/
4866
+  (1.7ms) CREATE UNIQUE INDEX "index_snf_core_wallets_on_wallet_number" ON "snf_core_wallets" ("wallet_number") /*application='Dummy'*/
4867
+  (6.9ms) ALTER TABLE "active_storage_attachments" ADD CONSTRAINT "fk_rails_c3b3935057"
4868
+ FOREIGN KEY ("blob_id")
4869
+ REFERENCES "active_storage_blobs" ("id")
4870
+ /*application='Dummy'*/
4871
+  (2.3ms) ALTER TABLE "active_storage_variant_records" ADD CONSTRAINT "fk_rails_993965df05"
4872
+ FOREIGN KEY ("blob_id")
4873
+ REFERENCES "active_storage_blobs" ("id")
4874
+ /*application='Dummy'*/
4875
+  (4.3ms) ALTER TABLE "snf_core_account_transfers" ADD CONSTRAINT "fk_rails_0d109a55ef"
4876
+ FOREIGN KEY ("user_id")
4877
+ REFERENCES "snf_core_users" ("id")
4878
+ /*application='Dummy'*/
4879
+  (3.0ms) ALTER TABLE "snf_core_business_documents" ADD CONSTRAINT "fk_rails_1efd7338ed"
4880
+ FOREIGN KEY ("business_id")
4881
+ REFERENCES "snf_core_businesses" ("id")
4882
+ /*application='Dummy'*/
4883
+  (2.1ms) ALTER TABLE "snf_core_business_documents" ADD CONSTRAINT "fk_rails_a6157021cc"
4884
+ FOREIGN KEY ("verified_by_id")
4885
+ REFERENCES "snf_core_users" ("id")
4886
+ /*application='Dummy'*/
4887
+  (1.5ms) ALTER TABLE "snf_core_businesses" ADD CONSTRAINT "fk_rails_a61edcbd4b"
4888
+ FOREIGN KEY ("user_id")
4889
+ REFERENCES "snf_core_users" ("id")
4890
+ /*application='Dummy'*/
4891
+  (2.3ms) ALTER TABLE "snf_core_categories" ADD CONSTRAINT "fk_rails_26a925b05d"
4892
+ FOREIGN KEY ("parent_id")
4893
+ REFERENCES "snf_core_categories" ("id")
4894
+ /*application='Dummy'*/
4895
+  (2.5ms) ALTER TABLE "snf_core_customer_groups" ADD CONSTRAINT "fk_rails_9c45f4015a"
4896
+ FOREIGN KEY ("group_id")
4897
+ REFERENCES "snf_core_groups" ("id")
4898
+ /*application='Dummy'*/
4899
+  (1.6ms) ALTER TABLE "snf_core_customer_groups" ADD CONSTRAINT "fk_rails_792eb3404d"
4900
+ FOREIGN KEY ("customer_id")
4901
+ REFERENCES "snf_core_users" ("id")
4902
+ /*application='Dummy'*/
4903
+  (2.1ms) ALTER TABLE "snf_core_delivery_orders" ADD CONSTRAINT "fk_rails_450d17b1b2"
4904
+ FOREIGN KEY ("order_id")
4905
+ REFERENCES "snf_core_orders" ("id")
4906
+ /*application='Dummy'*/
4907
+  (1.9ms) ALTER TABLE "snf_core_groups" ADD CONSTRAINT "fk_rails_c52b27ad67"
4908
+ FOREIGN KEY ("business_id")
4909
+ REFERENCES "snf_core_businesses" ("id")
4910
+ /*application='Dummy'*/
4911
+  (2.8ms) ALTER TABLE "snf_core_item_requests" ADD CONSTRAINT "fk_rails_a718316b94"
4912
+ FOREIGN KEY ("product_id")
4913
+ REFERENCES "snf_core_products" ("id")
4914
+ /*application='Dummy'*/
4915
+  (2.4ms) ALTER TABLE "snf_core_item_requests" ADD CONSTRAINT "fk_rails_0aa2ea2057"
4916
+ FOREIGN KEY ("user_id")
4917
+ REFERENCES "snf_core_users" ("id")
4918
+ /*application='Dummy'*/
4919
+  (2.2ms) ALTER TABLE "snf_core_order_items" ADD CONSTRAINT "fk_rails_1f4046ba92"
4920
+ FOREIGN KEY ("order_id")
4921
+ REFERENCES "snf_core_orders" ("id")
4922
+ /*application='Dummy'*/
4923
+  (2.9ms) ALTER TABLE "snf_core_order_items" ADD CONSTRAINT "fk_rails_50419437e9"
4924
+ FOREIGN KEY ("store_inventory_id")
4925
+ REFERENCES "snf_core_store_inventories" ("id")
4926
+ /*application='Dummy'*/
4927
+  (3.3ms) ALTER TABLE "snf_core_orders" ADD CONSTRAINT "fk_rails_400cf2029c"
4928
+ FOREIGN KEY ("store_id")
4929
+ REFERENCES "snf_core_stores" ("id")
4930
+ /*application='Dummy'*/
4931
+  (2.0ms) ALTER TABLE "snf_core_orders" ADD CONSTRAINT "fk_rails_45b78fb6f9"
4932
+ FOREIGN KEY ("user_id")
4933
+ REFERENCES "snf_core_users" ("id")
4934
+ /*application='Dummy'*/
4935
+  (2.0ms) ALTER TABLE "snf_core_products" ADD CONSTRAINT "fk_rails_a0ba3fa883"
4936
+ FOREIGN KEY ("category_id")
4937
+ REFERENCES "snf_core_categories" ("id")
4938
+ /*application='Dummy'*/
4939
+  (1.9ms) ALTER TABLE "snf_core_store_inventories" ADD CONSTRAINT "fk_rails_15fb263e75"
4940
+ FOREIGN KEY ("product_id")
4941
+ REFERENCES "snf_core_products" ("id")
4942
+ /*application='Dummy'*/
4943
+  (2.3ms) ALTER TABLE "snf_core_store_inventories" ADD CONSTRAINT "fk_rails_2ca88d30e2"
4944
+ FOREIGN KEY ("store_id")
4945
+ REFERENCES "snf_core_stores" ("id")
4946
+ /*application='Dummy'*/
4947
+  (2.2ms) ALTER TABLE "snf_core_stores" ADD CONSTRAINT "fk_rails_421441da8e"
4948
+ FOREIGN KEY ("address_id")
4949
+ REFERENCES "snf_core_addresses" ("id")
4950
+ /*application='Dummy'*/
4951
+  (2.0ms) ALTER TABLE "snf_core_stores" ADD CONSTRAINT "fk_rails_e100fc7454"
4952
+ FOREIGN KEY ("business_id")
4953
+ REFERENCES "snf_core_businesses" ("id")
4954
+ /*application='Dummy'*/
4955
+  (2.6ms) ALTER TABLE "snf_core_user_roles" ADD CONSTRAINT "fk_rails_0e70d7ce00"
4956
+ FOREIGN KEY ("role_id")
4957
+ REFERENCES "snf_core_roles" ("id")
4958
+ /*application='Dummy'*/
4959
+  (2.9ms) ALTER TABLE "snf_core_user_roles" ADD CONSTRAINT "fk_rails_9ad2e78133"
4960
+ FOREIGN KEY ("user_id")
4961
+ REFERENCES "snf_core_users" ("id")
4962
+ /*application='Dummy'*/
4963
+  (2.6ms) ALTER TABLE "snf_core_users" ADD CONSTRAINT "fk_rails_aaf9dcb5a5"
4964
+ FOREIGN KEY ("address_id")
4965
+ REFERENCES "snf_core_addresses" ("id")
4966
+ /*application='Dummy'*/
4967
+  (1.4ms) ALTER TABLE "snf_core_users" ADD CONSTRAINT "fk_rails_e672dea3f8"
4968
+ FOREIGN KEY ("verified_by_id")
4969
+ REFERENCES "snf_core_users" ("id")
4970
+ ON DELETE SET NULL /*application='Dummy'*/
4971
+  (3.8ms) ALTER TABLE "snf_core_virtual_account_transactions" ADD CONSTRAINT "fk_rails_746fa19f46"
4972
+ FOREIGN KEY ("from_account_id")
4973
+ REFERENCES "snf_core_virtual_accounts" ("id")
4974
+ /*application='Dummy'*/
4975
+  (2.0ms) ALTER TABLE "snf_core_virtual_account_transactions" ADD CONSTRAINT "fk_rails_87430c1b60"
4976
+ FOREIGN KEY ("to_account_id")
4977
+ REFERENCES "snf_core_virtual_accounts" ("id")
4978
+ /*application='Dummy'*/
4979
+  (1.2ms) ALTER TABLE "snf_core_virtual_accounts" ADD CONSTRAINT "fk_rails_5b22a265fb"
4980
+ FOREIGN KEY ("user_id")
4981
+ REFERENCES "snf_core_users" ("id")
4982
+ /*application='Dummy'*/
4983
+  (2.9ms) ALTER TABLE "snf_core_wallets" ADD CONSTRAINT "fk_rails_77c94979ce"
4984
+ FOREIGN KEY ("user_id")
4985
+ REFERENCES "snf_core_users" ("id")
4986
+ /*application='Dummy'*/
4987
+  (4.6ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL PRIMARY KEY) /*application='Dummy'*/
4988
+ ActiveRecord::SchemaMigration Load (0.9ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
4989
+  (1.0ms) INSERT INTO "schema_migrations" (version) VALUES (20250310143604) /*application='Dummy'*/
4990
+  (0.8ms) INSERT INTO "schema_migrations" (version) VALUES
4991
+ (20250310133249),
4992
+ (20250310123127),
4993
+ (20250310122954),
4994
+ (20250306074713),
4995
+ (20250305232530),
4996
+ (20250305232529),
4997
+ (20250305201008),
4998
+ (20250305170248),
4999
+ (20250305165926),
5000
+ (20250227102833),
5001
+ (20250227075048),
5002
+ (20250226193938),
5003
+ (20250226192104),
5004
+ (20250226190000),
5005
+ (20250226181007),
5006
+ (20250226123213),
5007
+ (20250226115215),
5008
+ (20250226110217),
5009
+ (20250226102931),
5010
+ (20250226080323),
5011
+ (20250226064444),
5012
+ (20250226042622); /*application='Dummy'*/
5013
+  (3.5ms) CREATE TABLE "ar_internal_metadata" ("key" character varying NOT NULL PRIMARY KEY, "value" character varying, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
5014
+ ActiveRecord::InternalMetadata Load (2.1ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
5015
+ ActiveRecord::InternalMetadata Create (1.0ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ('environment', 'development', '2025-03-11 05:33:57.720037', '2025-03-11 05:33:57.720043') RETURNING "key" /*application='Dummy'*/
5016
+ ActiveRecord::InternalMetadata Load (0.3ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
5017
+ ActiveRecord::InternalMetadata Update (0.6ms) UPDATE "ar_internal_metadata" SET "value" = 'test', "updated_at" = '2025-03-11 05:33:57.726017' WHERE "ar_internal_metadata"."key" = 'environment' /*application='Dummy'*/
5018
+ ActiveRecord::InternalMetadata Load (0.3ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'schema_sha1' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
5019
+ ActiveRecord::InternalMetadata Create (0.4ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ('schema_sha1', '7e43a0aab5cb7a641501ed69b4fc5594386e6a60', '2025-03-11 05:33:57.730255', '2025-03-11 05:33:57.730258') RETURNING "key" /*application='Dummy'*/
5020
+  (0.3ms) SELECT pg_try_advisory_lock(869468062957908540) /*application='Dummy'*/
5021
+ ActiveRecord::SchemaMigration Load (1.5ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
5022
+ ActiveRecord::InternalMetadata Load (3.3ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
5023
+ Migrating to CreateSnfCoreItemRequests (20250310143604)
5024
+ TRANSACTION (0.1ms) BEGIN /*application='Dummy'*/
5025
+  (26.9ms) CREATE TABLE "snf_core_item_requests" ("id" bigserial primary key, "user_id" bigint NOT NULL, "product_id" bigint NOT NULL, "quantity" integer NOT NULL, "requested_delivery_date" date NOT NULL, "notes" text, "status" integer DEFAULT 0 NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, CONSTRAINT "fk_rails_0aa2ea2057"
5026
+ FOREIGN KEY ("user_id")
5027
+ REFERENCES "snf_core_users" ("id")
5028
+ , CONSTRAINT "fk_rails_a718316b94"
5029
+ FOREIGN KEY ("product_id")
5030
+ REFERENCES "snf_core_products" ("id")
5031
+ ) /*application='Dummy'*/
5032
+  (1.9ms) CREATE INDEX "index_snf_core_item_requests_on_user_id" ON "snf_core_item_requests" ("user_id") /*application='Dummy'*/
5033
+  (1.4ms) CREATE INDEX "index_snf_core_item_requests_on_product_id" ON "snf_core_item_requests" ("product_id") /*application='Dummy'*/
5034
+ ActiveRecord::SchemaMigration Create (0.4ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250310143604') RETURNING "version" /*application='Dummy'*/
5035
+ TRANSACTION (0.8ms) COMMIT /*application='Dummy'*/
5036
+  (1.3ms) SELECT pg_advisory_unlock(869468062957908540) /*application='Dummy'*/
5037
+ ActiveRecord::SchemaMigration Load (0.4ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
5038
+ ActiveRecord::SchemaMigration Load (1.5ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
5039
+ ActiveRecord::InternalMetadata Load (1.3ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
5040
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
5041
+ ActiveRecord::InternalMetadata Load (0.3ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
5042
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
5043
+ ActiveRecord::InternalMetadata Load (0.3ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
5044
+ SQL (0.1ms) SET search_path TO public /*application='Dummy'*/
5045
+  (58.7ms) DROP DATABASE IF EXISTS "snf_test" /*application='Dummy'*/
5046
+  (126.8ms) CREATE DATABASE "snf_test" ENCODING = 'unicode' /*application='Dummy'*/
5047
+ SQL (16.6ms) CREATE EXTENSION IF NOT EXISTS "plpgsql" SCHEMA pg_catalog /*application='Dummy'*/
5048
+  (0.1ms) DROP TABLE IF EXISTS "active_storage_attachments" CASCADE /*application='Dummy'*/
5049
+  (5.1ms) CREATE TABLE "active_storage_attachments" ("id" bigserial primary key, "name" character varying NOT NULL, "record_type" character varying NOT NULL, "record_id" bigint NOT NULL, "blob_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL) /*application='Dummy'*/
5050
+  (0.6ms) CREATE INDEX "index_active_storage_attachments_on_blob_id" ON "active_storage_attachments" ("blob_id") /*application='Dummy'*/
5051
+  (0.8ms) CREATE UNIQUE INDEX "index_active_storage_attachments_uniqueness" ON "active_storage_attachments" ("record_type", "record_id", "name", "blob_id") /*application='Dummy'*/
5052
+  (0.1ms) DROP TABLE IF EXISTS "active_storage_blobs" CASCADE /*application='Dummy'*/
5053
+  (4.4ms) CREATE TABLE "active_storage_blobs" ("id" bigserial primary key, "key" character varying NOT NULL, "filename" character varying NOT NULL, "content_type" character varying, "metadata" text, "service_name" character varying NOT NULL, "byte_size" bigint NOT NULL, "checksum" character varying, "created_at" timestamp(6) NOT NULL) /*application='Dummy'*/
5054
+  (0.7ms) CREATE UNIQUE INDEX "index_active_storage_blobs_on_key" ON "active_storage_blobs" ("key") /*application='Dummy'*/
5055
+  (0.2ms) DROP TABLE IF EXISTS "active_storage_variant_records" CASCADE /*application='Dummy'*/
5056
+  (1.3ms) CREATE TABLE "active_storage_variant_records" ("id" bigserial primary key, "blob_id" bigint NOT NULL, "variation_digest" character varying NOT NULL) /*application='Dummy'*/
5057
+  (0.7ms) CREATE UNIQUE INDEX "index_active_storage_variant_records_uniqueness" ON "active_storage_variant_records" ("blob_id", "variation_digest") /*application='Dummy'*/
5058
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_account_transfers" CASCADE /*application='Dummy'*/
5059
+  (2.0ms) CREATE TABLE "snf_core_account_transfers" ("id" bigserial primary key, "source_account_type" character varying NOT NULL, "source_account_id" bigint NOT NULL, "destination_account_type" character varying NOT NULL, "destination_account_id" bigint NOT NULL, "user_id" bigint NOT NULL, "amount" decimal(15,2) NOT NULL, "reference_number" character varying NOT NULL, "status" integer DEFAULT 0 NOT NULL, "transfer_type" integer NOT NULL, "description" text, "failure_reason" text, "completed_at" timestamp(6), "reversal_transfer_id" bigint, "cbs_response_data" jsonb, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
5060
+  (0.6ms) CREATE INDEX "index_snf_core_account_transfers_on_destination_account" ON "snf_core_account_transfers" ("destination_account_type", "destination_account_id") /*application='Dummy'*/
5061
+  (0.6ms) CREATE UNIQUE INDEX "index_snf_core_account_transfers_on_reference_number" ON "snf_core_account_transfers" ("reference_number") /*application='Dummy'*/
5062
+  (0.9ms) CREATE INDEX "index_snf_core_account_transfers_on_reversal_transfer_id" ON "snf_core_account_transfers" ("reversal_transfer_id") /*application='Dummy'*/
5063
+  (0.6ms) CREATE INDEX "index_snf_core_account_transfers_on_source_account" ON "snf_core_account_transfers" ("source_account_type", "source_account_id") /*application='Dummy'*/
5064
+  (0.5ms) CREATE INDEX "index_snf_core_account_transfers_on_user_id" ON "snf_core_account_transfers" ("user_id") /*application='Dummy'*/
5065
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_addresses" CASCADE /*application='Dummy'*/
5066
+  (1.8ms) CREATE TABLE "snf_core_addresses" ("id" bigserial primary key, "address_type" character varying NOT NULL, "city" character varying NOT NULL, "sub_city" character varying NOT NULL, "woreda" character varying, "latitude" decimal NOT NULL, "longitude" decimal NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, "house_number" character varying) /*application='Dummy'*/
5067
+  (0.3ms) DROP TABLE IF EXISTS "snf_core_business_documents" CASCADE /*application='Dummy'*/
5068
+  (1.5ms) CREATE TABLE "snf_core_business_documents" ("id" bigserial primary key, "business_id" bigint NOT NULL, "document_type" integer NOT NULL, "verified_at" timestamp(6), "verified_by_id" bigint, "uploaded_at" timestamp(6), "is_verified" boolean DEFAULT FALSE NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
5069
+  (0.6ms) CREATE INDEX "index_snf_core_business_documents_on_business_id" ON "snf_core_business_documents" ("business_id") /*application='Dummy'*/
5070
+  (0.6ms) CREATE INDEX "index_snf_core_business_documents_on_verified_by_id" ON "snf_core_business_documents" ("verified_by_id") /*application='Dummy'*/
5071
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_businesses" CASCADE /*application='Dummy'*/
5072
+  (2.2ms) CREATE TABLE "snf_core_businesses" ("id" bigserial primary key, "user_id" bigint NOT NULL, "business_name" character varying NOT NULL, "tin_number" character varying NOT NULL, "business_type" integer NOT NULL, "verified_at" timestamp(6), "verification_status" integer DEFAULT 0 NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
5073
+  (0.6ms) CREATE INDEX "index_snf_core_businesses_on_user_id" ON "snf_core_businesses" ("user_id") /*application='Dummy'*/
5074
+  (0.1ms) DROP TABLE IF EXISTS "snf_core_categories" CASCADE /*application='Dummy'*/
5075
+  (2.1ms) CREATE TABLE "snf_core_categories" ("id" bigserial primary key, "name" character varying NOT NULL, "description" character varying, "parent_id" bigint, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
5076
+  (0.8ms) CREATE INDEX "index_snf_core_categories_on_parent_id" ON "snf_core_categories" ("parent_id") /*application='Dummy'*/
5077
+  (0.1ms) DROP TABLE IF EXISTS "snf_core_customer_groups" CASCADE /*application='Dummy'*/
5078
+  (1.5ms) CREATE TABLE "snf_core_customer_groups" ("id" bigserial primary key, "discount_code" character varying, "expire_date" timestamp(6), "is_used" boolean, "group_id" bigint NOT NULL, "customer_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
5079
+  (0.8ms) CREATE INDEX "index_snf_core_customer_groups_on_customer_id" ON "snf_core_customer_groups" ("customer_id") /*application='Dummy'*/
5080
+  (0.9ms) CREATE INDEX "index_snf_core_customer_groups_on_group_id" ON "snf_core_customer_groups" ("group_id") /*application='Dummy'*/
5081
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_delivery_orders" CASCADE /*application='Dummy'*/
5082
+  (1.7ms) CREATE TABLE "snf_core_delivery_orders" ("id" bigserial primary key, "order_id" bigint NOT NULL, "delivery_address" character varying NOT NULL, "contact_phone" character varying NOT NULL, "delivery_notes" text NOT NULL, "estimated_delivery_time" timestamp(6) NOT NULL, "actual_delivery_time" timestamp(6), "status" integer NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
5083
+  (0.8ms) CREATE INDEX "index_snf_core_delivery_orders_on_order_id" ON "snf_core_delivery_orders" ("order_id") /*application='Dummy'*/
5084
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_groups" CASCADE /*application='Dummy'*/
5085
+  (2.2ms) CREATE TABLE "snf_core_groups" ("id" bigserial primary key, "name" character varying NOT NULL, "business_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
5086
+  (0.5ms) CREATE INDEX "index_snf_core_groups_on_business_id" ON "snf_core_groups" ("business_id") /*application='Dummy'*/
5087
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_item_requests" CASCADE /*application='Dummy'*/
5088
+  (2.3ms) CREATE TABLE "snf_core_item_requests" ("id" bigserial primary key, "user_id" bigint NOT NULL, "product_id" bigint NOT NULL, "quantity" integer NOT NULL, "requested_delivery_date" date NOT NULL, "notes" text, "status" integer DEFAULT 0 NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
5089
+  (0.8ms) CREATE INDEX "index_snf_core_item_requests_on_product_id" ON "snf_core_item_requests" ("product_id") /*application='Dummy'*/
5090
+  (0.7ms) CREATE INDEX "index_snf_core_item_requests_on_user_id" ON "snf_core_item_requests" ("user_id") /*application='Dummy'*/
5091
+  (0.1ms) DROP TABLE IF EXISTS "snf_core_order_items" CASCADE /*application='Dummy'*/
5092
+  (1.9ms) CREATE TABLE "snf_core_order_items" ("id" bigserial primary key, "order_id" bigint NOT NULL, "store_inventory_id" bigint NOT NULL, "quantity" integer NOT NULL, "unit_price" decimal NOT NULL, "subtotal" decimal NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
5093
+  (0.8ms) CREATE INDEX "index_snf_core_order_items_on_order_id" ON "snf_core_order_items" ("order_id") /*application='Dummy'*/
5094
+  (0.9ms) CREATE INDEX "index_snf_core_order_items_on_store_inventory_id" ON "snf_core_order_items" ("store_inventory_id") /*application='Dummy'*/
5095
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_orders" CASCADE /*application='Dummy'*/
5096
+  (2.9ms) CREATE TABLE "snf_core_orders" ("id" bigserial primary key, "user_id" bigint NOT NULL, "store_id" bigint NOT NULL, "status" integer DEFAULT 1 NOT NULL, "total_amount" decimal DEFAULT 0.0 NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
5097
+  (0.9ms) CREATE INDEX "index_snf_core_orders_on_store_id" ON "snf_core_orders" ("store_id") /*application='Dummy'*/
5098
+  (0.5ms) CREATE INDEX "index_snf_core_orders_on_user_id" ON "snf_core_orders" ("user_id") /*application='Dummy'*/
5099
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_products" CASCADE /*application='Dummy'*/
5100
+  (2.0ms) CREATE TABLE "snf_core_products" ("id" bigserial primary key, "sku" character varying NOT NULL, "name" character varying NOT NULL, "description" character varying, "category_id" bigint NOT NULL, "base_price" float, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
5101
+  (1.2ms) CREATE INDEX "index_snf_core_products_on_category_id" ON "snf_core_products" ("category_id") /*application='Dummy'*/
5102
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_roles" CASCADE /*application='Dummy'*/
5103
+  (2.2ms) CREATE TABLE "snf_core_roles" ("id" bigserial primary key, "name" character varying NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
5104
+  (0.3ms) DROP TABLE IF EXISTS "snf_core_store_inventories" CASCADE /*application='Dummy'*/
5105
+  (1.4ms) CREATE TABLE "snf_core_store_inventories" ("id" bigserial primary key, "store_id" bigint NOT NULL, "product_id" bigint NOT NULL, "base_price" decimal(10,2) NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, "status" integer DEFAULT 0 NOT NULL) /*application='Dummy'*/
5106
+  (1.0ms) CREATE INDEX "index_snf_core_store_inventories_on_product_id" ON "snf_core_store_inventories" ("product_id") /*application='Dummy'*/
5107
+  (0.8ms) CREATE UNIQUE INDEX "index_snf_core_store_inventories_on_store_id_and_product_id" ON "snf_core_store_inventories" ("store_id", "product_id") /*application='Dummy'*/
5108
+  (0.8ms) CREATE INDEX "index_snf_core_store_inventories_on_store_id" ON "snf_core_store_inventories" ("store_id") /*application='Dummy'*/
5109
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_stores" CASCADE /*application='Dummy'*/
5110
+  (2.1ms) CREATE TABLE "snf_core_stores" ("id" bigserial primary key, "name" character varying NOT NULL, "email" character varying, "operational_status" integer DEFAULT 1 NOT NULL, "business_id" bigint NOT NULL, "address_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
5111
+  (0.9ms) CREATE INDEX "index_snf_core_stores_on_address_id" ON "snf_core_stores" ("address_id") /*application='Dummy'*/
5112
+  (0.9ms) CREATE INDEX "index_snf_core_stores_on_business_id" ON "snf_core_stores" ("business_id") /*application='Dummy'*/
5113
+  (0.1ms) DROP TABLE IF EXISTS "snf_core_user_roles" CASCADE /*application='Dummy'*/
5114
+  (1.8ms) CREATE TABLE "snf_core_user_roles" ("id" bigserial primary key, "user_id" bigint NOT NULL, "role_id" bigint NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
5115
+  (0.6ms) CREATE INDEX "index_snf_core_user_roles_on_role_id" ON "snf_core_user_roles" ("role_id") /*application='Dummy'*/
5116
+  (0.7ms) CREATE INDEX "index_snf_core_user_roles_on_user_id" ON "snf_core_user_roles" ("user_id") /*application='Dummy'*/
5117
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_users" CASCADE /*application='Dummy'*/
5118
+  (3.1ms) CREATE TABLE "snf_core_users" ("id" bigserial primary key, "first_name" character varying NOT NULL, "middle_name" character varying NOT NULL, "last_name" character varying NOT NULL, "email" character varying, "phone_number" character varying NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, "password_digest" character varying NOT NULL, "password_changed" boolean DEFAULT FALSE, "reset_password_token" character varying, "date_of_birth" date NOT NULL, "nationality" character varying NOT NULL, "occupation" character varying, "source_of_funds" character varying, "kyc_status" integer, "gender" integer, "verified_at" timestamp(6), "verified_by_id" bigint, "address_id" bigint) /*application='Dummy'*/
5119
+  (0.5ms) DROP TABLE IF EXISTS "snf_core_virtual_account_transactions" CASCADE /*application='Dummy'*/
5120
+  (3.4ms) CREATE TABLE "snf_core_virtual_account_transactions" ("id" bigserial primary key, "from_account_id" bigint, "to_account_id" bigint, "amount" decimal NOT NULL, "transaction_type" integer NOT NULL, "status" integer DEFAULT 0 NOT NULL, "reference_number" character varying NOT NULL, "description" text, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
5121
+  (1.3ms) CREATE INDEX "index_snf_core_virtual_account_transactions_on_created_at" ON "snf_core_virtual_account_transactions" ("created_at") /*application='Dummy'*/
5122
+  (1.2ms) CREATE INDEX "index_snf_core_virtual_account_transactions_on_from_account_id" ON "snf_core_virtual_account_transactions" ("from_account_id") /*application='Dummy'*/
5123
+  (1.4ms) CREATE UNIQUE INDEX "idx_on_reference_number_bd9be00f20" ON "snf_core_virtual_account_transactions" ("reference_number") /*application='Dummy'*/
5124
+  (1.2ms) CREATE INDEX "index_snf_core_virtual_account_transactions_on_to_account_id" ON "snf_core_virtual_account_transactions" ("to_account_id") /*application='Dummy'*/
5125
+  (0.2ms) DROP TABLE IF EXISTS "snf_core_virtual_accounts" CASCADE /*application='Dummy'*/
5126
+  (6.9ms) CREATE TABLE "snf_core_virtual_accounts" ("id" bigserial primary key, "user_id" bigint NOT NULL, "account_number" character varying(11) NOT NULL, "cbs_account_number" character varying NOT NULL, "balance" decimal DEFAULT 0.0 NOT NULL, "interest_rate" decimal DEFAULT 0.0 NOT NULL, "interest_type" integer DEFAULT 0 NOT NULL, "active" boolean DEFAULT TRUE NOT NULL, "branch_code" character varying(3) NOT NULL, "product_scheme" character varying(1) NOT NULL, "voucher_type" character varying(1) NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
5127
+  (1.7ms) CREATE UNIQUE INDEX "index_snf_core_virtual_accounts_on_account_number" ON "snf_core_virtual_accounts" ("account_number") /*application='Dummy'*/
5128
+  (1.4ms) CREATE INDEX "idx_on_branch_code_product_scheme_voucher_type_b7038b3d5f" ON "snf_core_virtual_accounts" ("branch_code", "product_scheme", "voucher_type") /*application='Dummy'*/
5129
+  (1.2ms) CREATE UNIQUE INDEX "index_snf_core_virtual_accounts_on_cbs_account_number" ON "snf_core_virtual_accounts" ("cbs_account_number") /*application='Dummy'*/
5130
+  (1.3ms) CREATE INDEX "index_snf_core_virtual_accounts_on_user_id" ON "snf_core_virtual_accounts" ("user_id") /*application='Dummy'*/
5131
+  (0.3ms) DROP TABLE IF EXISTS "snf_core_wallets" CASCADE /*application='Dummy'*/
5132
+  (4.3ms) CREATE TABLE "snf_core_wallets" ("id" bigserial primary key, "user_id" bigint NOT NULL, "wallet_number" character varying NOT NULL, "balance" decimal NOT NULL, "is_active" boolean DEFAULT TRUE NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
5133
+  (1.4ms) CREATE INDEX "index_snf_core_wallets_on_user_id" ON "snf_core_wallets" ("user_id") /*application='Dummy'*/
5134
+  (1.8ms) CREATE UNIQUE INDEX "index_snf_core_wallets_on_wallet_number" ON "snf_core_wallets" ("wallet_number") /*application='Dummy'*/
5135
+  (3.9ms) ALTER TABLE "active_storage_attachments" ADD CONSTRAINT "fk_rails_c3b3935057"
5136
+ FOREIGN KEY ("blob_id")
5137
+ REFERENCES "active_storage_blobs" ("id")
5138
+ /*application='Dummy'*/
5139
+  (3.7ms) ALTER TABLE "active_storage_variant_records" ADD CONSTRAINT "fk_rails_993965df05"
5140
+ FOREIGN KEY ("blob_id")
5141
+ REFERENCES "active_storage_blobs" ("id")
5142
+ /*application='Dummy'*/
5143
+  (3.4ms) ALTER TABLE "snf_core_account_transfers" ADD CONSTRAINT "fk_rails_0d109a55ef"
5144
+ FOREIGN KEY ("user_id")
5145
+ REFERENCES "snf_core_users" ("id")
5146
+ /*application='Dummy'*/
5147
+  (2.0ms) ALTER TABLE "snf_core_business_documents" ADD CONSTRAINT "fk_rails_1efd7338ed"
5148
+ FOREIGN KEY ("business_id")
5149
+ REFERENCES "snf_core_businesses" ("id")
5150
+ /*application='Dummy'*/
5151
+  (1.9ms) ALTER TABLE "snf_core_business_documents" ADD CONSTRAINT "fk_rails_a6157021cc"
5152
+ FOREIGN KEY ("verified_by_id")
5153
+ REFERENCES "snf_core_users" ("id")
5154
+ /*application='Dummy'*/
5155
+  (1.4ms) ALTER TABLE "snf_core_businesses" ADD CONSTRAINT "fk_rails_a61edcbd4b"
5156
+ FOREIGN KEY ("user_id")
5157
+ REFERENCES "snf_core_users" ("id")
5158
+ /*application='Dummy'*/
5159
+  (1.6ms) ALTER TABLE "snf_core_categories" ADD CONSTRAINT "fk_rails_26a925b05d"
5160
+ FOREIGN KEY ("parent_id")
5161
+ REFERENCES "snf_core_categories" ("id")
5162
+ /*application='Dummy'*/
5163
+  (2.4ms) ALTER TABLE "snf_core_customer_groups" ADD CONSTRAINT "fk_rails_9c45f4015a"
5164
+ FOREIGN KEY ("group_id")
5165
+ REFERENCES "snf_core_groups" ("id")
5166
+ /*application='Dummy'*/
5167
+  (2.7ms) ALTER TABLE "snf_core_customer_groups" ADD CONSTRAINT "fk_rails_792eb3404d"
5168
+ FOREIGN KEY ("customer_id")
5169
+ REFERENCES "snf_core_users" ("id")
5170
+ /*application='Dummy'*/
5171
+  (2.6ms) ALTER TABLE "snf_core_delivery_orders" ADD CONSTRAINT "fk_rails_450d17b1b2"
5172
+ FOREIGN KEY ("order_id")
5173
+ REFERENCES "snf_core_orders" ("id")
5174
+ /*application='Dummy'*/
5175
+  (1.6ms) ALTER TABLE "snf_core_groups" ADD CONSTRAINT "fk_rails_c52b27ad67"
5176
+ FOREIGN KEY ("business_id")
5177
+ REFERENCES "snf_core_businesses" ("id")
5178
+ /*application='Dummy'*/
5179
+  (2.4ms) ALTER TABLE "snf_core_item_requests" ADD CONSTRAINT "fk_rails_a718316b94"
5180
+ FOREIGN KEY ("product_id")
5181
+ REFERENCES "snf_core_products" ("id")
5182
+ /*application='Dummy'*/
5183
+  (3.0ms) ALTER TABLE "snf_core_item_requests" ADD CONSTRAINT "fk_rails_0aa2ea2057"
5184
+ FOREIGN KEY ("user_id")
5185
+ REFERENCES "snf_core_users" ("id")
5186
+ /*application='Dummy'*/
5187
+  (2.1ms) ALTER TABLE "snf_core_order_items" ADD CONSTRAINT "fk_rails_1f4046ba92"
5188
+ FOREIGN KEY ("order_id")
5189
+ REFERENCES "snf_core_orders" ("id")
5190
+ /*application='Dummy'*/
5191
+  (3.0ms) ALTER TABLE "snf_core_order_items" ADD CONSTRAINT "fk_rails_50419437e9"
5192
+ FOREIGN KEY ("store_inventory_id")
5193
+ REFERENCES "snf_core_store_inventories" ("id")
5194
+ /*application='Dummy'*/
5195
+  (2.1ms) ALTER TABLE "snf_core_orders" ADD CONSTRAINT "fk_rails_400cf2029c"
5196
+ FOREIGN KEY ("store_id")
5197
+ REFERENCES "snf_core_stores" ("id")
5198
+ /*application='Dummy'*/
5199
+  (2.0ms) ALTER TABLE "snf_core_orders" ADD CONSTRAINT "fk_rails_45b78fb6f9"
5200
+ FOREIGN KEY ("user_id")
5201
+ REFERENCES "snf_core_users" ("id")
5202
+ /*application='Dummy'*/
5203
+  (1.9ms) ALTER TABLE "snf_core_products" ADD CONSTRAINT "fk_rails_a0ba3fa883"
5204
+ FOREIGN KEY ("category_id")
5205
+ REFERENCES "snf_core_categories" ("id")
5206
+ /*application='Dummy'*/
5207
+  (1.8ms) ALTER TABLE "snf_core_store_inventories" ADD CONSTRAINT "fk_rails_15fb263e75"
5208
+ FOREIGN KEY ("product_id")
5209
+ REFERENCES "snf_core_products" ("id")
5210
+ /*application='Dummy'*/
5211
+  (1.6ms) ALTER TABLE "snf_core_store_inventories" ADD CONSTRAINT "fk_rails_2ca88d30e2"
5212
+ FOREIGN KEY ("store_id")
5213
+ REFERENCES "snf_core_stores" ("id")
5214
+ /*application='Dummy'*/
5215
+  (2.3ms) ALTER TABLE "snf_core_stores" ADD CONSTRAINT "fk_rails_421441da8e"
5216
+ FOREIGN KEY ("address_id")
5217
+ REFERENCES "snf_core_addresses" ("id")
5218
+ /*application='Dummy'*/
5219
+  (1.6ms) ALTER TABLE "snf_core_stores" ADD CONSTRAINT "fk_rails_e100fc7454"
5220
+ FOREIGN KEY ("business_id")
5221
+ REFERENCES "snf_core_businesses" ("id")
5222
+ /*application='Dummy'*/
5223
+  (2.4ms) ALTER TABLE "snf_core_user_roles" ADD CONSTRAINT "fk_rails_0e70d7ce00"
5224
+ FOREIGN KEY ("role_id")
5225
+ REFERENCES "snf_core_roles" ("id")
5226
+ /*application='Dummy'*/
5227
+  (1.9ms) ALTER TABLE "snf_core_user_roles" ADD CONSTRAINT "fk_rails_9ad2e78133"
5228
+ FOREIGN KEY ("user_id")
5229
+ REFERENCES "snf_core_users" ("id")
5230
+ /*application='Dummy'*/
5231
+  (1.9ms) ALTER TABLE "snf_core_users" ADD CONSTRAINT "fk_rails_aaf9dcb5a5"
5232
+ FOREIGN KEY ("address_id")
5233
+ REFERENCES "snf_core_addresses" ("id")
5234
+ /*application='Dummy'*/
5235
+  (1.5ms) ALTER TABLE "snf_core_users" ADD CONSTRAINT "fk_rails_e672dea3f8"
5236
+ FOREIGN KEY ("verified_by_id")
5237
+ REFERENCES "snf_core_users" ("id")
5238
+ ON DELETE SET NULL /*application='Dummy'*/
5239
+  (2.7ms) ALTER TABLE "snf_core_virtual_account_transactions" ADD CONSTRAINT "fk_rails_746fa19f46"
5240
+ FOREIGN KEY ("from_account_id")
5241
+ REFERENCES "snf_core_virtual_accounts" ("id")
5242
+ /*application='Dummy'*/
5243
+  (2.0ms) ALTER TABLE "snf_core_virtual_account_transactions" ADD CONSTRAINT "fk_rails_87430c1b60"
5244
+ FOREIGN KEY ("to_account_id")
5245
+ REFERENCES "snf_core_virtual_accounts" ("id")
5246
+ /*application='Dummy'*/
5247
+  (1.8ms) ALTER TABLE "snf_core_virtual_accounts" ADD CONSTRAINT "fk_rails_5b22a265fb"
5248
+ FOREIGN KEY ("user_id")
5249
+ REFERENCES "snf_core_users" ("id")
5250
+ /*application='Dummy'*/
5251
+  (2.1ms) ALTER TABLE "snf_core_wallets" ADD CONSTRAINT "fk_rails_77c94979ce"
5252
+ FOREIGN KEY ("user_id")
5253
+ REFERENCES "snf_core_users" ("id")
5254
+ /*application='Dummy'*/
5255
+  (5.2ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL PRIMARY KEY) /*application='Dummy'*/
5256
+ ActiveRecord::SchemaMigration Load (0.8ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
5257
+  (0.8ms) INSERT INTO "schema_migrations" (version) VALUES (20250311000000) /*application='Dummy'*/
5258
+  (0.6ms) INSERT INTO "schema_migrations" (version) VALUES
5259
+ (20250310143604),
5260
+ (20250310133249),
5261
+ (20250310123127),
5262
+ (20250310122954),
5263
+ (20250306074713),
5264
+ (20250305232530),
5265
+ (20250305232529),
5266
+ (20250305201008),
5267
+ (20250305170248),
5268
+ (20250305165926),
5269
+ (20250227102833),
5270
+ (20250227075048),
5271
+ (20250226193938),
5272
+ (20250226192104),
5273
+ (20250226190000),
5274
+ (20250226181007),
5275
+ (20250226123213),
5276
+ (20250226115215),
5277
+ (20250226110217),
5278
+ (20250226102931),
5279
+ (20250226080323),
5280
+ (20250226064444),
5281
+ (20250226042622); /*application='Dummy'*/
5282
+  (5.0ms) CREATE TABLE "ar_internal_metadata" ("key" character varying NOT NULL PRIMARY KEY, "value" character varying, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL) /*application='Dummy'*/
5283
+ ActiveRecord::InternalMetadata Load (1.7ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
5284
+ ActiveRecord::InternalMetadata Create (0.9ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ('environment', 'development', '2025-03-11 05:34:36.003517', '2025-03-11 05:34:36.003524') RETURNING "key" /*application='Dummy'*/
5285
+ ActiveRecord::InternalMetadata Load (0.3ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
5286
+ ActiveRecord::InternalMetadata Update (1.1ms) UPDATE "ar_internal_metadata" SET "value" = 'test', "updated_at" = '2025-03-11 05:34:36.009754' WHERE "ar_internal_metadata"."key" = 'environment' /*application='Dummy'*/
5287
+ ActiveRecord::InternalMetadata Load (0.4ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'schema_sha1' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
5288
+ ActiveRecord::InternalMetadata Create (0.6ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ('schema_sha1', '8f9fff732890dd4b4ce6db66c5ce832562876d08', '2025-03-11 05:34:36.014309', '2025-03-11 05:34:36.014313') RETURNING "key" /*application='Dummy'*/