auction_fun_core 0.8.7 → 0.8.9

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 (77) hide show
  1. checksums.yaml +4 -4
  2. data/.standard.yml +2 -0
  3. data/CHANGELOG.md +23 -0
  4. data/Procfile +1 -0
  5. data/README.md +34 -32
  6. data/Rakefile +1 -1
  7. data/i18n/en-US/contracts/contracts.en-US.yml +3 -0
  8. data/i18n/en-US/mail/application.en-US.yml +7 -0
  9. data/i18n/en-US/mail/auction_context/pre_auction/auction_start_reminder.en-US.yml +11 -0
  10. data/i18n/pt-BR/contracts/contracts.pt-BR.yml +3 -0
  11. data/i18n/pt-BR/mail/application.pt-BR.yml +7 -0
  12. data/i18n/pt-BR/mail/auction_context/pre_auction/auction_start_reminder.pt-BR.yml +11 -0
  13. data/lib/auction_fun_core/business/configuration.rb +31 -0
  14. data/lib/auction_fun_core/business/token_generator.rb +19 -1
  15. data/lib/auction_fun_core/contracts/application_contract.rb +9 -1
  16. data/lib/auction_fun_core/contracts/auction_context/create_contract.rb +35 -20
  17. data/lib/auction_fun_core/contracts/auction_context/post_auction/participant_contract.rb +23 -1
  18. data/lib/auction_fun_core/contracts/auction_context/post_auction/winner_contract.rb +22 -1
  19. data/lib/auction_fun_core/contracts/auction_context/pre_auction/auction_start_reminder_contract.rb +48 -0
  20. data/lib/auction_fun_core/contracts/auction_context/processor/finish/closed_contract.rb +19 -7
  21. data/lib/auction_fun_core/contracts/auction_context/processor/finish/penny_contract.rb +19 -7
  22. data/lib/auction_fun_core/contracts/auction_context/processor/finish/standard_contract.rb +19 -7
  23. data/lib/auction_fun_core/contracts/auction_context/processor/pause_contract.rb +16 -4
  24. data/lib/auction_fun_core/contracts/auction_context/processor/start_contract.rb +17 -5
  25. data/lib/auction_fun_core/contracts/auction_context/processor/unpause_contract.rb +16 -4
  26. data/lib/auction_fun_core/contracts/bid_context/create_bid_closed_contract.rb +20 -11
  27. data/lib/auction_fun_core/contracts/bid_context/create_bid_penny_contract.rb +18 -9
  28. data/lib/auction_fun_core/contracts/bid_context/create_bid_standard_contract.rb +19 -10
  29. data/lib/auction_fun_core/contracts/staff_context/authentication_contract.rb +18 -4
  30. data/lib/auction_fun_core/contracts/staff_context/registration_contract.rb +20 -8
  31. data/lib/auction_fun_core/contracts/user_context/authentication_contract.rb +18 -4
  32. data/lib/auction_fun_core/contracts/user_context/email_confirmation_contract.rb +17 -2
  33. data/lib/auction_fun_core/contracts/user_context/phone_confirmation_contract.rb +17 -2
  34. data/lib/auction_fun_core/contracts/user_context/registration_contract.rb +26 -8
  35. data/lib/auction_fun_core/entities/auction.rb +48 -4
  36. data/lib/auction_fun_core/entities/bid.rb +3 -2
  37. data/lib/auction_fun_core/entities/staff.rb +15 -2
  38. data/lib/auction_fun_core/entities/user.rb +31 -2
  39. data/lib/auction_fun_core/events/app.rb +8 -2
  40. data/lib/auction_fun_core/events/listener.rb +19 -16
  41. data/lib/auction_fun_core/operations/auction_context/create_operation.rb +25 -9
  42. data/lib/auction_fun_core/operations/auction_context/post_auction/participant_operation.rb +36 -3
  43. data/lib/auction_fun_core/operations/auction_context/post_auction/winner_operation.rb +36 -2
  44. data/lib/auction_fun_core/operations/auction_context/pre_auction/auction_start_reminder_operation.rb +96 -0
  45. data/lib/auction_fun_core/operations/auction_context/processor/finish/closed_operation.rb +82 -10
  46. data/lib/auction_fun_core/operations/auction_context/processor/finish/penny_operation.rb +81 -10
  47. data/lib/auction_fun_core/operations/auction_context/processor/finish/standard_operation.rb +81 -12
  48. data/lib/auction_fun_core/operations/auction_context/processor/pause_operation.rb +36 -1
  49. data/lib/auction_fun_core/operations/auction_context/processor/unpause_operation.rb +36 -1
  50. data/lib/auction_fun_core/relations/auctions.rb +178 -97
  51. data/lib/auction_fun_core/relations/bids.rb +18 -0
  52. data/lib/auction_fun_core/repos/auction_context/auction_repository.rb +40 -11
  53. data/lib/auction_fun_core/repos/bid_context/bid_repository.rb +27 -5
  54. data/lib/auction_fun_core/repos/staff_context/staff_repository.rb +63 -21
  55. data/lib/auction_fun_core/repos/user_context/user_repository.rb +69 -25
  56. data/lib/auction_fun_core/services/mail/auction_context/post_auction/participant_mailer.rb +7 -1
  57. data/lib/auction_fun_core/services/mail/auction_context/post_auction/winner_mailer.rb +7 -1
  58. data/lib/auction_fun_core/services/mail/auction_context/pre_auction/auction_start_reminder_mailer.rb +35 -0
  59. data/lib/auction_fun_core/services/mail/templates/auction_context/post_auction/participant.html.erb +1 -1
  60. data/lib/auction_fun_core/services/mail/templates/auction_context/post_auction/winner.html.erb +1 -1
  61. data/lib/auction_fun_core/services/mail/templates/auction_context/pre_auction/auction_start_reminder.html.erb +192 -0
  62. data/lib/auction_fun_core/services/mail/user_context/registration_mailer.rb +6 -0
  63. data/lib/auction_fun_core/version.rb +1 -1
  64. data/lib/auction_fun_core/workers/application_job.rb +10 -0
  65. data/lib/auction_fun_core/workers/operations/auction_context/post_auction/participant_operation_job.rb +7 -2
  66. data/lib/auction_fun_core/workers/operations/auction_context/post_auction/winner_operation_job.rb +6 -2
  67. data/lib/auction_fun_core/workers/operations/auction_context/pre_auction/auction_start_reminder_operation_job.rb +44 -0
  68. data/lib/auction_fun_core/workers/operations/auction_context/processor/finish/closed_operation_job.rb +6 -3
  69. data/lib/auction_fun_core/workers/operations/auction_context/processor/finish/penny_operation_job.rb +6 -3
  70. data/lib/auction_fun_core/workers/operations/auction_context/processor/finish/standard_operation_job.rb +6 -2
  71. data/lib/auction_fun_core/workers/operations/auction_context/processor/start_operation_job.rb +6 -3
  72. data/lib/auction_fun_core/workers/services/mail/auction_context/post_auction/participant_mailer_job.rb +12 -7
  73. data/lib/auction_fun_core/workers/services/mail/auction_context/post_auction/winner_mailer_job.rb +11 -5
  74. data/lib/auction_fun_core/workers/services/mail/auction_context/pre_auction/auction_start_reminder_mailer_job.rb +48 -0
  75. data/lib/auction_fun_core/workers/services/mail/user_context/registration_mailer_job.rb +8 -6
  76. data/system/providers/background_job.rb +6 -0
  77. metadata +10 -2
