{ "badges": [ { "id": 9, "name": "Autobiographer", "description": null, "grant_count": 0, "allow_title": false, "multiple_grant": false, "icon": "fa-certificate", "image": null, "listable": true, "enabled": true, "badge_grouping_id": 1, "system": true, "query": " SELECT u.id user_id, current_timestamp granted_at\n FROM users u\n JOIN user_profiles up on u.id = up.user_id\n WHERE bio_raw IS NOT NULL AND LENGTH(TRIM(bio_raw)) > 10 AND\n uploaded_avatar_id IS NOT NULL AND\n (:backfill OR u.id IN (:user_ids) )\n", "trigger": 8, "target_posts": false, "auto_revoke": true, "show_posts": false, "badge_type_id": 3 }, { "id": 11, "name": "First Like", "description": null, "grant_count": 1, "allow_title": false, "multiple_grant": false, "icon": "fa-certificate", "image": null, "listable": true, "enabled": true, "badge_grouping_id": 1, "system": true, "query": " SELECT pa1.user_id, pa1.created_at granted_at, pa1.post_id\n FROM (\n SELECT pa.user_id, min(pa.id) id\n FROM post_actions pa\n JOIN badge_posts p on p.id = pa.post_id\n WHERE post_action_type_id = 2 AND\n (:backfill OR pa.post_id IN (:post_ids) )\n GROUP BY pa.user_id\n ) x\n JOIN post_actions pa1 on pa1.id = x.id\n", "trigger": 1, "target_posts": true, "auto_revoke": true, "show_posts": true, "badge_type_id": 3 }, { "id": 14, "name": "First Link", "description": null, "grant_count": 0, "allow_title": false, "multiple_grant": false, "icon": "fa-certificate", "image": null, "listable": true, "enabled": true, "badge_grouping_id": 1, "system": true, "query": " SELECT l.user_id, l.post_id, l.created_at granted_at\n FROM\n (\n SELECT MIN(l1.id) id\n FROM topic_links l1\n JOIN badge_posts p1 ON p1.id = l1.post_id\n JOIN badge_posts p2 ON p2.id = l1.link_post_id\n WHERE NOT reflection AND p1.topic_id <> p2.topic_id AND not quote AND\n (:backfill OR ( p1.id in (:post_ids) ))\n GROUP BY l1.user_id\n ) ids\n JOIN topic_links l ON l.id = ids.id\n", "trigger": 2, "target_posts": true, "auto_revoke": true, "show_posts": true, "badge_type_id": 3 }, { "id": 15, "name": "First Quote", "description": null, "grant_count": 0, "allow_title": false, "multiple_grant": false, "icon": "fa-certificate", "image": null, "listable": true, "enabled": true, "badge_grouping_id": 1, "system": true, "query": " SELECT ids.user_id, q.post_id, q.created_at granted_at\n FROM\n (\n SELECT p1.user_id, MIN(q1.id) id\n FROM quoted_posts q1\n JOIN badge_posts p1 ON p1.id = q1.post_id\n JOIN badge_posts p2 ON p2.id = q1.quoted_post_id\n WHERE (:backfill OR ( p1.id IN (:post_ids) ))\n GROUP BY p1.user_id\n ) ids\n JOIN quoted_posts q ON q.id = ids.id\n", "trigger": 2, "target_posts": true, "auto_revoke": true, "show_posts": true, "badge_type_id": 3 }, { "id": 12, "name": "First Share", "description": null, "grant_count": 0, "allow_title": false, "multiple_grant": false, "icon": "fa-certificate", "image": null, "listable": true, "enabled": true, "badge_grouping_id": 1, "system": true, "query": " SELECT views.user_id, i2.post_id, i2.created_at granted_at\n FROM\n (\n SELECT i.user_id, MIN(i.id) i_id\n FROM incoming_links i\n JOIN badge_posts p on p.id = i.post_id\n WHERE i.user_id IS NOT NULL\n GROUP BY i.user_id\n ) as views\n JOIN incoming_links i2 ON i2.id = views.i_id\n", "trigger": 0, "target_posts": true, "auto_revoke": true, "show_posts": true, "badge_type_id": 3 }, { "id": 16, "name": "Read Guidelines", "description": null, "grant_count": 0, "allow_title": false, "multiple_grant": false, "icon": "fa-certificate", "image": null, "listable": true, "enabled": true, "badge_grouping_id": 1, "system": true, "query": " SELECT user_id, read_faq granted_at\n FROM user_stats\n WHERE read_faq IS NOT NULL AND (user_id IN (:user_ids) OR :backfill)\n", "trigger": 8, "target_posts": false, "auto_revoke": true, "show_posts": false, "badge_type_id": 3 }, { "id": 17, "name": "Reader", "description": null, "grant_count": 0, "allow_title": false, "multiple_grant": false, "icon": "fa-certificate", "image": null, "listable": true, "enabled": true, "badge_grouping_id": 1, "system": true, "query": " SELECT id user_id, current_timestamp granted_at\n FROM users\n WHERE id IN\n (\n SELECT pt.user_id\n FROM post_timings pt\n JOIN badge_posts b ON b.post_number = pt.post_number AND\n b.topic_id = pt.topic_id\n JOIN topics t ON t.id = pt.topic_id\n LEFT JOIN user_badges ub ON ub.badge_id = 17 AND ub.user_id = pt.user_id\n WHERE ub.id IS NULL AND t.posts_count > 100\n GROUP BY pt.user_id, pt.topic_id, t.posts_count\n HAVING count(*) >= t.posts_count\n )\n", "trigger": null, "target_posts": false, "auto_revoke": false, "show_posts": false, "badge_type_id": 3 }, { "id": 23, "name": "Great Share", "description": null, "grant_count": 0, "allow_title": false, "multiple_grant": true, "icon": "fa-certificate", "image": null, "listable": true, "enabled": true, "badge_grouping_id": 2, "system": true, "query": " SELECT views.user_id, i2.post_id, i2.created_at granted_at\n FROM\n (\n SELECT i.user_id, MIN(i.id) i_id\n FROM incoming_links i\n JOIN badge_posts p on p.id = i.post_id\n WHERE i.user_id IS NOT NULL\n GROUP BY i.user_id,i.post_id\n HAVING COUNT(*) > 1000\n ) as views\n JOIN incoming_links i2 ON i2.id = views.i_id\n", "trigger": 0, "target_posts": true, "auto_revoke": true, "show_posts": true, "badge_type_id": 1 }, { "id": 22, "name": "Good Share", "description": null, "grant_count": 0, "allow_title": false, "multiple_grant": true, "icon": "fa-certificate", "image": null, "listable": true, "enabled": true, "badge_grouping_id": 2, "system": true, "query": " SELECT views.user_id, i2.post_id, i2.created_at granted_at\n FROM\n (\n SELECT i.user_id, MIN(i.id) i_id\n FROM incoming_links i\n JOIN badge_posts p on p.id = i.post_id\n WHERE i.user_id IS NOT NULL\n GROUP BY i.user_id,i.post_id\n HAVING COUNT(*) > 300\n ) as views\n JOIN incoming_links i2 ON i2.id = views.i_id\n", "trigger": 0, "target_posts": true, "auto_revoke": true, "show_posts": true, "badge_type_id": 2 }, { "id": 10, "name": "Editor", "description": null, "grant_count": 1, "allow_title": false, "multiple_grant": false, "icon": "fa-certificate", "image": null, "listable": true, "enabled": true, "badge_grouping_id": 2, "system": true, "query": " SELECT p.user_id, min(p.id) post_id, min(p.created_at) granted_at\n FROM badge_posts p\n WHERE p.self_edits > 0 AND\n (:backfill OR p.id IN (:post_ids) )\n GROUP BY p.user_id\n", "trigger": 2, "target_posts": false, "auto_revoke": true, "show_posts": false, "badge_type_id": 3 }, { "id": 13, "name": "First Flag", "description": null, "grant_count": 0, "allow_title": false, "multiple_grant": false, "icon": "fa-certificate", "image": null, "listable": true, "enabled": true, "badge_grouping_id": 2, "system": true, "query": " SELECT pa1.user_id, pa1.created_at granted_at, pa1.post_id\n FROM (\n SELECT pa.user_id, min(pa.id) id\n FROM post_actions pa\n JOIN badge_posts p on p.id = pa.post_id\n WHERE post_action_type_id IN (3,4,7,8) AND\n (:backfill OR pa.post_id IN (:post_ids) )\n GROUP BY pa.user_id\n ) x\n JOIN post_actions pa1 on pa1.id = x.id\n", "trigger": 1, "target_posts": true, "auto_revoke": false, "show_posts": false, "badge_type_id": 3 }, { "id": 21, "name": "Nice Share", "description": null, "grant_count": 0, "allow_title": false, "multiple_grant": true, "icon": "fa-certificate", "image": null, "listable": true, "enabled": true, "badge_grouping_id": 2, "system": true, "query": " SELECT views.user_id, i2.post_id, i2.created_at granted_at\n FROM\n (\n SELECT i.user_id, MIN(i.id) i_id\n FROM incoming_links i\n JOIN badge_posts p on p.id = i.post_id\n WHERE i.user_id IS NOT NULL\n GROUP BY i.user_id,i.post_id\n HAVING COUNT(*) > 25\n ) as views\n JOIN incoming_links i2 ON i2.id = views.i_id\n", "trigger": 0, "target_posts": true, "auto_revoke": true, "show_posts": true, "badge_type_id": 3 }, { "id": 5, "name": "Welcome", "description": null, "grant_count": 1, "allow_title": false, "multiple_grant": false, "icon": "fa-certificate", "image": null, "listable": true, "enabled": true, "badge_grouping_id": 2, "system": true, "query": " SELECT p.user_id, min(post_id) post_id, min(pa.created_at) granted_at\n FROM post_actions pa\n JOIN badge_posts p on p.id = pa.post_id\n WHERE post_action_type_id = 2 AND\n (:backfill OR pa.post_id IN (:post_ids) )\n GROUP BY p.user_id\n", "trigger": 1, "target_posts": true, "auto_revoke": true, "show_posts": true, "badge_type_id": 3 }, { "id": 8, "name": "Great Post", "description": null, "grant_count": 0, "allow_title": false, "multiple_grant": true, "icon": "fa-certificate", "image": null, "listable": true, "enabled": true, "badge_grouping_id": 3, "system": true, "query": "\n SELECT p.user_id, p.id post_id, p.updated_at granted_at\n FROM badge_posts p\n WHERE p.post_number > 1 AND p.like_count >= 50 AND\n (:backfill OR p.id IN (:post_ids) )\n", "trigger": 1, "target_posts": true, "auto_revoke": true, "show_posts": true, "badge_type_id": 1 }, { "id": 20, "name": "Great Topic", "description": null, "grant_count": 0, "allow_title": false, "multiple_grant": true, "icon": "fa-certificate", "image": null, "listable": true, "enabled": true, "badge_grouping_id": 3, "system": true, "query": "\n SELECT p.user_id, p.id post_id, p.updated_at granted_at\n FROM badge_posts p\n WHERE p.post_number = 1 AND p.like_count >= 50 AND\n (:backfill OR p.id IN (:post_ids) )\n", "trigger": 1, "target_posts": true, "auto_revoke": true, "show_posts": true, "badge_type_id": 1 }, { "id": 7, "name": "Good Post", "description": null, "grant_count": 0, "allow_title": false, "multiple_grant": true, "icon": "fa-certificate", "image": null, "listable": true, "enabled": true, "badge_grouping_id": 3, "system": true, "query": "\n SELECT p.user_id, p.id post_id, p.updated_at granted_at\n FROM badge_posts p\n WHERE p.post_number > 1 AND p.like_count >= 25 AND\n (:backfill OR p.id IN (:post_ids) )\n", "trigger": 1, "target_posts": true, "auto_revoke": true, "show_posts": true, "badge_type_id": 2 }, { "id": 19, "name": "Good Topic", "description": null, "grant_count": 0, "allow_title": false, "multiple_grant": true, "icon": "fa-certificate", "image": null, "listable": true, "enabled": true, "badge_grouping_id": 3, "system": true, "query": "\n SELECT p.user_id, p.id post_id, p.updated_at granted_at\n FROM badge_posts p\n WHERE p.post_number = 1 AND p.like_count >= 25 AND\n (:backfill OR p.id IN (:post_ids) )\n", "trigger": 1, "target_posts": true, "auto_revoke": true, "show_posts": true, "badge_type_id": 2 }, { "id": 6, "name": "Nice Post", "description": null, "grant_count": 0, "allow_title": false, "multiple_grant": true, "icon": "fa-certificate", "image": null, "listable": true, "enabled": true, "badge_grouping_id": 3, "system": true, "query": "\n SELECT p.user_id, p.id post_id, p.updated_at granted_at\n FROM badge_posts p\n WHERE p.post_number > 1 AND p.like_count >= 10 AND\n (:backfill OR p.id IN (:post_ids) )\n", "trigger": 1, "target_posts": true, "auto_revoke": true, "show_posts": true, "badge_type_id": 3 }, { "id": 18, "name": "Nice Topic", "description": null, "grant_count": 0, "allow_title": false, "multiple_grant": true, "icon": "fa-certificate", "image": null, "listable": true, "enabled": true, "badge_grouping_id": 3, "system": true, "query": "\n SELECT p.user_id, p.id post_id, p.updated_at granted_at\n FROM badge_posts p\n WHERE p.post_number = 1 AND p.like_count >= 10 AND\n (:backfill OR p.id IN (:post_ids) )\n", "trigger": 1, "target_posts": true, "auto_revoke": true, "show_posts": true, "badge_type_id": 3 }, { "id": 4, "name": "Leader", "description": null, "grant_count": 0, "allow_title": true, "multiple_grant": false, "icon": "fa-user", "image": null, "listable": true, "enabled": true, "badge_grouping_id": 4, "system": true, "query": "\n SELECT u.id user_id, current_timestamp granted_at FROM users u\n WHERE trust_level >= 4 AND (\n :backfill OR u.id IN (:user_ids)\n )\n", "trigger": 4, "target_posts": false, "auto_revoke": true, "show_posts": false, "badge_type_id": 1 }, { "id": 3, "name": "Regular", "description": null, "grant_count": 0, "allow_title": true, "multiple_grant": false, "icon": "fa-user", "image": null, "listable": true, "enabled": true, "badge_grouping_id": 4, "system": true, "query": "\n SELECT u.id user_id, current_timestamp granted_at FROM users u\n WHERE trust_level >= 3 AND (\n :backfill OR u.id IN (:user_ids)\n )\n", "trigger": 4, "target_posts": false, "auto_revoke": true, "show_posts": false, "badge_type_id": 2 }, { "id": 1, "name": "Basic User", "description": null, "grant_count": 0, "allow_title": false, "multiple_grant": false, "icon": "fa-user", "image": null, "listable": true, "enabled": true, "badge_grouping_id": 4, "system": true, "query": "\n SELECT u.id user_id, current_timestamp granted_at FROM users u\n WHERE trust_level >= 1 AND (\n :backfill OR u.id IN (:user_ids)\n )\n", "trigger": 4, "target_posts": false, "auto_revoke": true, "show_posts": false, "badge_type_id": 3 }, { "id": 2, "name": "Member", "description": null, "grant_count": 0, "allow_title": false, "multiple_grant": false, "icon": "fa-user", "image": null, "listable": true, "enabled": true, "badge_grouping_id": 4, "system": true, "query": "\n SELECT u.id user_id, current_timestamp granted_at FROM users u\n WHERE trust_level >= 2 AND (\n :backfill OR u.id IN (:user_ids)\n )\n", "trigger": 4, "target_posts": false, "auto_revoke": true, "show_posts": false, "badge_type_id": 3 } ], "badge_types": [ { "id": 3, "name": "Bronze", "sort_order": 7 }, { "id": 1, "name": "Gold", "sort_order": 9 }, { "id": 2, "name": "Silver", "sort_order": 8 } ], "badge_groupings": [ { "id": 1, "name": "Getting Started", "description": null, "position": 10 }, { "id": 2, "name": "Community", "description": null, "position": 11 }, { "id": 3, "name": "Posting", "description": null, "position": 12 }, { "id": 4, "name": "Trust Level", "description": null, "position": 13 }, { "id": 5, "name": "Other", "description": null, "position": 14 } ], "admin_badges": { "protected_system_fields": [ "badge_type_id", "multiple_grant", "target_posts", "show_posts", "query", "trigger", "auto_revoke", "listable" ], "triggers": { "none": 0, "post_action": 1, "post_revision": 2, "trust_level_change": 4, "user_change": 8 }, "badge_ids": [ 9, 11, 14, 15, 12, 16, 17, 23, 22, 10, 13, 21, 5, 8, 20, 7, 19, 6, 18, 4, 3, 1, 2 ], "badge_grouping_ids": [ 1, 2, 3, 4, 5 ], "badge_type_ids": [ 1, 2, 3 ] } }