Class: AuctionFunCore::Contracts::AuctionContext::PostAuction::ParticipantContract

Inherits:
AuctionFunCore::Contracts::ApplicationContract show all
Defined in:
lib/auction_fun_core/contracts/auction_context/post_auction/participant_contract.rb

Overview

This class is used to validate the participation of users in an auction. This contract ensures that both the auction and the participant exist and that the participant has already at least placed a bid. It utilizes repositories to fetch data about auctions, users, and bids.

Examples:

Using this class to validate a participant

contract = AuctionFunCore::Contracts::AuctionContext::PostAuction::ParticipantContract.new
attributes = { auction_id: 1, participant_id: 102 }
validation_result = contract.call(attributes)
if validation_result.success?
  puts "Participant validation passed"
else
  puts "Participant validation failed: #{validation_result.errors.to_h}"
end

Constant Summary collapse

I18N_SCOPE =

Scope for internationalization (i18n) entries specific to errors in this contract.

"contracts.errors.custom.auction_context.post_auction.participation"

Constants inherited from AuctionFunCore::Contracts::ApplicationContract

AuctionFunCore::Contracts::ApplicationContract::EMAIL_REGEX, AuctionFunCore::Contracts::ApplicationContract::I18N_MACRO_SCOPE

Constants included from Business::Configuration

Business::Configuration::AUCTION_KINDS, Business::Configuration::AUCTION_MAX_TITLE_LENGTH, Business::Configuration::AUCTION_MIN_TITLE_LENGTH, Business::Configuration::AUCTION_STATUSES, Business::Configuration::AUCTION_STOPWATCH_MAX_VALUE, Business::Configuration::AUCTION_STOPWATCH_MIN_VALUE, Business::Configuration::MAX_NAME_LENGTH, Business::Configuration::MAX_PASSWORD_LENGTH, Business::Configuration::MIN_NAME_LENGTH, Business::Configuration::MIN_PASSWORD_LENGTH