mirror of
https://github.com/rgrgogu/new_starr.git
synced 2026-09-27 00:12:54 +08:00
+5
-105
@@ -1,119 +1,19 @@
|
||||
/***********************************************************************************************************************************************************************
|
||||
* File Name: achievements.data.js
|
||||
* Type of Program: Data
|
||||
* Description: Static registry of all available achievements (badges and milestones).
|
||||
* Add a new achievement here — no other code changes needed.
|
||||
*
|
||||
* Available keys:
|
||||
* Badge:
|
||||
* early_access — registered before Dec 31, 2026
|
||||
* premium_first_time — first premium tier purchase
|
||||
* exclusive_first_time — first exclusive tier purchase
|
||||
* Milestone:
|
||||
* first_course_completed — completed first course
|
||||
* courses_completed_5 — completed 5 courses
|
||||
* courses_completed_10 — completed 10 courses
|
||||
* perfect_quiz_score — perfect score on a quiz
|
||||
* profile_completed — filled out full profile
|
||||
* first_referral — referred a user
|
||||
* Description: Static config for the achievement system that isn't part of the
|
||||
* admin-managed catalog. The achievement catalog itself (keys, type,
|
||||
* label, description, icon) now lives in the achievement_definitions
|
||||
* table — see models/users/achievement_definitions.mdl.js and
|
||||
* controllers/admin/achievements.controller.js for CRUD.
|
||||
*
|
||||
* Author: Kenneth Obsequio (@lash0000)
|
||||
* Date Created: Jun. 19, 2026
|
||||
***********************************************************************************************************************************************************************/
|
||||
'use strict';
|
||||
|
||||
// ─── Early Access cutoff ──────────────────────────────────────────────────────
|
||||
|
||||
const EARLY_ACCESS_CUTOFF = new Date('2026-12-31T23:59:59Z');
|
||||
|
||||
// ─── Achievement Registry ─────────────────────────────────────────────────────
|
||||
// To add a new achievement — add an entry here. No other code changes needed.
|
||||
//
|
||||
// trigger categories (for documentation only, not enforced):
|
||||
// auth — registration / login events
|
||||
// tier — subscription purchase events
|
||||
// course — course / lesson / quiz events
|
||||
// profile — profile completion events
|
||||
// social — referral / community events
|
||||
|
||||
const ACHIEVEMENT_REGISTRY = {
|
||||
|
||||
// ── Auth ───────────────────────────────────────────────────────────────────
|
||||
early_access: {
|
||||
key: 'early_access',
|
||||
type: 'badge',
|
||||
label: 'Early Access',
|
||||
description: 'Registered during the Philproperties beta period (before Dec 31, 2026).',
|
||||
trigger: 'auth',
|
||||
},
|
||||
|
||||
// ── Tier ───────────────────────────────────────────────────────────────────
|
||||
premium_first_time: {
|
||||
key: 'premium_first_time',
|
||||
type: 'badge',
|
||||
label: 'Premium Member',
|
||||
description: 'Purchased a Premium tier plan for the first time.',
|
||||
trigger: 'tier',
|
||||
},
|
||||
exclusive_first_time: {
|
||||
key: 'exclusive_first_time',
|
||||
type: 'badge',
|
||||
label: 'Exclusive Member',
|
||||
description: 'Purchased an Exclusive tier plan for the first time.',
|
||||
trigger: 'tier',
|
||||
},
|
||||
|
||||
// ── Course ─────────────────────────────────────────────────────────────────
|
||||
first_course_completed: {
|
||||
key: 'first_course_completed',
|
||||
type: 'milestone',
|
||||
label: 'First Course Completed',
|
||||
description: 'Completed your very first course on Philproperties.',
|
||||
trigger: 'course',
|
||||
},
|
||||
courses_completed_5: {
|
||||
key: 'courses_completed_5',
|
||||
type: 'milestone',
|
||||
label: 'Learning Streak',
|
||||
description: 'Completed 5 courses.',
|
||||
trigger: 'course',
|
||||
},
|
||||
courses_completed_10: {
|
||||
key: 'courses_completed_10',
|
||||
type: 'milestone',
|
||||
label: 'Knowledge Builder',
|
||||
description: 'Completed 10 courses.',
|
||||
trigger: 'course',
|
||||
},
|
||||
perfect_quiz_score: {
|
||||
key: 'perfect_quiz_score',
|
||||
type: 'milestone',
|
||||
label: 'Perfect Score',
|
||||
description: 'Achieved a perfect score on a quiz.',
|
||||
trigger: 'course',
|
||||
},
|
||||
|
||||
// ── Profile ────────────────────────────────────────────────────────────────
|
||||
profile_completed: {
|
||||
key: 'profile_completed',
|
||||
type: 'milestone',
|
||||
label: 'Profile Complete',
|
||||
description: 'Filled out all personal profile information.',
|
||||
trigger: 'profile',
|
||||
},
|
||||
|
||||
// ── Social ─────────────────────────────────────────────────────────────────
|
||||
first_referral: {
|
||||
key: 'first_referral',
|
||||
type: 'milestone',
|
||||
label: 'Referral Champion',
|
||||
description: 'Successfully referred a user to Philproperties.',
|
||||
trigger: 'social',
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
EARLY_ACCESS_CUTOFF,
|
||||
ACHIEVEMENT_REGISTRY,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user