The objective is to develop a "Sweep" feature within our Discord bot to streamline the hosting, entry, and management of sweepstakes for races such as F1, Supercars and Melbourne Cup. This feature aims to automate the sweepstakes process, facilitating a smooth operation from hosting sweeps to distributing sweep records to participants.
Feature Requirements:
Sweep Hosting: Users should be able to initiate a sweepstake by executing a command like /sweep host <title> <date_time>. This command would generate a unique sweep ID and present the host with a modal for entering sweep records (using a multi-line text box for input, separated by new lines or commas) and specifying the cost per record in a separate text box.
Starting a Sweep: With the sweep set up, the host can then start it using /sweep start <sweep_id>. This action would post a form in the chat featuring a join button for members to enter the sweep. The form should remain active until the specified date_time is reached, at which point the join button becomes disabled, and a message is automatically sent in the chat to each participant detailing their allocated records and the associated cost.
Sweep Termination: After the sweepstakes have concluded and records have been allocated, the application will not process payments nor retain sweep data in the database beyond the distribution of records. Handling of any transactions will be the responsibility of the sweep's host.
Implementation Considerations:
The application should ensure a user-friendly interface for both hosting and joining sweeps.
It must handle the temporary storage of sweep information securely and ensure data deletion post-allocation of records.
The development should focus on reliability and ease of use to encourage participation and engagement within the community.
The application should intelligently manage the distribution of sweep records among participants. In cases where the number of records cannot be evenly divided by the number of entrants (records % entrants != 0), the remaining records should be pooled into a "Reserve Pool". This pool can then be made available for additional actions as decided by the sweep host, such as offering them to interested participants, holding a mini-draw for these extra records, or any other fair method of allocation. This approach ensures that all records are utilised and participants have equal opportunities to benefit from the sweepstakes.
The objective is to develop a "Sweep" feature within our Discord bot to streamline the hosting, entry, and management of sweepstakes for races such as F1, Supercars and Melbourne Cup. This feature aims to automate the sweepstakes process, facilitating a smooth operation from hosting sweeps to distributing sweep records to participants.
Feature Requirements:
Sweep Hosting: Users should be able to initiate a sweepstake by executing a command like
/sweep host <title> <date_time>
. This command would generate a unique sweep ID and present the host with a modal for entering sweep records (using a multi-line text box for input, separated by new lines or commas) and specifying the cost per record in a separate text box.Starting a Sweep: With the sweep set up, the host can then start it using
/sweep start <sweep_id>
. This action would post a form in the chat featuring a join button for members to enter the sweep. The form should remain active until the specified date_time is reached, at which point the join button becomes disabled, and a message is automatically sent in the chat to each participant detailing their allocated records and the associated cost.Sweep Termination: After the sweepstakes have concluded and records have been allocated, the application will not process payments nor retain sweep data in the database beyond the distribution of records. Handling of any transactions will be the responsibility of the sweep's host.
Implementation Considerations:
The application should intelligently manage the distribution of sweep records among participants. In cases where the number of records cannot be evenly divided by the number of entrants (
records % entrants != 0
), the remaining records should be pooled into a "Reserve Pool". This pool can then be made available for additional actions as decided by the sweep host, such as offering them to interested participants, holding a mini-draw for these extra records, or any other fair method of allocation. This approach ensures that all records are utilised and participants have equal opportunities to benefit from the sweepstakes.