# frozen_string_literal: true module Eligible module V1_0 class PatientStatement < RestAPIBase ENDPOINT_NAME = 'patient_statements'.freeze # Finalize the patient statement def self.finalize(id, opts = {}) send_request :post, "/patient_statements/#{statement_id(id)}/finalize", rest_api_params(id), opts.merge(required_params: [:id]) end # Post a payment def self.pay(params, opts = {}) send_request :post, "/patient_statements/#{statement_id(params)}/payment_reports", rest_api_params(params), opts.merge(required_params: [:id]) end # List all payments def self.payments(params, opts = {}) send_request :get, "/patient_statements/#{statement_id(params)}/payment_reports", rest_api_params(params), opts.merge(required_params: [:id]) end # Capture a Patient Statement def self.capture(params, opts = {}) send_request :post, "/patient_statements/#{statement_id(params)}/capture", rest_api_params(params), opts.merge(required_params: [:id]) end # Process a Patient Statement def self.process(params, opts = {}) send_request :post, "/patient_statements/#{statement_id(params)}/process", rest_api_params(params), opts.merge(required_params: [:id]) end # Send a Patient Statement def self.send(id, opts = {}) send_request :post, "/patient_statements/#{statement_id(id)}/send", rest_api_params(id), opts.merge(required_params: [:id]) end # Void a Patient Statement def self.void(id, opts = {}) send_request :post, "/patient_statements/#{statement_id(id)}/void", rest_api_params(id), opts.merge(required_params: [:id]) end # Mark UnCollectible def self.mark_uncollectible(id, opts = {}) send_request :post, "/patient_statements/#{statement_id(id)}/mark_uncollectible", rest_api_params(id), opts.merge(required_params: [:id]) end # Reestimate a Patient Statement def self.reestimate(params, opts = {}) send_request :post, "/patient_statements/#{statement_id(params)}/reestimate", rest_api_params(params), opts.merge(required_params: [:id]) end def self.statement_id(id_or_params) id_or_params.is_a?(Hash) ? Util.value(id_or_params, :id) : id_or_params end end end end