Sugestões

This commit is contained in:
Clóvis Fabrício Costa 2023-06-14 17:50:31 -03:00
parent cefc72c5ba
commit 3933aa1e9a
1 changed files with 12 additions and 11 deletions

View File

@ -121,18 +121,19 @@ def seller_screen():
def suggest_numbers(raffle_id, amount=3):
suggestions = []
tickets = iter(Ticket.query.filter_by(raffle_id=raffle_id).order_by(Ticket.chosen_number.asc()))
next_ticket = next(tickets, None)
nums_needed = target_pool_size = max(amount * 2, 50)
possible_suggestions = []
candidate_number = 1
while len(suggestions) < max(amount, 50) and next_ticket:
if candidate_number < next_ticket.chosen_number:
suggestions.append(candidate_number)
else:
next_ticket = next(tickets, None)
candidate_number += 1
suggestions.extend(range(candidate_number, candidate_number + (max(amount, 50) - len(suggestions))))
return sorted(random.sample(suggestions, amount))
for ticket in Ticket.query.filter_by(raffle_id=raffle_id).order_by(Ticket.chosen_number.asc()):
possible_suggestions.extend(range(candidate_number, min(ticket.chosen_number, candidate_number + nums_needed)))
candidate_number = ticket.chosen_number + 1
if len(possible_suggestions) >= target_pool_size:
nums_needed = 0
break
nums_needed = target_pool_size - len(possible_suggestions)
possible_suggestions.extend(range(candidate_number, candidate_number + nums_needed))
return sorted(random.sample(possible_suggestions, amount))
@app.route('/numeros/<purchase_id>', methods=['GET', 'POST'])