Skip to main content

highlevel_api/apis/associations/
types.rs

1use serde::{Deserialize, Serialize};
2
3// ── Association types ───────────────────────────────────────────────────────
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
6#[serde(rename_all = "camelCase")]
7pub struct Association {
8    pub id: String,
9    pub name: String,
10    #[serde(skip_serializing_if = "Option::is_none")]
11    pub description: Option<String>,
12    pub location_id: String,
13}
14
15#[derive(Debug, Clone, Serialize, Deserialize)]
16pub struct ListAssociationsResponse {
17    pub associations: Vec<Association>,
18}
19
20#[derive(Debug, Clone, Serialize, Deserialize)]
21pub struct GetAssociationResponse {
22    pub association: Association,
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize, Default)]
26#[serde(rename_all = "camelCase")]
27pub struct CreateAssociationParams {
28    pub name: String,
29    #[serde(skip_serializing_if = "Option::is_none")]
30    pub description: Option<String>,
31}
32
33// ── Relation types ──────────────────────────────────────────────────────────
34
35#[derive(Debug, Clone, Serialize, Deserialize)]
36#[serde(rename_all = "camelCase")]
37pub struct Relation {
38    pub id: String,
39    #[serde(skip_serializing_if = "Option::is_none")]
40    pub association_id: Option<String>,
41    pub record_id: String,
42    pub related_record_id: String,
43}
44
45#[derive(Debug, Clone, Serialize, Deserialize)]
46pub struct ListRelationsResponse {
47    pub relations: Vec<Relation>,
48}
49
50#[derive(Debug, Clone, Serialize, Deserialize)]
51pub struct GetRelationResponse {
52    pub relation: Relation,
53}
54
55#[derive(Debug, Clone, Serialize, Deserialize, Default)]
56#[serde(rename_all = "camelCase")]
57pub struct CreateRelationParams {
58    pub association_id: String,
59    pub record_id: String,
60    pub related_record_id: String,
61}