relation.ts 956 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import {
  2. Column, CreateDateColumn, Entity, PrimaryGeneratedColumn, UpdateDateColumn, ManyToOne, Index,
  3. } from 'typeorm';
  4. import { Installation } from './installation';
  5. @Entity()
  6. @Index(['installation', 'growiUri'], { unique: true })
  7. export class Relation {
  8. @PrimaryGeneratedColumn()
  9. readonly id: number;
  10. @CreateDateColumn()
  11. readonly createdAt: Date;
  12. @UpdateDateColumn()
  13. readonly updatedAt: Date;
  14. @ManyToOne(() => Installation)
  15. readonly installation: Installation;
  16. @Column()
  17. @Index({ unique: true })
  18. tokenGtoP: string;
  19. @Column()
  20. @Index()
  21. tokenPtoG: string;
  22. @Column()
  23. growiUri: string;
  24. @Column('simple-array')
  25. supportedCommandsForBroadcastUse: string[];
  26. @Column('simple-array')
  27. supportedCommandsForSingleUse: string[];
  28. @Column({ type: 'bigint' })
  29. expiredAtCommands: number;
  30. getDistanceInMillisecondsToExpiredAt(baseDate:Date):number {
  31. return this.expiredAtCommands - baseDate.getTime();
  32. }
  33. }