hanzo-client 8.5.156

Generated client for the Hanzo API — every service, one crate.
Documentation
/*
 * Hanzo Cloud API
 *
 * The Hanzo Cloud API as a customer calls it: every operation under /v1/ except the operator's admin product, relay routes, legacy spellings and capabilities still reached by flag. Tagged by product: the first path segment after /v1/.
 *
 * The version of the OpenAPI document: v1
 * 
 * Generated by: https://openapi-generator.tech
 */

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

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ProgramApplication {
    /// Company is the applicant's company name.
    #[serde(rename = "company", skip_serializing_if = "Option::is_none")]
    pub company: Option<String>,
    /// CompanyID is the CRM Company minted for this lead at intake, so the startup also appears in the org's standard CRM tabs. Empty when that best-effort projection did not run.
    #[serde(rename = "companyId", skip_serializing_if = "Option::is_none")]
    pub company_id: Option<String>,
    /// ContactID is the CRM Contact minted for this lead at intake. Empty when that best-effort projection did not run.
    #[serde(rename = "contactId", skip_serializing_if = "Option::is_none")]
    pub contact_id: Option<String>,
    /// ContactName is the person who applied.
    #[serde(rename = "contactName", skip_serializing_if = "Option::is_none")]
    pub contact_name: Option<String>,
    /// CreatedAt is the unix second the application arrived. Server-owned.
    #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
    pub created_at: Option<i32>,
    /// Email is the applicant's email — half of the (email, company) key a resubmission refreshes instead of duplicating.
    #[serde(rename = "email", skip_serializing_if = "Option::is_none")]
    pub email: Option<String>,
    /// Events is the append-only stage-transition log, oldest first.
    #[serde(rename = "events", skip_serializing_if = "Option::is_none")]
    pub events: Option<Vec<models::StageEvent>>,
    /// ID is the server-minted application id (\"appl_\" + 128 random bits).
    #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
    pub id: Option<String>,
    /// Metadata is the FULL submitted form, every field, including the arrays the promoted columns above do not carry (tier1Investors, useCases) and the deterministic tier1Matched list.
    #[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
    pub metadata: Option<std::collections::HashMap<String, serde_json::Value>>,
    /// Reason is why the application was rejected, required to reject. Empty otherwise.
    #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
    pub reason: Option<String>,
    /// Role is the applicant's role at their company.
    #[serde(rename = "role", skip_serializing_if = "Option::is_none")]
    pub role: Option<String>,
    /// Screen is the AI screen. It runs after intake, so a freshly created application carries a \"pending\" screen.
    #[serde(rename = "screen", skip_serializing_if = "Option::is_none")]
    pub screen: Option<Box<models::ScreenResult>>,
    /// Stage is the pipeline stage: applied, screened, qualified, credits-offered, onboarded or rejected. Server-owned — it starts at \"applied\" and moves only through the transition machine.
    #[serde(rename = "stage", skip_serializing_if = "Option::is_none")]
    pub stage: Option<String>,
    /// Tier1 is whether the applicant is tier-1 backed, derived deterministically at intake from the submitted fund list — independent of the AI screen.
    #[serde(rename = "tier1", skip_serializing_if = "Option::is_none")]
    pub tier1: Option<bool>,
    /// UpdatedAt is the unix second of the last write. Server-owned.
    #[serde(rename = "updatedAt", skip_serializing_if = "Option::is_none")]
    pub updated_at: Option<i32>,
    /// Website is the applicant's website as submitted.
    #[serde(rename = "website", skip_serializing_if = "Option::is_none")]
    pub website: Option<String>,
}

impl ProgramApplication {
    pub fn new() -> ProgramApplication {
        ProgramApplication {
            company: None,
            company_id: None,
            contact_id: None,
            contact_name: None,
            created_at: None,
            email: None,
            events: None,
            id: None,
            metadata: None,
            reason: None,
            role: None,
            screen: None,
            stage: None,
            tier1: None,
            updated_at: None,
            website: None,
        }
    }
}