Skip to main content

hanzo_client/models/
program_application.rs

1/*
2 * Hanzo Cloud API
3 *
4 * 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/.
5 *
6 * The version of the OpenAPI document: v1
7 * 
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct ProgramApplication {
16    /// Company is the applicant's company name.
17    #[serde(rename = "company", skip_serializing_if = "Option::is_none")]
18    pub company: Option<String>,
19    /// 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.
20    #[serde(rename = "companyId", skip_serializing_if = "Option::is_none")]
21    pub company_id: Option<String>,
22    /// ContactID is the CRM Contact minted for this lead at intake. Empty when that best-effort projection did not run.
23    #[serde(rename = "contactId", skip_serializing_if = "Option::is_none")]
24    pub contact_id: Option<String>,
25    /// ContactName is the person who applied.
26    #[serde(rename = "contactName", skip_serializing_if = "Option::is_none")]
27    pub contact_name: Option<String>,
28    /// CreatedAt is the unix second the application arrived. Server-owned.
29    #[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
30    pub created_at: Option<i32>,
31    /// Email is the applicant's email — half of the (email, company) key a resubmission refreshes instead of duplicating.
32    #[serde(rename = "email", skip_serializing_if = "Option::is_none")]
33    pub email: Option<String>,
34    /// Events is the append-only stage-transition log, oldest first.
35    #[serde(rename = "events", skip_serializing_if = "Option::is_none")]
36    pub events: Option<Vec<models::StageEvent>>,
37    /// ID is the server-minted application id (\"appl_\" + 128 random bits).
38    #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
39    pub id: Option<String>,
40    /// 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.
41    #[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
42    pub metadata: Option<std::collections::HashMap<String, serde_json::Value>>,
43    /// Reason is why the application was rejected, required to reject. Empty otherwise.
44    #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
45    pub reason: Option<String>,
46    /// Role is the applicant's role at their company.
47    #[serde(rename = "role", skip_serializing_if = "Option::is_none")]
48    pub role: Option<String>,
49    /// Screen is the AI screen. It runs after intake, so a freshly created application carries a \"pending\" screen.
50    #[serde(rename = "screen", skip_serializing_if = "Option::is_none")]
51    pub screen: Option<Box<models::ScreenResult>>,
52    /// 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.
53    #[serde(rename = "stage", skip_serializing_if = "Option::is_none")]
54    pub stage: Option<String>,
55    /// Tier1 is whether the applicant is tier-1 backed, derived deterministically at intake from the submitted fund list — independent of the AI screen.
56    #[serde(rename = "tier1", skip_serializing_if = "Option::is_none")]
57    pub tier1: Option<bool>,
58    /// UpdatedAt is the unix second of the last write. Server-owned.
59    #[serde(rename = "updatedAt", skip_serializing_if = "Option::is_none")]
60    pub updated_at: Option<i32>,
61    /// Website is the applicant's website as submitted.
62    #[serde(rename = "website", skip_serializing_if = "Option::is_none")]
63    pub website: Option<String>,
64}
65
66impl ProgramApplication {
67    pub fn new() -> ProgramApplication {
68        ProgramApplication {
69            company: None,
70            company_id: None,
71            contact_id: None,
72            contact_name: None,
73            created_at: None,
74            email: None,
75            events: None,
76            id: None,
77            metadata: None,
78            reason: None,
79            role: None,
80            screen: None,
81            stage: None,
82            tier1: None,
83            updated_at: None,
84            website: None,
85        }
86    }
87}
88