// This file is auto-generated from JSON Schema.
// Do not edit this file by hand. Regenerate via the CLI.

#![allow(clippy::all)]
#![allow(dead_code)]

use serde::{Deserialize, Serialize};


#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Identifier {
    #[serde(rename = "schemeUri")]
    pub scheme_uri: String,
    pub identifier: String,
    #[serde(rename = "sourceReference", skip_serializing_if = "Option::is_none")]
    pub source_reference: Option<String>,
}

pub type Identifiers = Vec<Identifier>;


#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Address {
    pub street: Option<String>,
    pub city: Option<String>,
    #[serde(rename = "stateProvince")]
    pub state_province: Option<String>,
    #[serde(rename = "postalCode")]
    pub postal_code: Option<String>,
    #[serde(rename = "countryCode")]
    pub country_code: Option<String>,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DonorRecord {

    #[serde(rename = "entityTypeUri")]
    pub entity_type_uri: String,

    #[serde(rename = "legalName")]
    pub legal_name: String,

    #[serde(rename = "normalizedName")]
    pub normalized_name: Option<String>,

    #[serde(rename = "jurisdictionUri")]
    pub jurisdiction_uri: String,

    pub identifiers: Option<Identifiers>,

    pub address: Option<Address>,
}
