88 lines
1.8 KiB
TypeScript
88 lines
1.8 KiB
TypeScript
import {
|
|
BeforeInsert,
|
|
Column,
|
|
CreateDateColumn,
|
|
Entity,
|
|
PrimaryColumn,
|
|
UpdateDateColumn,
|
|
} from 'typeorm';
|
|
import { ensureSnowflakeId, FormatDateTime } from '@/common';
|
|
import type {
|
|
QqbotConnectionMode,
|
|
QqbotConnectionRole,
|
|
QqbotConnectionStatus,
|
|
} from '../qqbot.types';
|
|
|
|
@Entity('qqbot_account')
|
|
export class QqbotAccount {
|
|
@PrimaryColumn({ type: 'bigint' })
|
|
id: string;
|
|
|
|
@Column({ default: 'reverse-ws', length: 32, name: 'connection_mode' })
|
|
connectionMode: QqbotConnectionMode;
|
|
|
|
@Column({ length: 64, name: 'self_id', unique: true })
|
|
selfId: string;
|
|
|
|
@Column({ default: '', length: 120 })
|
|
name: string;
|
|
|
|
@Column({
|
|
default: null,
|
|
length: 255,
|
|
name: 'access_token',
|
|
nullable: true,
|
|
select: false,
|
|
})
|
|
accessToken: null | string;
|
|
|
|
@Column({ default: true })
|
|
enabled: boolean;
|
|
|
|
@Column({ default: 'offline', length: 32, name: 'connect_status' })
|
|
connectStatus: QqbotConnectionStatus;
|
|
|
|
@Column({ default: null, length: 32, name: 'client_role', nullable: true })
|
|
clientRole: null | QqbotConnectionRole;
|
|
|
|
@Column({
|
|
default: null,
|
|
name: 'last_connected_at',
|
|
nullable: true,
|
|
type: 'datetime',
|
|
})
|
|
@FormatDateTime()
|
|
lastConnectedAt: Date | null;
|
|
|
|
@Column({
|
|
default: null,
|
|
name: 'last_heartbeat_at',
|
|
nullable: true,
|
|
type: 'datetime',
|
|
})
|
|
@FormatDateTime()
|
|
lastHeartbeatAt: Date | null;
|
|
|
|
@Column({ default: null, length: 500, name: 'last_error', nullable: true })
|
|
lastError: null | string;
|
|
|
|
@Column({ default: '', length: 255 })
|
|
remark: string;
|
|
|
|
@Column({ default: false, name: 'is_deleted' })
|
|
isDeleted: boolean;
|
|
|
|
@CreateDateColumn({ name: 'create_time' })
|
|
@FormatDateTime()
|
|
createTime: Date;
|
|
|
|
@UpdateDateColumn({ name: 'update_time' })
|
|
@FormatDateTime()
|
|
updateTime: Date;
|
|
|
|
@BeforeInsert()
|
|
createId() {
|
|
ensureSnowflakeId(this);
|
|
}
|
|
}
|