Bỏ qua để đến nội dung

Social - Levels (Logic)

DomainsDOL AcademyUX279 words1 min read
active
  • Cấp độ (level) phản ánh mức độ hoạt động tích luỹ; đơn giản cho người dùng bằng cách suy ra Level từ tổng điểm tích lũy trọn đời (Lifetime Points) - UI vẫn chỉ hiển thị một chỉ số “Points”.
  • Nguồn tích luỹ: hoàn thành bài hợp lệ, mốc streak, đóng góp cộng đồng; tương tác social có trần/ngày.
  • Lifetime vs Seasonal: Level dựa trên Lifetime Points; có thể hiển thị điểm mùa để tạo nhịp (không ảnh hưởng level).
  • Spend không làm giảm Level: tiêu điểm chỉ giảm số dư, không ảnh hưởng Lifetime Points.
  • PointsEvent: { userId, type, payload, amount, createdAt, source }.
  • LevelPolicy: { curve: linear|exp, base, step }.
  • ProfileLevel: { userId, lifetimePoints, seasonalPoints, level, updatedAt }.
  • Tích luỹ: cập nhật Lifetime Points mỗi khi người dùng kiếm điểm; idempotent theo event/ref.
  • Level: level = f(lifetimePoints) theo LevelPolicy; không giảm cấp; seasonalPoints reset theo kỳ (để leaderboard mùa).
  • Anti‑gaming: giới hạn điểm từ reaction/comment; chỉ đếm khi tương tác có giá trị (comment hữu ích được đánh dấu).
  • Ingest PointsEvent → apply caps → update lifetimePoints/level → milestone notify.
  • XPEvent là tên cũ.
  • Canonical naming hiện tại là PointsEvent để đồng bộ với reward/ledger taxonomy.
  • Timezone: cửa sổ ngày theo locale; đổi locale không backshift.
  • Account deletion: ẩn danh hóa số liệu; không hiển thị công khai.