use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Webhook {
pub id: String,
pub location_id: String,
pub name: String,
pub url: String,
pub status: String,
#[serde(default)]
pub events: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GetWebhooksResponse {
pub webhooks: Vec<Webhook>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GetWebhookResponse {
pub webhook: Webhook,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CreateWebhookParams {
pub name: String,
pub url: String,
pub events: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct UpdateWebhookParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub events: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DeleteWebhookResponse {
pub succeded: bool,
}
pub mod events {
pub const CONTACT_CREATE: &str = "ContactCreate";
pub const CONTACT_UPDATE: &str = "ContactUpdate";
pub const CONTACT_DELETE: &str = "ContactDelete";
pub const OPPORTUNITY_CREATE: &str = "OpportunityCreate";
pub const OPPORTUNITY_UPDATE: &str = "OpportunityUpdate";
pub const OPPORTUNITY_DELETE: &str = "OpportunityDelete";
pub const OPPORTUNITY_STAGE_UPDATE: &str = "OpportunityStageUpdate";
pub const OPPORTUNITY_STATUS_UPDATE: &str = "OpportunityStatusUpdate";
pub const OPPORTUNITY_MONETARY_VALUE_UPDATE: &str = "OpportunityMonetaryValueUpdate";
pub const CONVERSATION_CREATE: &str = "ConversationCreate";
pub const CONVERSATION_UPDATE: &str = "ConversationUpdate";
pub const SMS_SENT: &str = "OutboundMessage";
pub const SMS_RECEIVED: &str = "InboundMessage";
pub const APPOINTMENT_CREATE: &str = "AppointmentCreate";
pub const APPOINTMENT_UPDATE: &str = "AppointmentUpdate";
pub const APPOINTMENT_DELETE: &str = "AppointmentDelete";
pub const FORM_SUBMISSION: &str = "FormSubmissionCreate";
pub const SURVEY_SUBMISSION: &str = "SurveySubmissionCreate";
pub const NOTE_CREATE: &str = "NoteCreate";
pub const NOTE_UPDATE: &str = "NoteUpdate";
pub const NOTE_DELETE: &str = "NoteDelete";
pub const TASK_CREATE: &str = "TaskCreate";
pub const TASK_UPDATE: &str = "TaskUpdate";
pub const TASK_DELETE: &str = "TaskDelete";
pub const INSTALL: &str = "Install";
pub const UNINSTALL: &str = "Uninstall";
}