@@ -6,13 +6,17 @@ module AuctionFunCore
6
6
  module AuctionContext
7
7
  module PostAuction
8
8
  ##
9
- # BackgroundJob class for call finish auction operation.
9
+ # Background job class responsible for performing winner operations after an finished auction.
10
10
  class WinnerOperationJob < Workers::ApplicationJob
11
11
  include Import["repos.user_context.user_repository"]
12
12
  include Import["repos.auction_context.auction_repository"]
13
13
  include Import["operations.auction_context.post_auction.winner_operation"]
14
14
 
15
- # @todo Add detailed documentation
15
+ # Executes the winner operation for the specified auction and winner.
16
+ #
17
+ # @param auction_id [Integer] The ID of the auction.
18
+ # @param winner_id [Integer] The ID of the winner.
19
+ # @param retry_count [Integer] The current retry count for the job.
16
20
  def perform(auction_id, winner_id, retry_count = 0)
17
21
  auction = auction_repository.by_id!(auction_id)
18
22
  winner = user_repository.by_id!(winner_id)
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AuctionFunCore
4
+ module Workers
5
+ module Operations
6
+ module AuctionContext
7
+ module PreAuction
8
+ ##
9
+ # Background job class responsible for sending auction start reminders
10
+ class AuctionStartReminderOperationJob < Workers::ApplicationJob
11
+ include Import["repos.user_context.user_repository"]
12
+ include Import["repos.auction_context.auction_repository"]
13
+
14
+ # Executes the auction start reminder operation for the specified auction.
15
+ #
16
+ # @param auction_id [Integer] The ID of the auction.
17
+ # @param retry_count [Integer] The current retry count for the job.
18
+ # @return [void]
19
+ def perform(auction_id, retry_count = 0)
20
+ auction = auction_repository.by_id!(auction_id)
21
+
22
+ auction_start_reminder_operation.call(auction_id: auction.id)
23
+ rescue => e
24
+ capture_exception(e, {auction_id: auction_id, retry_count: retry_count})
25
+ raise if retry_count >= MAX_RETRIES
26
+
27
+ interval = backoff_exponential_job(retry_count)
28
+ self.class.perform_at(interval, auction_id, retry_count + 1)
29
+ end
30
+
31
+ private
32
+
33
+ # Retrieves the auction start reminder operation.
34
+ #
35
+ # @return [Class] The auction start reminder operation class.
36
+ def auction_start_reminder_operation
37
+ AuctionFunCore::Operations::AuctionContext::PreAuction::AuctionStartReminderOperation
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -7,13 +7,16 @@ module AuctionFunCore
7
7
  module Processor
