import {
  Entity,
  PrimaryGeneratedColumn,
  Column,
  CreateDateColumn,
  UpdateDateColumn,
  DeleteDateColumn,
  OneToMany,
} from "typeorm"
import { VehicleModel } from "../../vehicle-model/entities/vehicle-model.entity"
import { FleetManagement } from "src/modules/fleet-management/entities/fleet-management.entity"

@Entity("vehicle_manufactures")
export class VehicleManufacturer {
  @PrimaryGeneratedColumn()
  id: number

  @Column({ type: "varchar" })
  name: string

  @Column({ type: "smallint", default: 1 })
  status: number

  @OneToMany(
    () => VehicleModel,
    (vehicle_models) => vehicle_models.vehicle_manufacture,
  )
  vehicle_models: VehicleModel[]

  @OneToMany(
    () => FleetManagement,
    (fleetManagement) => fleetManagement.vehicle_manufacture,
  )
  fleetManagements: FleetManagement[]

  @CreateDateColumn({
    type: "timestamp",
    nullable: true,
    default: () => "NOW()",
  })
  created_at: Date

  @UpdateDateColumn({
    type: "timestamp",
    nullable: true,
    default: () => "NOW()",
  })
  updated_at: Date

  @DeleteDateColumn({ type: "timestamp", nullable: true })
  deleted_at: Date
}
