Files
FrozenFriendsYume/packages/backend/built/services/chart/charts/active-users.js
T
2026-07-26 18:25:37 +09:00

51 lines
1.5 KiB
JavaScript

import Chart from "../core.js";
import { name, schema } from "./entities/active-users.js";
const week = 1000 * 60 * 60 * 24 * 7;
const month = 1000 * 60 * 60 * 24 * 30;
const year = 1000 * 60 * 60 * 24 * 365;
/**
* アクティブユーザーに関するチャート
*/ export default class ActiveUsersChart extends Chart {
constructor(){
super(name, schema);
}
async tickMajor() {
return {};
}
async tickMinor() {
return {};
}
read(user) {
this.commit({
read: [
user.id
],
registeredWithinWeek: Date.now() - user.createdAt.getTime() < week ? [
user.id
] : [],
registeredWithinMonth: Date.now() - user.createdAt.getTime() < month ? [
user.id
] : [],
registeredWithinYear: Date.now() - user.createdAt.getTime() < year ? [
user.id
] : [],
registeredOutsideWeek: Date.now() - user.createdAt.getTime() > week ? [
user.id
] : [],
registeredOutsideMonth: Date.now() - user.createdAt.getTime() > month ? [
user.id
] : [],
registeredOutsideYear: Date.now() - user.createdAt.getTime() > year ? [
user.id
] : []
});
}
async write(user) {
await this.commit({
write: [
user.id
]
});
}
}