8
8
  module Finish
9
9
  ##
10
- # BackgroundJob class for call finish closed auction operation.
11
- #
10
+ # Background job class responsible for call finish closed auction operation.
12
11
  class ClosedOperationJob < Workers::ApplicationJob
13
12
  include Import["repos.auction_context.auction_repository"]
14
13
  include Import["operations.auction_context.processor.finish.closed_operation"]
15
14
 
16
- # @todo Add detailed documentation
15
+ # Executes the operation to finish a closed auction.
16
+ #
17
+ # @param auction_id [Integer] The ID of the closed auction.
18
+ # @param retry_count [Integer] The current retry count for the job.
19
+ # @return [void]
17
20
  def perform(auction_id, retry_count = 0)
18
21
  auction = auction_repository.by_id!(auction_id)
19
22
 
@@ -7,8 +7,7 @@ module AuctionFunCore
7
7
  module Processor
8
8
  module Finish
9
9
  ##
10
- # BackgroundJob class for call finish penny auction operation.
11
- #
10
+ # Background job class responsible for call finish penny auction operation.
12
11
  class PennyOperationJob < Workers::ApplicationJob
13
12
  include Sidekiq::Worker
14
13
  include Import["repos.auction_context.auction_repository"]
@@ -16,7 +15,11 @@ module AuctionFunCore
16
15
 
17
16
  sidekiq_options queue: "default", lock: :until_executed, on_conflict: :replace
