import {
  Table,
  Model,
  Column,
  DataType,
  ForeignKey,
  BelongsTo,
  HasMany,
} from 'sequelize-typescript';
import { CustomerBaseModel } from './customer-base.entity';
import { BusinessContactModel } from './business-contact.entity';

@Table({ tableName: 'customer_Business', createdAt: false, updatedAt: false })
export class CustomerBusinessModel extends Model {
  @ForeignKey(() => CustomerBaseModel)
  @Column({ primaryKey: true, allowNull: false, type: DataType.STRING(30) })
  declare CustomerId: string;

  @Column({ allowNull: false, type: DataType.STRING(200) })
  declare CompanyName: string;

  @Column({ type: DataType.STRING(20) })
  declare RegistrationNo: string;

  @Column({ type: DataType.STRING(20) })
  declare TaxIdentificationNo: string;

  @BelongsTo(() => CustomerBaseModel)
  declare CustomerBase: CustomerBaseModel;

  @HasMany(() => BusinessContactModel)
  declare BusinessContact: BusinessContactModel[];
}
