import { Entity, Column, ManyToOne, JoinColumn } from "typeorm";
import { EntityBase } from "./base/Base";
import { ApiKey } from "./ApiKey";
import { ApiName } from "./ApiName";

@Entity("apiHistory")
export class ApiHistory extends EntityBase {
  @Column({
    type: 'longtext',
    nullable: true,
    comment: "header",
    default: null, 
  })
  headerApi: string;

  @Column({
    type: 'longtext',
    nullable: true,
    comment: "token",
    default: null,
  })
  tokenApi: string;

  @Column({
    nullable: true,
    comment: "request",
    length: 255,
    default: null,
  })
  requestApi: string;

  @Column({
    nullable: true,
    comment: "response",
    length: 255,
    default: null,
  })
  responseApi: string;

  @Column({
    nullable: true,
    comment: "ip",
    length: 255,
    default: null,
  })
  ipApi: string;

  @Column({
    nullable: true,
    comment: "code",
    length: 255,
    default: null,
  })
  codeApi: string;

  @Column({
    nullable: true,
    length: 40,
    comment: "คีย์นอก(FK)ของตาราง ApiKey",
    default: null,
  })
  apiKeyId: string;

  @ManyToOne(() => ApiKey, (apiKey) => apiKey.apiHistorys)
  @JoinColumn({ name: "apiKeyId" })
  apiKey: ApiKey;

  @Column({
    nullable: true,
    length: 40,
    comment: "คีย์นอก(FK)ของตาราง ApiName",
    default: null,
  })
  apiNameId: string;

  @ManyToOne(() => ApiName, (apiName) => apiName.apiHistorys)
  @JoinColumn({ name: "apiNameId" })
  apiName: ApiName;
}