18
17
 
19
- # @todo Add detailed documentation
18
+ # Executes the operation to finish a penny auction.
19
+ #
20
+ # @param auction_id [Integer] The ID of the penny auction.
21
+ # @param retry_count [Integer] The current retry count for the job.
22
+ # @return [void]
20
23
  def perform(auction_id, retry_count = 0)
21
24
  auction = auction_repository.by_id!(auction_id)
22
25
 
@@ -7,13 +7,17 @@ module AuctionFunCore
7
7
  module Processor
8
8
  module Finish
9
9
  ##
10
- # BackgroundJob class for call finish standard auction operation.
10
+ # Background job class responsible for call finish standard auction operation.
11
11
  #
12
12
  class StandardOperationJob < Workers::ApplicationJob
13
13
  include Import["repos.auction_context.auction_repository"]
14
14
  include Import["operations.auction_context.processor.finish.standard_operation"]
15
15
 
16
- # @todo Add detailed documentation
16
+ # Executes the operation to finish a standard auction.
17
+ #
18
+ # @param auction_id [Integer] The ID of the standard auction.
19
+ # @param retry_count [Integer] The current retry count for the job.
20
+ # @return [void]
17
21
  def perform(auction_id, retry_count = 0)
18
22
  auction = auction_repository.by_id!(auction_id)
19
23
 
@@ -6,13 +6,16 @@ module AuctionFunCore
6
6
  module AuctionContext
7
7
  module Processor
8
8
  ##
9
- # BackgroundJob class for call start auction operation.
10
- #
9
+ # Background job class responsible for call start auction operation.
11
10
  class StartOperationJob < AuctionFunCore::Workers::ApplicationJob
12
11
  include Import["repos.auction_context.auction_repository"]
13
12
  include Import["operations.auction_context.processor.start_operation"]
14
13
 
15
- # @todo Add detailed documentation
14
+ # Executes the operation to start an auction.
15
+ #
16
+ # @param auction_id [Integer] The ID of the auction to start.
17
+ # @param retry_count [Integer] The current retry count for the job.
18
+ # @return [void]
16
19
  def perform(auction_id, retry_count = 0)
17
20
  auction = auction_repository.by_id!(auction_id)
18
21
 
@@ -7,14 +7,17 @@ module AuctionFunCore
7
7
  module AuctionContext
8
8
  module PostAuction
9
9
  ##
10
- # Background job class responsible for adding emails to the queue.
11
- #
10
+ # Background job class responsible for queuing participant emails.
12
11
  class ParticipantMailerJob < AuctionFunCore::Workers::ApplicationJob
13
12
  include Import["repos.user_context.user_repository"]
14
13
  include Import["repos.auction_context.auction_repository"]
15
14
 
16
- # @param auction_id [Integer] auction ID
17
- # @param participant_id [Integer] user ID
15
+ # Reads the statistics of a participant in an auction and sends it by email.
16
+ #
17
+ # @param auction_id [Integer] The ID of the auction.
18
+ # @param participant_id [Integer] The ID of the participant.
19
+ # @param retry_count [Integer] The current retry count for the job.
20
+ # @return [void]
18
21
  def perform(auction_id, participant_id, retry_count = 0)
19
22
  auction = auction_repository.by_id!(auction_id)
20
23
  participant = user_repository.by_id!(participant_id)
@@ -32,13 +35,15 @@ module AuctionFunCore
32
35
 
33
36
  private
34
37
 
35
- # Since the shipping code structure does not follow project conventions,
36
- # making the default injection dependency would be more complicated.
37
- # Therefore, here I directly explain the class to be called.
38
+ # Directly specifies the class to be called due to non-standard dependency injection.
39
+ # @return [Class] The participant mailer class.
38
40
  def participant_mailer
39
41
  AuctionFunCore::Services::Mail::AuctionContext::PostAuction::ParticipantMailer
