autogen-stedi 0.3.2

Auto-generated, strongly-typed Rust client for the Stedi APIs
Documentation
/*
 * Stedi Healthcare
 *
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 2024-04-01
 * Contact: healthcare@stedi.com
 * Generated by: https://openapi-generator.tech
 */

use crate::healthcare::models;
use serde::{Deserialize, Serialize};

/// PaymentInfo : Detailed payment information for a specific claim.
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct PaymentInfo {
    /// Adjustments applied to this claim.
    #[serde(rename = "claimAdjustments", skip_serializing_if = "Option::is_none")]
    pub claim_adjustments: Option<Vec<models::ClaimAdjustments>>,
    /// Contact information for claim-related communications.
    #[serde(rename = "claimContactInformation", skip_serializing_if = "Option::is_none")]
    pub claim_contact_information: Option<Vec<models::ReportsContactInformation>>,
    /// Basic claim payment information including amounts and status.
    #[serde(rename = "claimPaymentInfo", skip_serializing_if = "Option::is_none")]
    pub claim_payment_info: Option<Box<models::PaymentInfoClaimPaymentInfo>>,
    /// The date the claim was received by the payer.
    #[serde(rename = "claimReceivedDate", skip_serializing_if = "Option::is_none")]
    pub claim_received_date: Option<String>,
    /// The claim period end date in ISO 8601 format (YYYY-MM-DD). This format is intentionally inconsistent with other date properties to maintain backwards compatibility.
    #[serde(rename = "claimStatementPeriodEnd", skip_serializing_if = "Option::is_none")]
    pub claim_statement_period_end: Option<String>,
    /// The claim period start date in ISO 8601 format (YYYY-MM-DD). This format is intentionally inconsistent with other date properties to maintain backwards compatibility.  If the response doesn’t include a `claimStatementPeriodEnd`, you should assume the end date is the same as the start date.
    #[serde(rename = "claimStatementPeriodStart", skip_serializing_if = "Option::is_none")]
    pub claim_statement_period_start: Option<String>,
    /// Supplemental information about the claim.
    #[serde(rename = "claimSupplementalInformation", skip_serializing_if = "Option::is_none")]
    pub claim_supplemental_information: Option<Box<models::PaymentInfoClaimSupplementalInformation>>,
    /// Supplemental quantity information about the claim.
    #[serde(rename = "claimSupplementalInformationQuantities", skip_serializing_if = "Option::is_none")]
    pub claim_supplemental_information_quantities: Option<Box<models::PaymentInfoClaimSupplementalInformationQuantities>>,
    /// Corrected patient or insured name information.
    #[serde(rename = "correctedPatientOrInsuredName", skip_serializing_if = "Option::is_none")]
    pub corrected_patient_or_insured_name: Option<Box<models::PaymentInfoCorrectedPatientOrInsuredName>>,
    /// Corrected priority payer information.
    #[serde(rename = "correctedPriorityPayer", skip_serializing_if = "Option::is_none")]
    pub corrected_priority_payer: Option<Box<models::CorrectedPriorityPayer>>,
    /// The expiration date of the patient's coverage.
    #[serde(rename = "coverageExpirationDate", skip_serializing_if = "Option::is_none")]
    pub coverage_expiration_date: Option<String>,
    /// Crossover carrier information.
    #[serde(rename = "crossoverCarrier", skip_serializing_if = "Option::is_none")]
    pub crossover_carrier: Option<Box<models::CrossoverCarrier>>,
    /// Inpatient adjudication information.
    #[serde(rename = "inpatientAdjudication", skip_serializing_if = "Option::is_none")]
    pub inpatient_adjudication: Option<Box<models::PaymentInfoInpatientAdjudication>>,
    /// Other claim-related identification numbers.
    #[serde(rename = "otherClaimRelatedIdentification", skip_serializing_if = "Option::is_none")]
    pub other_claim_related_identification: Option<Box<models::PaymentInfoOtherClaimRelatedIdentification>>,
    /// Other subscriber information.
    #[serde(rename = "otherSubscriber", skip_serializing_if = "Option::is_none")]
    pub other_subscriber: Option<Box<models::OtherSubscriber>>,
    /// Outpatient adjudication information.
    #[serde(rename = "outpatientAdjudication", skip_serializing_if = "Option::is_none")]
    pub outpatient_adjudication: Option<Box<models::PaymentInfoOutpatientAdjudication>>,
    /// Patient name information.
    #[serde(rename = "patientName", skip_serializing_if = "Option::is_none")]
    pub patient_name: Option<Box<models::PaymentInfoPatientName>>,
    /// Information about the provider who rendered services.
    #[serde(rename = "renderingProvider", skip_serializing_if = "Option::is_none")]
    pub rendering_provider: Option<Box<models::PaymentInfoRenderingProvider>>,
    /// Rendering provider identification information.
    #[serde(rename = "renderingProviderIdentification", skip_serializing_if = "Option::is_none")]
    pub rendering_provider_identification: Option<Box<models::PaymentInfoRenderingProviderIdentification>>,
    /// Service lines included in this claim.
    #[serde(rename = "serviceLines", skip_serializing_if = "Option::is_none")]
    pub service_lines: Option<Vec<models::ClaimPaymentAdviceServiceLines>>,
    /// Subscriber information for the insurance policy.
    #[serde(rename = "subscriber", skip_serializing_if = "Option::is_none")]
    pub subscriber: Option<Box<models::PaymentInfoSubscriber>>,
}

impl PaymentInfo {
    /// Detailed payment information for a specific claim.
    pub fn new() -> PaymentInfo {
        PaymentInfo {
            claim_adjustments: None,
            claim_contact_information: None,
            claim_payment_info: None,
            claim_received_date: None,
            claim_statement_period_end: None,
            claim_statement_period_start: None,
            claim_supplemental_information: None,
            claim_supplemental_information_quantities: None,
            corrected_patient_or_insured_name: None,
            corrected_priority_payer: None,
            coverage_expiration_date: None,
            crossover_carrier: None,
            inpatient_adjudication: None,
            other_claim_related_identification: None,
            other_subscriber: None,
            outpatient_adjudication: None,
            patient_name: None,
            rendering_provider: None,
            rendering_provider_identification: None,
            service_lines: None,
            subscriber: None,
        }
    }
}