You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: lighthouse_individual_claims.rb
    path of file: ./repos/vets-api/modules/mobile/app/models/mobile/v0/adapters
    
    the code of the file until where you have to start completion: # frozen_string_literal: true

module Mobile
  module V0
    module Adapters
      class LighthouseIndividualClaims
        PHASE_TYPE_TO_NUMBER = {
          CLAIM_RECEIVED: 1,
          UNDER_REVIEW: 2,
          GATHERING_OF_EVIDENCE: 3,
          REVIEW_OF_EVIDENCE: 4,
          PREPARATION_FOR_DECISION: 5,
          PENDING_DECISION_APPROVAL: 6,
          PREPARATION_FOR_NOTIFICATION: 7,
          COMPLETE: 8
        }.freeze

        # Order of EVENT_DATE_FIELDS determines which date trumps in timeline sorting.
        EVENT_DATE_FIELDS = %i[
          closed_date
          received_date
          upload_date
          opened_date
          requested_date
          suspense_date
        ].freeze

        # Lighthouse only provides tracked item status which does not match 1-1 to evss tracked item types.
        # We're forced here to coerce the status into a type that may not necessarily be true. but will behave
        # identically in the app. All received statuses are set t
    
        def parse(claim)
          return nil unless claim

          attributes = claim.dig('data', 'attributes')
          phase_change_date = attributes.dig('claimPhaseDates', 'phaseChangeDate')
          events_timeline = events_timeline(attributes)

          Mobile::V0::Claim.new(
            {
              id: claim['data']['id'],
              date_filed: attributes['claimDate'],
              min_est_date: attributes['minEstClaimDate'],
              max_est_date: attributes['maxEstClaimDate'],
              phase_change_date:,
              open: attributes['closeDate'].nil?,
              waiver_submitted: attributes['evidenceWaiverSubmitted5103'],
              documents_needed: attributes['documentsNeeded'],
              development_letter_sent: attributes['developmentLetterSent'],
              decision_letter_sent: attributes['decisionLetterSent'],
              phase: phase(attributes.dig('claimPhaseDates', 'latestPhaseType')),
              ever_phase_back: nil,
              current_phase_back: attributes.dig('claimPhaseDates', 'currentPhaseBack'),
              requested_decision: attributes['evidenceWaiverSubmitted5103'],
              claim_type: attributes['claimType'],
              contention_list: attributes['contentions'].pluck('name'),
              va_representative: nil,
              events_timeline:,
              updated_at: nil
            }
          )
        end