40
42
  end
41
43
 
44
+ # Retrieves the relation for loading participant statistics.
45
+ #
46
+ # @return [ROM::Relation] The relation object.
42
47
  def relation
43
48
  AuctionFunCore::Application[:container].relations[:auctions]
44
49
  end
@@ -13,8 +13,12 @@ module AuctionFunCore
13
13
  include Import["repos.user_context.user_repository"]
14
14
  include Import["repos.auction_context.auction_repository"]
15
15
 
16
- # @param auction_id [Integer] auction ID
17
- # @param winner_id [Integer] user ID
16
+ # Reads the statistics of a winner in an auction and sends it by email.
17
+ #
18
+ # @param auction_id [Integer] The ID of the auction.
19
+ # @param winner_id [Integer] The ID of the winner.
20
+ # @param retry_count [Integer] The current retry count for the job.
21
+ # @return [void]
18
22
  def perform(auction_id, winner_id, retry_count = 0)
19
23
  auction = auction_repository.by_id!(auction_id)
20
24
  winner = user_repository.by_id!(winner_id)
@@ -32,13 +36,15 @@ module AuctionFunCore
32
36
 
33
37
  private
34
38
 
35
- # Since the shipping code structure does not follow project conventions,
36
- # making the default injection dependency would be more complicated.
37
- # Therefore, here I directly explain the class to be called.
39
+ # Directly specifies the class to be called due to non-standard dependency injection.
40
+ # @return [Class] The winner mailer class.
38
41
  def winner_mailer
39
42
  AuctionFunCore::Services::Mail::AuctionContext::PostAuction::WinnerMailer
40
43
  end
41
44
 
45
+ # Retrieves the relation for loading winner statistics.
46
+ #
47
+ # @return [ROM::Relation] The relation object.
42
48
  def relation
43
49
  AuctionFunCore::Application[:container].relations[:auctions]
44
50
  end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AuctionFunCore
4
+ module Workers
5
+ module Services
6
+ module Mail
7
+ module AuctionContext
8
+ module PreAuction
9
+ ##
10
+ # Background job class responsible for adding auction start emails to the queue.
11
+ class AuctionStartReminderMailerJob < AuctionFunCore::Workers::ApplicationJob
12
+ include Import["repos.user_context.user_repository"]
13
+ include Import["repos.auction_context.auction_repository"]
14
+
15
+ # Executes the operation of sending an email to the participant notifying
16
+ # them of the start of the auction.
17
+ #
18
+ # @param auction_id [Integer] The ID of the standard auction.
19
+ # @param participant_id [Integer] The ID of the participant
20
+ # @param retry_count [Integer] The current retry count for the job.
21
+ # @return [void]
22
+ def perform(auction_id, participant_id, retry_count = 0)
23
+ auction = auction_repository.by_id!(auction_id)
24
+ participant = user_repository.by_id!(participant_id)
25
+
26
+ auction_start_reminder_mailer.new(auction, participant).deliver
27
+ rescue => e
28
+ capture_exception(e, {auction_id: auction_id, participant_id: participant_id, retry_count: retry_count})
29
+ raise e if retry_count >= MAX_RETRIES
30
+
31
+ interval = backoff_exponential_job(retry_count)
32
+ self.class.perform_at(interval, auction_id, participant_id, retry_count + 1)
33
+ end
34
+
35
+ private
36
+
37
+ # Directly specifies the class to be called due to non-standard dependency injection.
38
+ # @return [Class] The auction start reminder mailer class.
39
+ def auction_start_reminder_mailer
40
+ AuctionFunCore::Services::Mail::AuctionContext::PreAuction::AuctionStartReminderMailer
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -6,12 +6,15 @@ module AuctionFunCore
6
6
  module Mail
7
7
  module UserContext
8
8
  ##
