dscf-banking 0.1.1 → 0.1.2

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 (78) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +0 -0
  3. data/README.md +0 -0
  4. data/Rakefile +0 -0
  5. data/app/controllers/dscf/banking/accounts_controller.rb +0 -0
  6. data/app/controllers/dscf/banking/application_controller.rb +0 -0
  7. data/app/controllers/dscf/banking/applications_controller.rb +0 -0
  8. data/app/controllers/dscf/banking/interest_configurations_controller.rb +0 -0
  9. data/app/controllers/dscf/banking/interest_rate_tiers_controller.rb +0 -0
  10. data/app/controllers/dscf/banking/interest_rate_types_controller.rb +0 -0
  11. data/app/controllers/dscf/banking/product_approvals_controller.rb +0 -0
  12. data/app/controllers/dscf/banking/product_categories_controller.rb +0 -0
  13. data/app/controllers/dscf/banking/transaction_types_controller.rb +27 -0
  14. data/app/controllers/dscf/banking/transactions_controller.rb +275 -0
  15. data/app/controllers/dscf/banking/virtual_account_products_controller.rb +0 -0
  16. data/app/jobs/dscf/banking/application_job.rb +0 -0
  17. data/app/mailers/dscf/banking/application_mailer.rb +0 -0
  18. data/app/models/concerns/dscf/banking/auditable.rb +0 -0
  19. data/app/models/dscf/banking/account.rb +24 -2
  20. data/app/models/dscf/banking/application.rb +0 -0
  21. data/app/models/dscf/banking/application_record.rb +0 -0
  22. data/app/models/dscf/banking/interest_configuration.rb +0 -0
  23. data/app/models/dscf/banking/interest_rate_tier.rb +0 -0
  24. data/app/models/dscf/banking/interest_rate_type.rb +0 -0
  25. data/app/models/dscf/banking/product_approval.rb +0 -0
  26. data/app/models/dscf/banking/product_audit_log.rb +0 -0
  27. data/app/models/dscf/banking/product_category.rb +0 -0
  28. data/app/models/dscf/banking/transaction.rb +68 -0
  29. data/app/models/dscf/banking/transaction_type.rb +20 -0
  30. data/app/models/dscf/banking/virtual_account_product.rb +0 -0
  31. data/app/serializers/dscf/banking/account_serializer.rb +0 -0
  32. data/app/serializers/dscf/banking/application_serializer.rb +0 -0
  33. data/app/serializers/dscf/banking/interest_configuration_serializer.rb +0 -0
  34. data/app/serializers/dscf/banking/interest_rate_tier_serializer.rb +0 -0
  35. data/app/serializers/dscf/banking/interest_rate_type_serializer.rb +0 -0
  36. data/app/serializers/dscf/banking/product_approval_serializer.rb +0 -0
  37. data/app/serializers/dscf/banking/product_category_serializer.rb +0 -0
  38. data/app/serializers/dscf/banking/transaction_serializer.rb +19 -0
  39. data/app/serializers/dscf/banking/transaction_type_serializer.rb +9 -0
  40. data/app/serializers/dscf/banking/virtual_account_product_serializer.rb +0 -0
  41. data/app/services/dscf/banking/account_creation_service.rb +0 -0
  42. data/app/services/dscf/banking/base_transaction_service.rb +99 -0
  43. data/app/services/dscf/banking/deposit_service.rb +97 -0
  44. data/app/services/dscf/banking/transfer_service.rb +78 -0
  45. data/app/services/dscf/banking/withdrawal_service.rb +100 -0
  46. data/config/routes.rb +14 -0
  47. data/db/migrate/20250830211002_create_dscf_banking_product_categories.rb +0 -0
  48. data/db/migrate/20250830211027_create_dscf_banking_interest_rate_types.rb +0 -0
  49. data/db/migrate/20250831063605_add_code_and_remove_fields_from_interest_rate_types.rb +0 -0
  50. data/db/migrate/20250831064917_create_dscf_banking_virtual_account_products.rb +0 -0
  51. data/db/migrate/20250831072627_create_dscf_banking_interest_configurations.rb +0 -0
  52. data/db/migrate/20250831080745_create_dscf_banking_interest_rate_tiers.rb +0 -0
  53. data/db/migrate/20250831082356_create_dscf_banking_product_approvals.rb +0 -0
  54. data/db/migrate/20250831083907_create_dscf_banking_product_audit_logs.rb +0 -0
  55. data/db/migrate/20250831084706_allow_null_virtual_account_product_id_in_product_audit_logs.rb +0 -0
  56. data/db/migrate/20250912193134_create_dscf_banking_applications.rb +0 -0
  57. data/db/migrate/20250912203527_create_dscf_banking_accounts.rb +0 -0
  58. data/db/migrate/20250919084147_add_account_type_to_accounts.rb +6 -0
  59. data/db/migrate/20250919084927_make_account_associations_optional.rb +6 -0
  60. data/db/migrate/20250919182831_create_dscf_banking_transaction_types.rb +14 -0
  61. data/db/migrate/20250919184220_create_dscf_banking_transactions.rb +21 -0
  62. data/db/seeds.rb +125 -0
  63. data/lib/dscf/banking/engine.rb +0 -0
  64. data/lib/dscf/banking/version.rb +1 -1
  65. data/lib/dscf/banking.rb +0 -0
  66. data/lib/tasks/dscf/banking_tasks.rake +0 -0
  67. data/spec/factories/dscf/banking/accounts.rb +28 -0
  68. data/spec/factories/dscf/banking/applications.rb +6 -5
  69. data/spec/factories/dscf/banking/interest_configurations.rb +0 -0
  70. data/spec/factories/dscf/banking/interest_rate_tiers.rb +0 -0
  71. data/spec/factories/dscf/banking/interest_rate_types.rb +0 -0
  72. data/spec/factories/dscf/banking/product_approvals.rb +0 -0
  73. data/spec/factories/dscf/banking/product_audit_logs.rb +0 -0
  74. data/spec/factories/dscf/banking/product_categories.rb +0 -0
  75. data/spec/factories/dscf/banking/transaction_types.rb +56 -0
  76. data/spec/factories/dscf/banking/transactions.rb +52 -0
  77. data/spec/factories/dscf/banking/virtual_account_products.rb +0 -0
  78. metadata +19 -2
