stateful_models 0.0.1 → 0.0.3

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 (27) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +25 -1
  3. data/README.md +1 -1
  4. data/lib/generators/has_states/install/install_generator.rb +27 -9
  5. data/lib/generators/has_states/install/templates/create_has_states_states.rb.erb +3 -2
  6. data/lib/generators/has_states/install/templates/create_indexes_on_has_states_states.rb.erb +11 -0
  7. data/lib/has_states/base.rb +41 -0
  8. data/lib/has_states/configuration/model_configuration.rb +16 -0
  9. data/lib/has_states/state.rb +1 -37
  10. data/lib/has_states/stateable.rb +11 -7
  11. data/lib/has_states/version.rb +1 -1
  12. data/lib/has_states.rb +2 -1
  13. data/spec/dummy/Gemfile.lock +2 -2
  14. data/spec/dummy/config/initializers/has_states.rb +45 -0
  15. data/spec/{generators/tmp/db/migrate/20241223020432_create_has_states_states.rb → dummy/db/migrate/20241223212128_create_has_states_states.rb} +2 -1
  16. data/spec/dummy/db/migrate/20250114175939_create_indexes_on_has_states_states.rb +10 -0
  17. data/spec/dummy/db/schema.rb +26 -22
  18. data/spec/dummy/log/development.log +203 -0
  19. data/spec/dummy/log/test.log +7151 -0
  20. data/spec/dummy/storage/development.sqlite3 +0 -0
  21. data/spec/dummy/storage/test.sqlite3 +0 -0
  22. data/spec/{dummy/db/migrate/20241221183116_create_has_states_tables.rb → generators/tmp/db/migrate/20250114180401_create_has_states_states.rb} +4 -5
  23. data/spec/generators/tmp/db/migrate/20250114180401_create_indexes_on_has_states_states.rb +11 -0
  24. data/spec/has_states/state_spec.rb +96 -12
  25. data/spec/has_states/stateable_spec.rb +184 -0
  26. data/spec/rails_helper.rb +1 -0
  27. metadata +10 -4
