Files
2026-07-13 12:27:50 +08:00

60 lines
1.2 KiB
TypeScript

import { Schema, model, Document } from 'mongoose';
import { NAME_REGEXP } from '@fiora/utils/const';
const UserSchema = new Schema({
createTime: { type: Date, default: Date.now },
lastLoginTime: { type: Date, default: Date.now },
username: {
type: String,
trim: true,
unique: true,
match: NAME_REGEXP,
index: true,
},
salt: String,
password: String,
avatar: String,
tag: {
type: String,
default: '',
trim: true,
match: NAME_REGEXP,
},
expressions: [
{
type: String,
},
],
lastLoginIp: String,
});
export interface UserDocument extends Document {
/** 用户名 */
username: string;
/** 密码加密盐 */
salt: string;
/** 加密的密码 */
password: string;
/** 头像 */
avatar: string;
/** 用户标签 */
tag: string;
/** 表情收藏 */
expressions: string[];
/** 创建时间 */
createTime: Date;
/** 最后登录时间 */
lastLoginTime: Date;
/** 最后登录IP */
lastLoginIp: string;
}
/**
* User Model
* 用户信息
*/
const User = model<UserDocument>('User', UserSchema);
export default User;