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