@@ -0,0 +1,52 @@
1
+ FactoryBot.define do
2
+ factory :dscf_banking_transaction, class: "Dscf::Banking::Transaction" do
3
+ association :account, factory: :dscf_banking_account
4
+ association :transaction_type, factory: [ :dscf_banking_transaction_type, :deposit ]
5
+ association :debit_account, factory: :dscf_banking_account
6
+ association :credit_account, factory: :dscf_banking_account
7
+
8
+ amount { 1000.00 }
9
+ currency { "ETB" }
10
+ description { "Test transaction" }
11
+ status { :pending }
12
+
13
+ trait :deposit do
14
+ association :transaction_type, factory: [ :dscf_banking_transaction_type, :deposit ]
15
+
16
+ after(:build) do |transaction|
17
+ transaction.credit_account = transaction.account
18
+ transaction.debit_account = create(:dscf_banking_account, :settlement_account, currency: transaction.currency)
19
+ end
20
+ end
21
+
22
+ trait :withdrawal do
23
+ association :transaction_type, factory: [ :dscf_banking_transaction_type, :withdrawal ]
24
+
25
+ after(:build) do |transaction|
26
+ transaction.debit_account = transaction.account
27
+ transaction.credit_account = create(:dscf_banking_account, :settlement_account, currency: transaction.currency)
28
+ end
29
+ end
30
+
31
+ trait :completed do
32
+ status { :completed }
33
+ end
34
+
35
+ trait :failed do
36
+ status { :failed }
37
+ end
38
+ end
39
+
40
+ # Alias for shared spec compatibility
41
+ factory :transaction, class: "Dscf::Banking::Transaction" do
42
+ association :account, factory: :dscf_banking_account
43
+ association :transaction_type, factory: [ :dscf_banking_transaction_type, :deposit ]
44
+ association :debit_account, factory: :dscf_banking_account
45
+ association :credit_account, factory: :dscf_banking_account
46
+
47
+ amount { 1000.00 }
48
+ currency { "ETB" }
49
+ description { "Test transaction" }
50
+ status { :pending }
51
+ end
52
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dscf-banking
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eyosiyas Mekbib
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-09-13 00:00:00.000000000 Z
10
+ date: 2025-09-20 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: rails
@@ -447,6 +447,8 @@ files:
447
447
  - app/controllers/dscf/banking/interest_rate_types_controller.rb
