Table professional_contacts {
  id uuid [pk, default: `gen_random_uuid()`]
  name text [not null]
  company text
  title text
  email text
  phone text
  linkedin_url text
  how_we_met text
  tags "text[]" [not null, default: `'{}'`]
  notes text
  last_contacted timestamptz
  follow_up_date date
  created_at timestamptz [not null, default: `now()`]
  updated_at timestamptz [not null, default: `now()`]

  indexes {
    last_contacted
    follow_up_date
  }
}

Table contact_interactions {
  id uuid [pk, default: `gen_random_uuid()`]
  contact_id uuid [not null, ref: > professional_contacts.id]
  interaction_type text [not null]
  occurred_at timestamptz [not null, default: `now()`]
  summary text [not null]
  follow_up_needed boolean [not null, default: false]
  follow_up_notes text
  created_at timestamptz [not null, default: `now()`]

  indexes {
    (contact_id, occurred_at)
  }
}

Table opportunities {
  id uuid [pk, default: `gen_random_uuid()`]
  contact_id uuid [ref: > professional_contacts.id]
  title text [not null]
  description text
  stage text [not null, default: 'identified']
  value "decimal(12,2)"
  expected_close_date date
  notes text
  created_at timestamptz [not null, default: `now()`]
  updated_at timestamptz [not null, default: `now()`]

  indexes {
    stage
  }
}