9
- # Background job class responsible for adding emails to the queue.
10
- #
9
+ # Background job class responsible for queuing registration emails.
11
10
  class RegistrationMailerJob < AuctionFunCore::Workers::ApplicationJob
12
11
  include Import["repos.user_context.user_repository"]
13
12
 
14
- # @param user_id [Integer] user ID
13
+ # Initializes a new RegistrationMailerJob instance.
14
+ #
15
+ # @param user_id [Integer] The ID of the user.
16
+ # @param retry_count [Integer] The current retry count for the job.
17
+ # @return [void]
15
18
  def perform(user_id, retry_count = 0)
16
19
  user = user_repository.by_id!(user_id)
17
20
 
@@ -26,9 +29,8 @@ module AuctionFunCore
26
29
 
27
30
  private
28
31
 
29
- # Since the shipping code structure does not follow project conventions,
30
- # making the default injection dependency would be more complicated.
31
- # Therefore, here I directly explain the class to be called.
32
+ # Directly specifies the class to be called due to non-standard dependency injection.
33
+ # @return [Class] The registration mailer class.
32
34
  def registration_mailer
33
35
  AuctionFunCore::Services::Mail::UserContext::RegistrationMailer
34
36
  end
@@ -8,22 +8,28 @@ AuctionFunCore::Application.register_provider(:background_job) do
8
8
 
9
9
  start do
10
10
  Sidekiq.configure_server do |config|
11
+ # Set up Sidekiq server configuration
11
12
  config.redis = {url: target[:settings].redis_url}
12
13
  config.logger = target[:settings].logger
13
14
  config.average_scheduled_poll_interval = 3
14
15
 
16
+ # Configure client middleware for uniqueness
15
17
  config.client_middleware do |chain|
16
18
  chain.add SidekiqUniqueJobs::Middleware::Client
17
19
  end
18
20
 
21
+ # Configure server middleware for uniqueness
19
22
  config.server_middleware do |chain|
20
23
  chain.add SidekiqUniqueJobs::Middleware::Server
21
24
  end
22
25
 
26
+ # Configure Sidekiq Unique Jobs for the server
23
27
  SidekiqUniqueJobs::Server.configure(config)
24
28
  end
25
29
 
30
+ # Configure client middleware for uniqueness
26
31
  Sidekiq.configure_client do |config|
32
+ # Set up Sidekiq client configuration
27
33
  config.redis = {url: target[:settings].redis_url}
28
34
 
29
35
  config.client_middleware do |chain|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: auction_fun_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.7
4
+ version: 0.8.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ricardo Pacheco
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-04-22 00:00:00.000000000 Z
11
+ date: 2024-04-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -312,11 +312,13 @@ files:
312
312
  - i18n/en-US/mail/application.en-US.yml
313
313
  - i18n/en-US/mail/auction_context/post_auction/participant.en-US.yml
314
314
  - i18n/en-US/mail/auction_context/post_auction/winner.en-US.yml
315
+ - i18n/en-US/mail/auction_context/pre_auction/auction_start_reminder.en-US.yml
315
316
  - i18n/en-US/mail/user_context/registration.en-US.yml
316
317
  - i18n/pt-BR/contracts/contracts.pt-BR.yml
317
318
  - i18n/pt-BR/mail/application.pt-BR.yml
318
319
  - i18n/pt-BR/mail/auction_context/post_auction/participant.pt-BR.yml
319
320
  - i18n/pt-BR/mail/auction_context/post_auction/winner.pt-BR.yml
321
+ - i18n/pt-BR/mail/auction_context/pre_auction/auction_start_reminder.pt-BR.yml
320
322
  - i18n/pt-BR/mail/user_context/registration.pt-BR.yml
321
323
  - lib/auction_fun_core.rb
322
324
  - lib/auction_fun_core/business/configuration.rb
@@ -333,6 +335,7 @@ files:
333
335
  - lib/auction_fun_core/contracts/auction_context/create_contract.rb
