import { Schema, model, } from 'mongoose'; import { type UserIDType } from './User.js'; export type LogType = 'register' | 'login_pw' | 'login_token' | 'login_oauth' | 'logout' | 'change_pw' | 'reset_pw'; const LogTypeList: LogType[] = [ 'register', 'login_pw', 'login_token', 'login_oauth', 'logout', 'change_pw', 'reset_pw', ]; interface IUserLog { userID: UserIDType; logDate: Date; logType: LogType; action: object; } export const UserLog = new Schema({ userID: { type: Number, required: true }, logDate: { type: Date, required: true }, logType: { type: String, required: true, enum: LogTypeList }, action: { type: Object, required: true }, }) .index({ userID: 1, logDate: 1 }) .index({ logDate: 1 }) ; export default model('UserLog', UserLog);