import type { Visibility } from "@/core/module-registry/types";

export type ContactType =
  | "client"
  | "supplier"
  | "institution"
  | "collaborator"
  | "internal"
  | string;

/** A contact person within an organization/entity */
export interface ContactPerson {
  name: string;
  department: string;
  role: string;
  email: string;
  phone: string;
}

export interface AddressContact {
  id: string;
  /** Primary name (person or organization) */
  name: string;
  /** Organization/company name */
  company: string;
  type: ContactType;
  /** Primary email */
  email: string;
  /** Secondary email */
  email2: string;
  /** Primary phone */
  phone: string;
  /** Secondary phone */
  phone2: string;
  address: string;
  /** Department within the organization */
  department: string;
  /** Role / job title */
  role: string;
  /** Website URL */
  website: string;
  /** Linked project tag IDs */
  projectIds: string[];
  /** Additional contact persons for this entity */
  contactPersons: ContactPerson[];
  tags: string[];
  notes: string;
  visibility: Visibility;
  createdAt: string;
  updatedAt: string;
}