@@ -140,3 +140,206 @@ Migrating to CreateHasStatesTables (20241221183116)
140
140
  HasStates::State Load (0.4ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' /* loading for pp */ LIMIT 11 /*application='Dummy'*/
141
141
  HasStates::State Exists? (0.3ms) SELECT 1 AS one FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' AND "has_states_states"."state_type" = 'kyc' AND "has_states_states"."status" = 'under_review' LIMIT 1 /*application='Dummy'*/
142
142
  HasStates::State Load (0.3ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."state_type" = 'onboarding' /* loading for pp */ LIMIT 11 /*application='Dummy'*/
143
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
144
+ ActiveRecord::InternalMetadata Load (0.0ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
145
+ ActiveRecord::SchemaMigration Load (0.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
146
+ ActiveRecord::InternalMetadata Load (0.0ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
147
+ ActiveRecord::SchemaMigration Load (0.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
148
+ ActiveRecord::InternalMetadata Load (0.0ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
149
+  (0.0ms) DROP TABLE IF EXISTS "companies" /*application='Dummy'*/
150
+  (5.6ms) CREATE TABLE "companies" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL) /*application='Dummy'*/
151
+  (0.0ms) DROP TABLE IF EXISTS "has_states_states" /*application='Dummy'*/
152
+  (0.1ms) CREATE TABLE "has_states_states" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "state_type" varchar, "status" varchar NOT NULL, "metadata" json DEFAULT '{}' NOT NULL, "stateable_type" varchar NOT NULL, "stateable_id" integer NOT NULL, "completed_at" datetime(6), "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL) /*application='Dummy'*/
153
+  (0.1ms) CREATE INDEX "index_has_states_states_on_stateable" ON "has_states_states" ("stateable_type", "stateable_id") /*application='Dummy'*/
154
+  (0.1ms) CREATE INDEX "index_has_states_states_on_stateable_type_and_stateable_id" ON "has_states_states" ("stateable_type", "stateable_id") /*application='Dummy'*/
155
+  (0.0ms) DROP TABLE IF EXISTS "users" /*application='Dummy'*/
156
+  (0.1ms) CREATE TABLE "users" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL) /*application='Dummy'*/
157
+  (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar NOT NULL PRIMARY KEY) /*application='Dummy'*/
158
+ ActiveRecord::SchemaMigration Load (0.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
159
+  (0.0ms) INSERT INTO "schema_migrations" (version) VALUES (20241221183116) /*application='Dummy'*/
160
+  (0.0ms) INSERT INTO "schema_migrations" (version) VALUES
161
+ (20241221171423); /*application='Dummy'*/
162
+  (0.1ms) CREATE TABLE "ar_internal_metadata" ("key" varchar NOT NULL PRIMARY KEY, "value" varchar, "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL) /*application='Dummy'*/
163
+ ActiveRecord::InternalMetadata Load (0.0ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
164
+ ActiveRecord::InternalMetadata Create (0.1ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ('environment', 'development', '2024-12-23 21:21:52.718796', '2024-12-23 21:21:52.718798') RETURNING "key" /*application='Dummy'*/
165
+ ActiveRecord::InternalMetadata Load (0.0ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
166
+ ActiveRecord::InternalMetadata Load (0.0ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'schema_sha1' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
167
+ ActiveRecord::InternalMetadata Create (0.1ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ('schema_sha1', '0760f8030e1032ec04330c6d62a7c41acb788447', '2024-12-23 21:21:52.720124', '2024-12-23 21:21:52.720125') RETURNING "key" /*application='Dummy'*/
168
+ ActiveRecord::InternalMetadata Load (0.0ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
169
+ ActiveRecord::SchemaMigration Load (0.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
170
+ Migrating to CreateHasStatesStates (20241223212128)
171
+ TRANSACTION (0.0ms) BEGIN immediate TRANSACTION /*application='Dummy'*/
172
+  (0.7ms) CREATE TABLE "has_states_states" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "type" varchar NOT NULL, "state_type" varchar, "status" varchar NOT NULL, "metadata" json DEFAULT '{}' NOT NULL, "stateable_type" varchar NOT NULL, "stateable_id" integer NOT NULL, "completed_at" datetime(6), "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL) /*application='Dummy'*/
173
+ TRANSACTION (0.0ms) ROLLBACK TRANSACTION /*application='Dummy'*/
174
+ 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'*/
175
+ ActiveRecord::SchemaMigration Load (0.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
176
+ Migrating to CreateHasStatesStates (20241223212128)
177
+ TRANSACTION (0.0ms) BEGIN immediate TRANSACTION /*application='Dummy'*/
178
+  (1.0ms) CREATE TABLE "has_states_states" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "type" varchar NOT NULL, "state_type" varchar, "status" varchar NOT NULL, "metadata" json DEFAULT '{}' NOT NULL, "stateable_type" varchar NOT NULL, "stateable_id" integer NOT NULL, "completed_at" datetime(6), "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL) /*application='Dummy'*/
179
+ TRANSACTION (0.0ms) ROLLBACK TRANSACTION /*application='Dummy'*/
180
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
181
+ ActiveRecord::SchemaMigration Load (0.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
182
+ ActiveRecord::SchemaMigration Load (0.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
183
+ ActiveRecord::SchemaMigration Load (0.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
184
+ ActiveRecord::InternalMetadata Load (0.0ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
185
+ ActiveRecord::SchemaMigration Load (0.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
186
+ ActiveRecord::InternalMetadata Load (0.0ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
187
+ ActiveRecord::SchemaMigration Load (0.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
188
+ ActiveRecord::InternalMetadata Load (0.0ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
189
+  (0.1ms) DROP TABLE IF EXISTS "companies" /*application='Dummy'*/
190
+  (5.6ms) CREATE TABLE "companies" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL) /*application='Dummy'*/
191
+  (0.0ms) DROP TABLE IF EXISTS "has_states_states" /*application='Dummy'*/
192
+  (0.1ms) CREATE TABLE "has_states_states" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "state_type" varchar, "status" varchar NOT NULL, "metadata" json DEFAULT '{}' NOT NULL, "stateable_type" varchar NOT NULL, "stateable_id" integer NOT NULL, "completed_at" datetime(6), "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL) /*application='Dummy'*/
193
+  (0.1ms) CREATE INDEX "index_has_states_states_on_stateable" ON "has_states_states" ("stateable_type", "stateable_id") /*application='Dummy'*/
194
+  (0.1ms) CREATE INDEX "index_has_states_states_on_stateable_type_and_stateable_id" ON "has_states_states" ("stateable_type", "stateable_id") /*application='Dummy'*/
195
+  (0.0ms) DROP TABLE IF EXISTS "users" /*application='Dummy'*/
196
+  (0.1ms) CREATE TABLE "users" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL) /*application='Dummy'*/
197
+  (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar NOT NULL PRIMARY KEY) /*application='Dummy'*/
198
+ ActiveRecord::SchemaMigration Load (0.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
199
+  (0.0ms) INSERT INTO "schema_migrations" (version) VALUES (20241221183116) /*application='Dummy'*/
200
+  (0.0ms) INSERT INTO "schema_migrations" (version) VALUES
201
+ (20241221171423); /*application='Dummy'*/
202
+  (0.1ms) CREATE TABLE "ar_internal_metadata" ("key" varchar NOT NULL PRIMARY KEY, "value" varchar, "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL) /*application='Dummy'*/
203
+ ActiveRecord::InternalMetadata Load (0.0ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
204
+ ActiveRecord::InternalMetadata Create (0.1ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ('environment', 'development', '2024-12-23 21:22:55.418140', '2024-12-23 21:22:55.418143') RETURNING "key" /*application='Dummy'*/
205
+ ActiveRecord::InternalMetadata Load (0.0ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
206
+ ActiveRecord::InternalMetadata Load (0.0ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'schema_sha1' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
207
+ ActiveRecord::InternalMetadata Create (0.0ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ('schema_sha1', '0760f8030e1032ec04330c6d62a7c41acb788447', '2024-12-23 21:22:55.419477', '2024-12-23 21:22:55.419478') RETURNING "key" /*application='Dummy'*/
208
+ ActiveRecord::InternalMetadata Load (0.0ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
209
+ ActiveRecord::SchemaMigration Load (0.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
210
+ Migrating to CreateHasStatesStates (20241223212128)
211
+ TRANSACTION (0.0ms) BEGIN immediate TRANSACTION /*application='Dummy'*/
212
+  (0.6ms) CREATE TABLE "has_states_states" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "type" varchar NOT NULL, "state_type" varchar, "status" varchar NOT NULL, "metadata" json DEFAULT '{}' NOT NULL, "stateable_type" varchar NOT NULL, "stateable_id" integer NOT NULL, "completed_at" datetime(6), "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL) /*application='Dummy'*/
213
+ TRANSACTION (0.0ms) ROLLBACK TRANSACTION /*application='Dummy'*/
214
+ 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'*/
215
+ ActiveRecord::SchemaMigration Load (0.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
216
+ Migrating to CreateHasStatesStates (20241223212128)
217
+ TRANSACTION (0.0ms) BEGIN immediate TRANSACTION /*application='Dummy'*/
218
+  (0.9ms) CREATE TABLE "has_states_states" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "type" varchar NOT NULL, "state_type" varchar, "status" varchar NOT NULL, "metadata" json DEFAULT '{}' NOT NULL, "stateable_type" varchar NOT NULL, "stateable_id" integer NOT NULL, "completed_at" datetime(6), "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL) /*application='Dummy'*/
219
+ TRANSACTION (0.0ms) ROLLBACK TRANSACTION /*application='Dummy'*/
220
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
221
+ ActiveRecord::InternalMetadata Load (0.0ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
222
+ ActiveRecord::SchemaMigration Load (0.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
223
+ ActiveRecord::InternalMetadata Load (0.0ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
224
+ ActiveRecord::SchemaMigration Load (0.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
225
+ ActiveRecord::InternalMetadata Load (0.0ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
226
+  (14.8ms) CREATE TABLE "schema_migrations" ("version" varchar NOT NULL PRIMARY KEY) /*application='Dummy'*/
227
+  (0.1ms) CREATE TABLE "ar_internal_metadata" ("key" varchar NOT NULL PRIMARY KEY, "value" varchar, "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL) /*application='Dummy'*/
228
+ ActiveRecord::InternalMetadata Load (0.0ms) SELECT * FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' ORDER BY "ar_internal_metadata"."key" ASC LIMIT 1 /*application='Dummy'*/
229
+ ActiveRecord::InternalMetadata Create (0.1ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ('environment', 'development', '2024-12-23 21:23:59.040610', '2024-12-23 21:23:59.040613') RETURNING "key" /*application='Dummy'*/
230
+ ActiveRecord::SchemaMigration Load (0.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
231
+ Migrating to CreateTestModels (20241221171423)
232
+ TRANSACTION (0.0ms) BEGIN immediate TRANSACTION /*application='Dummy'*/
233
+  (0.8ms) CREATE TABLE "users" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL) /*application='Dummy'*/
234
+  (0.1ms) CREATE TABLE "companies" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL) /*application='Dummy'*/
235
+ ActiveRecord::SchemaMigration Create (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES ('20241221171423') RETURNING "version" /*application='Dummy'*/
236
+ TRANSACTION (0.0ms) COMMIT TRANSACTION /*application='Dummy'*/
237
+ Migrating to CreateHasStatesStates (20241223212128)
238
+ TRANSACTION (0.0ms) BEGIN immediate TRANSACTION /*application='Dummy'*/
239
+  (0.5ms) CREATE TABLE "has_states_states" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "type" varchar NOT NULL, "state_type" varchar, "status" varchar NOT NULL, "metadata" json DEFAULT '{}' NOT NULL, "stateable_type" varchar NOT NULL, "stateable_id" integer NOT NULL, "completed_at" datetime(6), "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL) /*application='Dummy'*/
240
+  (0.1ms) CREATE INDEX "index_has_states_states_on_stateable" ON "has_states_states" ("stateable_type", "stateable_id") /*application='Dummy'*/
241
+  (0.0ms) CREATE INDEX "index_has_states_states_on_type_and_stateable_id" ON "has_states_states" ("type", "stateable_id") /*application='Dummy'*/
242
+  (0.0ms) CREATE INDEX "index_has_states_states_on_stateable_type_and_stateable_id" ON "has_states_states" ("stateable_type", "stateable_id") /*application='Dummy'*/
243
+ ActiveRecord::SchemaMigration Create (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES ('20241223212128') RETURNING "version" /*application='Dummy'*/
244
+ TRANSACTION (0.1ms) COMMIT TRANSACTION /*application='Dummy'*/
245
+ ActiveRecord::SchemaMigration Load (0.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
246
+ User Load (0.1ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1 /*application='Dummy'*/
247
+ TRANSACTION (0.1ms) BEGIN immediate TRANSACTION /*application='Dummy'*/
248
+ User Create (1.0ms) INSERT INTO "users" ("name", "created_at", "updated_at") VALUES ('Bob', '2024-12-23 21:26:02.330048', '2024-12-23 21:26:02.330048') RETURNING "id" /*application='Dummy'*/
249
+ TRANSACTION (5.5ms) COMMIT TRANSACTION /*application='Dummy'*/
250
+ TRANSACTION (0.0ms) BEGIN immediate TRANSACTION /*application='Dummy'*/
251
+ HasStates::State Create (0.2ms) INSERT INTO "has_states_states" ("type", "state_type", "status", "metadata", "stateable_type", "stateable_id", "completed_at", "created_at", "updated_at") VALUES ('HasStates::State', 'kyc', 'pending', '{}', 'User', 1, NULL, '2024-12-23 21:27:24.876829', '2024-12-23 21:27:24.876829') RETURNING "id" /*application='Dummy'*/
252
+ TRANSACTION (0.1ms) COMMIT TRANSACTION /*application='Dummy'*/
253
+ TRANSACTION (0.1ms) BEGIN immediate TRANSACTION /*application='Dummy'*/
254
+ TestState Create (0.6ms) INSERT INTO "has_states_states" ("type", "state_type", "status", "metadata", "stateable_type", "stateable_id", "completed_at", "created_at", "updated_at") VALUES ('TestState', 'kyc', 'pending', '{"foo":"bar"}', 'User', 1, NULL, '2024-12-23 21:31:02.082316', '2024-12-23 21:31:02.082316') RETURNING "id" /*application='Dummy'*/
255
+ TRANSACTION (0.1ms) COMMIT TRANSACTION /*application='Dummy'*/
256
+ User Load (0.1ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1 /*application='Dummy'*/
257
+ TRANSACTION (0.1ms) BEGIN immediate TRANSACTION /*application='Dummy'*/
258
+ KYCState Create (0.6ms) INSERT INTO "has_states_states" ("type", "state_type", "status", "metadata", "stateable_type", "stateable_id", "completed_at", "created_at", "updated_at") VALUES ('KYCState', 'kyc', 'pending', '{"document_type":"passport"}', 'User', 1, NULL, '2024-12-23 21:38:20.849253', '2024-12-23 21:38:20.849253') RETURNING "id" /*application='Dummy'*/
259
+ TRANSACTION (14.6ms) COMMIT TRANSACTION /*application='Dummy'*/
260
+ User Load (0.1ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1 /*application='Dummy'*/
261
+ User Load (0.3ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1 /*application='Dummy'*/
262
+ User Load (0.1ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1 /*application='Dummy'*/
263
+ HasStates::Base Load (0.2ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' AND "has_states_states"."state_type" = 'kyc' ORDER BY "has_states_states"."created_at" DESC LIMIT 1 /*application='Dummy'*/
264
+ HasStates::Base Load (0.4ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' AND "has_states_states"."state_type" = 'kyc' /* loading for pp */ ORDER BY "has_states_states"."created_at" DESC LIMIT 11 /*application='Dummy'*/
265
+ HasStates::Base Load (0.1ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' /* loading for inspect */ LIMIT 11 /*application='Dummy'*/
266
+ HasStates::State Load (0.3ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."type" = 'HasStates::State' /* loading for pp */ LIMIT 11 /*application='Dummy'*/
267
+ HasStates::Base Exists? (0.2ms) SELECT 1 AS one FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' AND "has_states_states"."state_type" = 'onboarding' AND "has_states_states"."status" = 'pending' LIMIT 1 /*application='Dummy'*/
268
+ HasStates::Base Exists? (0.3ms) SELECT 1 AS one FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' AND "has_states_states"."state_type" = 'onboarding' AND "has_states_states"."status" = 'email_verified' LIMIT 1 /*application='Dummy'*/
269
+ HasStates::Base Load (0.3ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' /* loading for pp */ LIMIT 11 /*application='Dummy'*/
270
+ HasStates::Base Load (0.1ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' /* loading for inspect */ LIMIT 11 /*application='Dummy'*/
271
+ HasStates::State Pluck (0.2ms) SELECT "has_states_states"."type" FROM "has_states_states" WHERE "has_states_states"."type" = 'HasStates::State' /*application='Dummy'*/
272
+ HasStates::State Load (0.3ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."type" = 'HasStates::State' /*application='Dummy'*/
273
+ HasStates::Base Load (0.3ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' /* loading for pp */ LIMIT 11 /*application='Dummy'*/
274
+ HasStates::Base Load (0.2ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' /* loading for inspect */ LIMIT 11 /*application='Dummy'*/
275
+ HasStates::State Update All (0.2ms) UPDATE "has_states_states" SET "type" = 'HasStates::State' WHERE "has_states_states"."type" = 'HasStates::State' AND "has_states_states"."type" = 'TestState' /*application='Dummy'*/
276
+ HasStates::Base Load (0.2ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' /* loading for pp */ LIMIT 11 /*application='Dummy'*/
277
+ HasStates::Base Load (0.2ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' /* loading for inspect */ LIMIT 11 /*application='Dummy'*/
278
+ User Load (0.1ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1 /*application='Dummy'*/
279
+ User Load (0.2ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1 /*application='Dummy'*/
280
+ HasStates::Base Load (0.1ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' /* loading for pp */ LIMIT 11 /*application='Dummy'*/
281
+ HasStates::Base Load (0.2ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' /* loading for inspect */ LIMIT 11 /*application='Dummy'*/
282
+ User Load (0.3ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1 /*application='Dummy'*/
283
+ HasStates::Base Load (0.3ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' AND "has_states_states"."state_type" = 'kyc' ORDER BY "has_states_states"."created_at" DESC LIMIT 1 /*application='Dummy'*/
284
+ User Load (0.1ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1 /*application='Dummy'*/
285
+ HasStates::Base Load (0.1ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' /* loading for pp */ LIMIT 11 /*application='Dummy'*/
286
+ HasStates::Base Load (0.1ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' /* loading for inspect */ LIMIT 11 /*application='Dummy'*/
287
+ User Load (0.2ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1 /*application='Dummy'*/
288
+ HasStates::Base Load (0.2ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' AND "has_states_states"."state_type" = 'kyc' ORDER BY "has_states_states"."created_at" DESC LIMIT 1 /*application='Dummy'*/
289
+ HasStates::State Update All (13.4ms) UPDATE "has_states_states" SET "type" = 'HasStates::State' WHERE "has_states_states"."type" = 'HasStates::State' /*application='Dummy'*/
290
+ User Load (0.2ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1 /*application='Dummy'*/
291
+ HasStates::Base Load (0.1ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' /* loading for pp */ LIMIT 11 /*application='Dummy'*/
292
+ HasStates::Base Load (0.1ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' /* loading for inspect */ LIMIT 11 /*application='Dummy'*/
293
+ User Load (0.2ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1 /*application='Dummy'*/
294
+ HasStates::Base Load (0.2ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' AND "has_states_states"."state_type" = 'kyc' ORDER BY "has_states_states"."created_at" DESC LIMIT 1 /*application='Dummy'*/
295
+ User Load (0.2ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1 /*application='Dummy'*/
296
+ HasStates::Base Load (0.2ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' AND "has_states_states"."state_type" = 'kyc' /* loading for pp */ ORDER BY "has_states_states"."created_at" DESC LIMIT 11 /*application='Dummy'*/
297
+ HasStates::Base Load (0.1ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' /* loading for inspect */ LIMIT 11 /*application='Dummy'*/
298
+  (0.2ms) SELECT id, type, state_type, status FROM has_states_states /*application='Dummy'*/
299
+ HasStates::Base Update All (0.5ms) UPDATE "has_states_states" SET "type" = 'HasStates::State' WHERE "has_states_states"."type" IN ('TestState', 'KYCState') /*application='Dummy'*/
300
+ User Load (0.2ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1 /*application='Dummy'*/
301
+ HasStates::Base Load (0.2ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' AND "has_states_states"."state_type" = 'kyc' /* loading for pp */ ORDER BY "has_states_states"."created_at" DESC LIMIT 11 /*application='Dummy'*/
302
+ User Load (0.2ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1 /*application='Dummy'*/
303
+ HasStates::Base Load (0.3ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' AND "has_states_states"."state_type" = 'kyc' ORDER BY "has_states_states"."created_at" DESC LIMIT 1 /*application='Dummy'*/
304
+ User Load (0.2ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1 /*application='Dummy'*/
305
+ User Load (0.2ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1 /*application='Dummy'*/
306
+ HasStates::Base Load (0.2ms) SELECT "has_states_states".* FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' AND "has_states_states"."state_type" = 'kyc' ORDER BY "has_states_states"."created_at" DESC LIMIT 1 /*application='Dummy'*/
307
+ User Load (0.2ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1 /*application='Dummy'*/
308
+ HasStates::Base Exists? (0.1ms) SELECT 1 AS one FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' AND "has_states_states"."state_type" = 'kyc' AND "has_states_states"."status" = 'approved' LIMIT 1 /*application='Dummy'*/
309
+ User Load (0.2ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1 /*application='Dummy'*/
310
+ User Load (0.1ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT 1 /*application='Dummy'*/
311
+ HasStates::Base Exists? (0.1ms) SELECT 1 AS one FROM "has_states_states" WHERE "has_states_states"."stateable_id" = 1 AND "has_states_states"."stateable_type" = 'User' AND "has_states_states"."state_type" = 'kyc' AND "has_states_states"."status" = 'approved' LIMIT 1 /*application='Dummy'*/
312
+ 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'*/
313
+ ActiveRecord::SchemaMigration Load (0.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
314
+ Migrating to CreateIndexesOnHasStatesStates (20250114175939)
315
+ 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'*/
316
+ ActiveRecord::SchemaMigration Load (0.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
317
+ Migrating to CreateIndexesOnHasStatesStates (20250114175939)
318
+ TRANSACTION (0.0ms) BEGIN immediate TRANSACTION /*application='Dummy'*/
319
+  (0.6ms) CREATE INDEX "index_has_states_states_on_stateable_id_and_state_type" ON "has_states_states" ("stateable_id", "state_type") /*application='Dummy'*/
320
+  (0.1ms) CREATE INDEX "idx_on_stateable_id_state_type_status_6d3d026e4d" ON "has_states_states" ("stateable_id", "state_type", "status") /*application='Dummy'*/
321
+  (0.0ms) CREATE INDEX "idx_on_stateable_id_state_type_created_at_b5d09fb6ee" ON "has_states_states" ("stateable_id", "state_type", "created_at") /*application='Dummy'*/
322
+  (0.0ms) CREATE INDEX "idx_on_stateable_id_state_type_status_created_at_19e1cf37c2" ON "has_states_states" ("stateable_id", "state_type", "status", "created_at") /*application='Dummy'*/
323
+  (0.1ms) CREATE INDEX "index_has_states_states_on_stateble_type_and_stateable_id" ON "has_states_states" ("stateble_type", "stateable_id") /*application='Dummy'*/
324
+ TRANSACTION (0.0ms) ROLLBACK TRANSACTION /*application='Dummy'*/
325
+ 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'*/
326
+ ActiveRecord::SchemaMigration Load (0.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
327
+ Migrating to CreateIndexesOnHasStatesStates (20250114175939)
328
+ TRANSACTION (0.0ms) BEGIN immediate TRANSACTION /*application='Dummy'*/
329
+  (0.7ms) CREATE INDEX "index_has_states_states_on_stateable_id_and_state_type" ON "has_states_states" ("stateable_id", "state_type") /*application='Dummy'*/
330
+  (0.1ms) CREATE INDEX "idx_on_stateable_id_state_type_status_6d3d026e4d" ON "has_states_states" ("stateable_id", "state_type", "status") /*application='Dummy'*/
331
+  (0.0ms) CREATE INDEX "idx_on_stateable_id_state_type_created_at_b5d09fb6ee" ON "has_states_states" ("stateable_id", "state_type", "created_at") /*application='Dummy'*/
332
+  (0.0ms) CREATE INDEX "idx_on_stateable_id_state_type_status_created_at_19e1cf37c2" ON "has_states_states" ("stateable_id", "state_type", "status", "created_at") /*application='Dummy'*/
333
+  (0.1ms) CREATE INDEX "index_has_states_states_on_stateable_type_and_stateable_id" ON "has_states_states" ("stateable_type", "stateable_id") /*application='Dummy'*/
334
+ TRANSACTION (0.0ms) ROLLBACK TRANSACTION /*application='Dummy'*/
335
+ 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'*/
336
+ ActiveRecord::SchemaMigration Load (0.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/
337
+ Migrating to CreateIndexesOnHasStatesStates (20250114175939)
338
+ TRANSACTION (0.0ms) BEGIN immediate TRANSACTION /*application='Dummy'*/
339
+  (0.7ms) CREATE INDEX "index_has_states_states_on_stateable_id_and_state_type" ON "has_states_states" ("stateable_id", "state_type") /*application='Dummy'*/
340
+  (0.1ms) CREATE INDEX "idx_on_stateable_id_state_type_status_6d3d026e4d" ON "has_states_states" ("stateable_id", "state_type", "status") /*application='Dummy'*/
341
+  (0.0ms) CREATE INDEX "idx_on_stateable_id_state_type_created_at_b5d09fb6ee" ON "has_states_states" ("stateable_id", "state_type", "created_at") /*application='Dummy'*/
342
+  (0.0ms) CREATE INDEX "idx_on_stateable_id_state_type_status_created_at_19e1cf37c2" ON "has_states_states" ("stateable_id", "state_type", "status", "created_at") /*application='Dummy'*/
343
+ ActiveRecord::SchemaMigration Create (0.0ms) INSERT INTO "schema_migrations" ("version") VALUES ('20250114175939') RETURNING "version" /*application='Dummy'*/
344
+ TRANSACTION (14.2ms) COMMIT TRANSACTION /*application='Dummy'*/
345
+ ActiveRecord::SchemaMigration Load (0.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application='Dummy'*/