import { BaseEntity } from "@edr/api-common";
import { Freight } from "@edr/types";
import { Column, Entity } from "typeorm";

@Entity({schema:"freight", name: "invoices" })
export class Invoice extends BaseEntity {
  @Column({ name: "booking_id", type: "uuid" })
  bookingId!: string;

  @Column({ name: "invoice_number", type: "varchar", length: 64, unique: true })
  invoiceNumber!: string;

  @Column({ name: "amount", type: "numeric", precision: 14, scale: 2 })
  amount!: number;

  @Column({ name: "currency", type: "varchar", length: 8, default: "ETB" })
  currency!: string;

  @Column({
    name: "status",
    type: "enum",
    enum: Freight.PaymentStatus,
    default: Freight.PaymentStatus.Pending,
  })
  status!: Freight.PaymentStatus;

  @Column({ name: "issued_at", type: "timestamptz" })
  issuedAt!: Date;

  @Column({ name: "due_at", type: "timestamptz" })
  dueAt!: Date;
}