448
448
  - app/controllers/dscf/banking/product_approvals_controller.rb
449
449
  - app/controllers/dscf/banking/product_categories_controller.rb
450
+ - app/controllers/dscf/banking/transaction_types_controller.rb
451
+ - app/controllers/dscf/banking/transactions_controller.rb
450
452
  - app/controllers/dscf/banking/virtual_account_products_controller.rb
451
453
  - app/jobs/dscf/banking/application_job.rb
452
454
  - app/mailers/dscf/banking/application_mailer.rb
@@ -460,6 +462,8 @@ files:
460
462
  - app/models/dscf/banking/product_approval.rb
461
463
  - app/models/dscf/banking/product_audit_log.rb
462
464
  - app/models/dscf/banking/product_category.rb
465
+ - app/models/dscf/banking/transaction.rb
466
+ - app/models/dscf/banking/transaction_type.rb
463
467
  - app/models/dscf/banking/virtual_account_product.rb
464
468
  - app/serializers/dscf/banking/account_serializer.rb
465
469
  - app/serializers/dscf/banking/application_serializer.rb
@@ -468,8 +472,14 @@ files:
468
472
  - app/serializers/dscf/banking/interest_rate_type_serializer.rb
469
473
  - app/serializers/dscf/banking/product_approval_serializer.rb
470
474
  - app/serializers/dscf/banking/product_category_serializer.rb
475
+ - app/serializers/dscf/banking/transaction_serializer.rb
476
+ - app/serializers/dscf/banking/transaction_type_serializer.rb
471
477
  - app/serializers/dscf/banking/virtual_account_product_serializer.rb
472
478
  - app/services/dscf/banking/account_creation_service.rb
479
+ - app/services/dscf/banking/base_transaction_service.rb
480
+ - app/services/dscf/banking/deposit_service.rb
481
+ - app/services/dscf/banking/transfer_service.rb
482
+ - app/services/dscf/banking/withdrawal_service.rb
473
483
  - config/routes.rb
474
484
  - db/migrate/20250830211002_create_dscf_banking_product_categories.rb
475
485
  - db/migrate/20250830211027_create_dscf_banking_interest_rate_types.rb
@@ -482,6 +492,11 @@ files:
482
492
  - db/migrate/20250831084706_allow_null_virtual_account_product_id_in_product_audit_logs.rb
483
493
  - db/migrate/20250912193134_create_dscf_banking_applications.rb
484
494
  - db/migrate/20250912203527_create_dscf_banking_accounts.rb
495
+ - db/migrate/20250919084147_add_account_type_to_accounts.rb
496
+ - db/migrate/20250919084927_make_account_associations_optional.rb
497
+ - db/migrate/20250919182831_create_dscf_banking_transaction_types.rb
498
+ - db/migrate/20250919184220_create_dscf_banking_transactions.rb
499
+ - db/seeds.rb
485
500
  - lib/dscf/banking.rb
486
501
  - lib/dscf/banking/engine.rb
487
502
  - lib/dscf/banking/version.rb
@@ -494,6 +509,8 @@ files:
494
509
  - spec/factories/dscf/banking/product_approvals.rb
495
510
  - spec/factories/dscf/banking/product_audit_logs.rb
496
511
  - spec/factories/dscf/banking/product_categories.rb
512
+ - spec/factories/dscf/banking/transaction_types.rb
513
+ - spec/factories/dscf/banking/transactions.rb
497
514
  - spec/factories/dscf/banking/virtual_account_products.rb
498
515
  homepage: https://mksaddis.com/
499
516
  licenses: []