Insignias por X Soluciones Creadas?

Hola, me preguntaba si había alguna plantilla o consulta estándar para otorgar insignias por una cierta cantidad de soluciones? Por ejemplo, respondo a unas 10 publicaciones/preguntas y todas son marcadas como soluciones. Obtengo una insignia por esto y cada insignia correspondiente por 20, 30, 40 soluciones marcadas, etc.

Intenté buscar las consultas estándar pero no parecieron estar ahí. Veo que hay algunas consultas personalizadas escritas aquí.

Gracias,

Hay un par que vienen con el plugin que puedes habilitar desde la página /admin/badges (HelpDesk y TechSupport). Pero aquí están las consultas si quieres adaptarlas:

SELECT p.user_id, p.id post_id, p.updated_at granted_at
FROM badge_posts p
WHERE p.post_number > 1 AND
    p.id IN (
      SELECT post_id FROM (
       SELECT pc.post_id, row_number()
       OVER (PARTITION BY p1.user_id ORDER BY pc.created_at) as rnum
       FROM post_custom_fields pc
       JOIN badge_posts p1 ON p1.id = pc.post_id
       JOIN topics t1 ON p1.topic_id = t1.id
       WHERE name = 'is_accepted_answer' AND
                    p1.user_id <> t1.user_id AND
        (
          :backfill OR
           p1.user_id IN (
                   select user_id from posts where p1.id IN (:post_ids)
           )
       )
) X  WHERE rnum = 1)

SELECT id user_id, current_timestamp granted_at
FROM users
WHERE id  IN (
       SELECT p1.user_id
       FROM post_custom_fields pc
       JOIN badge_posts p1 ON p1.id = pc.post_id
       JOIN topics t1 ON p1.topic_id = t1.id
       WHERE p1.user_id <> t1.user_id AND
                    name = 'is_accepted_answer' AND
            p1.user_id IN (
                   SELECT user_id
                   FROM posts
                   WHERE :backfill OR  p1.id IN (:post_ids)
            )
        GROUP BY p1.user_id
        HAVING COUNT(*) > 9
)
2 Me gusta

Gracias @JammyDodger,

Puede que necesite un poco más de ayuda. ¿Tienen alguna documentación que identifique algunos de los selectores/campos para una solución?

Screen Shot 2022-06-06 at 11.05.29 AM

No te preocupes. :slightly_smiling_face: El explorador de datos es realmente bueno para probar consultas antes de agregarlas como insignias SQL personalizadas (aunque las del explorador de datos no necesitan la parte de backfill).

Aunque creo que la segunda consulta anterior tiene toda la información que necesitas. Las soluciones se guardan en la tabla post_cutom_field como is_accepted_answer en la columna name. Y esa segunda consulta otorga la insignia de Soporte Técnico por 10 soluciones (HAVING COUNT(*) > 9), por lo que para las que quieres del OP solo necesitas copiar esa consulta y cambiar el número inferior a 19, 29, 39, y así sucesivamente.

1 me gusta