43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
import {
|
||
Entity,
|
||
PrimaryGeneratedColumn,
|
||
Column,
|
||
CreateDateColumn,
|
||
UpdateDateColumn,
|
||
Index,
|
||
} from 'typeorm';
|
||
import { MAX_STAMINA } from '../../../common/constants/game.constants';
|
||
|
||
@Entity('wx_users')
|
||
export class User {
|
||
@PrimaryGeneratedColumn('uuid')
|
||
id!: string;
|
||
|
||
@Index('idx_user_openid', { unique: true })
|
||
@Column({ type: 'varchar', length: 128 })
|
||
openid!: string;
|
||
|
||
@Column({ type: 'varchar', length: 255, name: 'session_key', nullable: true })
|
||
sessionKey!: string | null;
|
||
|
||
@Column({ type: 'varchar', length: 100, nullable: true })
|
||
nickname!: string | null;
|
||
|
||
@Column({ type: 'text', name: 'avatar_url', nullable: true })
|
||
avatarUrl!: string | null;
|
||
|
||
/** 体力值(默认 MAX_STAMINA,上限 MAX_STAMINA) */
|
||
@Column({ type: 'int', default: MAX_STAMINA })
|
||
stamina!: number;
|
||
|
||
/** 体力值最后更新时间(用于计算恢复) */
|
||
@Column({ type: 'timestamp', name: 'stamina_updated_at', nullable: true })
|
||
staminaUpdatedAt!: Date | null;
|
||
|
||
@CreateDateColumn({ name: 'created_at' })
|
||
createdAt!: Date;
|
||
|
||
@UpdateDateColumn({ name: 'updated_at' })
|
||
updatedAt!: Date;
|
||
}
|