Files
gamegroup/src/entities/asset.entity.ts

61 lines
1.3 KiB
TypeScript
Raw Normal View History

import {
Entity,
PrimaryGeneratedColumn,
Column,
CreateDateColumn,
UpdateDateColumn,
ManyToOne,
JoinColumn,
OneToMany,
} from "typeorm";
import { AssetType, AssetStatus } from "../common/enums";
import { Group } from "./group.entity";
import { AssetLog } from "./asset-log.entity";
@Entity("assets")
export class Asset {
@PrimaryGeneratedColumn("uuid")
id: string;
@Column()
groupId: string;
@ManyToOne(() => Group, { onDelete: "CASCADE" })
@JoinColumn({ name: "groupId" })
group: Group;
@Column({ type: "enum", enum: AssetType })
type: AssetType;
@Column({ length: 100 })
name: string;
@Column({ type: "text", nullable: true, comment: "描述" })
description: string;
@Column({ type: "text", nullable: true, comment: "加密的账号凭据" })
accountCredentials?: string | null;
@Column({ default: 1, comment: "数量(用于物品)" })
quantity: number;
@Column({
type: "enum",
enum: AssetStatus,
default: AssetStatus.AVAILABLE,
})
status: AssetStatus;
@Column({ type: "varchar", nullable: true, comment: "当前借用人ID" })
currentBorrowerId?: string | null;
@CreateDateColumn()
createdAt: Date;
@UpdateDateColumn()
updatedAt: Date;
@OneToMany(() => AssetLog, (log) => log.asset)
logs: AssetLog[];
}