334
336
  - lib/auction_fun_core/contracts/auction_context/post_auction/participant_contract.rb
335
337
  - lib/auction_fun_core/contracts/auction_context/post_auction/winner_contract.rb
338
+ - lib/auction_fun_core/contracts/auction_context/pre_auction/auction_start_reminder_contract.rb
336
339
  - lib/auction_fun_core/contracts/auction_context/processor/finish/closed_contract.rb
337
340
  - lib/auction_fun_core/contracts/auction_context/processor/finish/penny_contract.rb
338
341
  - lib/auction_fun_core/contracts/auction_context/processor/finish/standard_contract.rb
@@ -357,6 +360,7 @@ files:
357
360
  - lib/auction_fun_core/operations/auction_context/create_operation.rb
358
361
  - lib/auction_fun_core/operations/auction_context/post_auction/participant_operation.rb
359
362
  - lib/auction_fun_core/operations/auction_context/post_auction/winner_operation.rb
363
+ - lib/auction_fun_core/operations/auction_context/pre_auction/auction_start_reminder_operation.rb
360
364
  - lib/auction_fun_core/operations/auction_context/processor/finish/closed_operation.rb
361
365
  - lib/auction_fun_core/operations/auction_context/processor/finish/penny_operation.rb
362
366
  - lib/auction_fun_core/operations/auction_context/processor/finish/standard_operation.rb
@@ -383,8 +387,10 @@ files:
383
387
  - lib/auction_fun_core/repos/user_context/user_repository.rb
384
388
  - lib/auction_fun_core/services/mail/auction_context/post_auction/participant_mailer.rb
385
389
  - lib/auction_fun_core/services/mail/auction_context/post_auction/winner_mailer.rb
390
+ - lib/auction_fun_core/services/mail/auction_context/pre_auction/auction_start_reminder_mailer.rb
386
391
  - lib/auction_fun_core/services/mail/templates/auction_context/post_auction/participant.html.erb
387
392
  - lib/auction_fun_core/services/mail/templates/auction_context/post_auction/winner.html.erb
393
+ - lib/auction_fun_core/services/mail/templates/auction_context/pre_auction/auction_start_reminder.html.erb
388
394
  - lib/auction_fun_core/services/mail/templates/layout.html.erb
389
395
  - lib/auction_fun_core/services/mail/templates/user_context/registration.html.erb
390
396
  - lib/auction_fun_core/services/mail/user_context/registration_mailer.rb
@@ -392,12 +398,14 @@ files:
392
398
  - lib/auction_fun_core/workers/application_job.rb
393
399
  - lib/auction_fun_core/workers/operations/auction_context/post_auction/participant_operation_job.rb
394
400
  - lib/auction_fun_core/workers/operations/auction_context/post_auction/winner_operation_job.rb
401
+ - lib/auction_fun_core/workers/operations/auction_context/pre_auction/auction_start_reminder_operation_job.rb
395
402
  - lib/auction_fun_core/workers/operations/auction_context/processor/finish/closed_operation_job.rb
396
403
  - lib/auction_fun_core/workers/operations/auction_context/processor/finish/penny_operation_job.rb
397
404
  - lib/auction_fun_core/workers/operations/auction_context/processor/finish/standard_operation_job.rb
398
405
  - lib/auction_fun_core/workers/operations/auction_context/processor/start_operation_job.rb
399
406
  - lib/auction_fun_core/workers/services/mail/auction_context/post_auction/participant_mailer_job.rb
400
407
  - lib/auction_fun_core/workers/services/mail/auction_context/post_auction/winner_mailer_job.rb
408
+ - lib/auction_fun_core/workers/services/mail/auction_context/pre_auction/auction_start_reminder_mailer_job.rb
401
409
  - lib/auction_fun_core/workers/services/mail/user_context/registration_mailer_job.rb
402
410
  - lib/tasks/database.rake
403
411
  - system/providers/background_job.rb