import { Company } from '../entities/company.entity';
import { ExternalProfile } from '../entities/external-profile.entity';

export class ProfileResponseDto {
  companyId: string;
  companyName: string;
  companyEmail: string | null;
  companyPhone: string | null;
  companyLocation: string;
  companyAddress: string | null;
  tinNumber: string;
  vatNumber: string | null;
  fanNumber: string | null;

  contactPersonName: string | null;
  contactPersonPhone: string | null;
  generalManagerName: string | null;
  generalManagerEmail: string | null;
  generalManagerPhone: string | null;

  poaName: string | null;
  poaPhone: string | null;
  poaEmail: string | null;
  poaLocation: string | null;
  poaAddress: string | null;

  profileId: string;

  constructor(profile: ExternalProfile, company: Company) {
    this.companyId = company.id;
    this.companyName = company.name;
    this.companyEmail = company.email ?? null;
    this.companyPhone = company.phone ?? null;
    this.companyLocation = company.country;
    this.companyAddress = company.address ?? null;
    this.tinNumber = company.tin;
    this.vatNumber = company.vatNumber ?? null;
    this.fanNumber = company.fanNumber ?? null;
    this.profileId = profile.id;

    const attrs = company.attributes ?? {};
    this.contactPersonName = attrs.contactPersonName ?? null;
    this.contactPersonPhone = attrs.contactPersonPhone ?? null;
    this.generalManagerName = attrs.generalManagerName ?? null;
    this.generalManagerEmail = attrs.generalManagerEmail ?? null;
    this.generalManagerPhone = attrs.generalManagerPhone ?? null;
    this.poaName = attrs.poaName ?? null;
    this.poaPhone = attrs.poaPhone ?? null;
    this.poaEmail = attrs.poaEmail ?? null;
    this.poaLocation = attrs.poaLocation ?? null;
    this.poaAddress = attrs.poaAddress ?? null;
  }
}
