auction_fun_core 0.8.7 → 0.8.9

Sign up to get free protection for your applications and to get access to all the features.
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