1use serde::{Deserialize, Serialize};
4use uuid::Uuid;
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
8#[serde(rename_all = "camelCase")]
9pub struct Address {
10 pub line1: String,
11 #[serde(skip_serializing_if = "Option::is_none")]
12 pub line2: Option<String>,
13 pub city: String,
14 pub region: String,
15 pub postal_code: String,
16 pub country_code: String,
17 #[serde(skip_serializing_if = "Option::is_none")]
18 pub country: Option<String>,
19}
20
21#[derive(Debug, Clone, Serialize, Deserialize)]
23#[serde(rename_all = "camelCase")]
24pub struct ApplicationLink {
25 pub url: String,
26 pub params: ApplicationLinkParams,
27}
28
29#[derive(Debug, Clone, Serialize, Deserialize)]
31#[serde(rename_all = "camelCase")]
32pub struct ApplicationLinkParams {
33 pub user_id: Uuid,
34}
35
36#[derive(Debug, Clone, Serialize, Deserialize)]
38pub struct PersonInfo {
39 pub id: Uuid,
40 pub first_name: String,
41 pub last_name: String,
42 #[serde(skip_serializing_if = "Option::is_none")]
43 pub birth_date: Option<String>, #[serde(skip_serializing_if = "Option::is_none")]
45 pub national_id: Option<String>,
46 #[serde(skip_serializing_if = "Option::is_none")]
47 pub country_of_issue: Option<String>,
48 #[serde(skip_serializing_if = "Option::is_none")]
49 pub email: Option<String>,
50 #[serde(skip_serializing_if = "Option::is_none")]
51 pub phone_country_code: Option<String>,
52 #[serde(skip_serializing_if = "Option::is_none")]
53 pub phone_number: Option<String>,
54 pub address: Address,
55}
56
57#[derive(Debug, Clone, Serialize, Deserialize)]
59#[serde(rename_all = "camelCase")]
60pub enum ApplicationStatus {
61 Approved,
62 Pending,
63 NeedsInformation,
64 NeedsVerification,
65 ManualReview,
66 Denied,
67 Locked,
68 Canceled,
69}
70
71#[derive(Debug, Clone, Serialize, Deserialize)]
73#[serde(rename_all = "camelCase")]
74pub enum CompanyDocumentType {
75 DirectorsRegistry,
76 StateRegistry,
77 IncumbencyCert,
78 ProofOfAddress,
79 TrustAgreement,
80 InformationStatement,
81 IncorporationCert,
82 IncorporationArticles,
83 ShareholderRegistry,
84 GoodStandingCert,
85 PowerOfAttorney,
86 Other,
87}
88
89#[derive(Debug, Clone, Serialize, Deserialize)]
91#[serde(rename_all = "camelCase")]
92pub enum UserDocumentType {
93 IdCard,
94 Passport,
95 Drivers,
96 ResidencePermit,
97 UtilityBill,
98 Selfie,
99 VideoSelfie,
100 ProfileImage,
101 IdDocPhoto,
102 Agreement,
103 Contract,
104 DriversTranslation,
105 InvestorDoc,
106 VehicleRegistrationCertificate,
107 IncomeSource,
108 PaymentMethod,
109 BankCard,
110 CovidVaccinationForm,
111 Other,
112}
113
114#[derive(Debug, Clone, Serialize, Deserialize)]
116#[serde(rename_all = "lowercase")]
117pub enum DocumentSide {
118 Front,
119 Back,
120}