kozukata-toa/src/external/db/entity/aimedb.ts

61 lines
1.3 KiB
TypeScript

import { ConstructableBaseEntity } from "../utils/constructable-base-entity";
import {
Entity,
PrimaryGeneratedColumn,
Column,
ManyToOne,
CreateDateColumn,
OneToMany,
} from "typeorm";
import { integer } from "types/misc";
@Entity("aimedb_user")
export class AimeUser extends ConstructableBaseEntity {
@PrimaryGeneratedColumn()
id!: integer;
@CreateDateColumn()
createdDate!: Date;
@OneToMany(() => AimeCard, (card) => card.user)
cards!: Array<AimeCard>;
}
@Entity("aimedb_card")
export class AimeCard extends ConstructableBaseEntity {
@PrimaryGeneratedColumn()
id!: integer;
@ManyToOne(() => AimeUser, (user) => user.cards, { eager: true, nullable: true })
user!: AimeUser | null;
@Column({ unique: true, length: 20 })
accessCode!: string;
@CreateDateColumn()
createdDate!: Date;
@Column({ type: "boolean", default: false })
isLocked!: boolean;
@Column({ type: "boolean", default: false })
isBanned!: boolean;
}
export class FelicaBaseLookup extends ConstructableBaseEntity {
@PrimaryGeneratedColumn()
id!: integer;
@Column({ unique: true, length: 16 })
idm!: string;
@Column({ unique: true, length: 20 })
accessCode!: string;
}
@Entity("aimedb_felica_mobile_lookup")
export class FelicaMobileLookup extends FelicaBaseLookup {}
@Entity("aimedb_felica_card_lookup")
export class FelicaCardLookup extends FelicaBaseLookup {}