diff --git a/src/controllers/draw.controller.js b/src/controllers/draw.controller.js index 642819d6..0ee370c8 100644 --- a/src/controllers/draw.controller.js +++ b/src/controllers/draw.controller.js @@ -13,6 +13,7 @@ export const getEligibleParticipants = asyncHandler(async (req, res) => { // Requête pour obtenir les utilisateurs éligibles // Pour le tirage au sort du gros lot, tous les participants ont une chance égale + // Note: Les utilisateurs inactifs (compte supprimé) sont inclus s'ils ont des tickets validés const query = ` SELECT u.id, @@ -20,6 +21,7 @@ export const getEligibleParticipants = asyncHandler(async (req, res) => { u.first_name, u.last_name, u.is_verified, + u.is_active, u.created_at, COALESCE(COUNT(DISTINCT t.id), 0) as tickets_played, COALESCE(COUNT(DISTINCT CASE WHEN t.status = 'CLAIMED' THEN t.id END), 0) as prizes_won @@ -27,7 +29,7 @@ export const getEligibleParticipants = asyncHandler(async (req, res) => { LEFT JOIN tickets t ON u.id = t.user_id AND t.played_at IS NOT NULL WHERE u.role = 'CLIENT' ${verified === 'true' ? 'AND u.is_verified = TRUE' : ''} - GROUP BY u.id, u.email, u.first_name, u.last_name, u.is_verified, u.created_at + GROUP BY u.id, u.email, u.first_name, u.last_name, u.is_verified, u.is_active, u.created_at ${parseInt(minTickets) > 0 ? 'HAVING COUNT(DISTINCT t.id) >= $1' : ''} ORDER BY u.created_at ASC `;