Documentation
¶
Index ¶
- Constants
- func DecryptToken(key string, encryptedToken string) (string, error)
- func EncryptToken(key string, token string) (string, error)
- type APICallLog
- type Agent
- func (r *Agent) BeforeCreate(tx *gorm.DB) error
- func (a *Agent) GetCapabilityConfigByType(capabilityType enum.AgentCapability, configPtr any) error
- func (a *Agent) GetListenerConfigByType(listenerType enum.AgentListenerEvent, configPtr any) error
- func (Agent) TableName() string
- func (a *Agent) UpdateCapabilities(updatedCaps []Capability)
- func (a *Agent) UpdateListeners(updatedListeners []Listener)
- type AgentExecution
- type AgentPlay
- type AgentRegistry
- type AiLocationMapping
- type ApiBillableEvent
- type BaseEntity
- type BetterContactResponseBody
- type BillableEvent
- type BrandfetchCompany
- type BrandfetchIndustry
- type BrandfetchLink
- type BrandfetchResponseBody
- type BranfetchLogo
- type BranfetchLogoFormat
- type BrowserAutomationsRun
- type BrowserAutomationsRunResult
- type BrowserConfig
- type CacheCrustData
- type CacheEmailEnrow
- type CacheEmailScrubby
- type CacheEmailTrueinbox
- type CacheEmailValidation
- type CacheEmailValidationDomain
- type CacheIPIdentify
- type CacheIpData
- type CacheIpHunter
- type Capability
- type ColumnView
- type ColumnViewType
- type Columns
- type ConfigHandler
- type ConfigHandlerImpl
- type CosApiEnrichPersonTempResult
- type CurrencyRate
- type CustomerOsIds
- type DayAvailability
- type DomainPrimaryException
- type EmailLookup
- type EmailLookupType
- type EmailMessage
- type EmailMessageStatus
- type EmailRawData
- type EmailTracking
- type EmailTrackingEventType
- type EmailValidationRecord
- type EmailValidationRequestBulk
- type EmailValidationRequestBulkStatus
- type EnrichDetailsBetterContact
- type EnrichDetailsBrandfetch
- type EnrichDetailsPreFilterTracking
- type EnrichDetailsScrapIn
- type EnrichDetailsTracking
- type EnrowResponseBody
- type ExternalAppKeys
- type FlowEdge
- type FlowExecution
- type FlowNode
- type FlowTransitionsRegistry
- type Flows
- type GlobalContact
- type GlobalOrganization
- type GlobalOrganizationWebsiteToProcess
- type IPDataResponseBody
- type IngestEmailImportState
- type IngestEmailImportStatePeriod
- type IngestEmailMessage
- type IngestEmailMessageState
- type InvoiceNumberEntity
- type JSONConfig
- type JSONMap
- type Listener
- type Location
- type MagicLink
- type MailstackBuyRequest
- type MailstackBuyRequestDomain
- type MailstackBuyRequestDomainStatus
- type MailstackBuyRequestStatus
- type MeetingBookedEvent
- type MeetingBookingEvent
- type NoConfig
- type NylasGrant
- type NylasGrantResponse
- type OAuthTokenEntity
- type OrganizationWebsiteHostingPlatform
- type OutboxEvent
- type OutboxStatus
- type PersonalEmailProvider
- type PersonalIntegration
- type PostmarkApiKey
- type QuickbooksSettingsEntity
- type ScrapInFlow
- type ScrapInResponseBody
- type ScrapedWebpage
- type ScrapinCompanyDetails
- type ScrapinPersonDetails
- type ScrapinPositionHistory
- type ScrubbyStatus
- type SkuEntity
- type SkuType
- type SlackChannel
- type SlackChannelNotification
- type SlackChannelNotificationWorkflow
- type SlackSettingsEntity
- type SnitcherResponseBody
- type StatsApiCalls
- type StringArray
- type TableIdType
- type TableViewDefinition
- type TableViewType
- type Tenant
- type TenantSettings
- type TenantSettingsEmailExclusion
- type TenantSettingsOpportunityStage
- type TenantWebhook
- type TenantWebhookApiKey
- type TrueInboxResponseBody
- type UserCalendarAvailability
- type UserWorkingSchedule
- type WebSession
- type WebSessionPageVisit
- type WebTrackerEvents
- type Webhooks
Constants ¶
const (
DefaultTimezone string = "Etc/UTC"
)
const KeyPrefix = "cos_"
const Organization = "organization"
Variables ¶
This section is empty.
Functions ¶
func DecryptToken ¶
Decrypt a token using AES-GCM
Types ¶
type APICallLog ¶
type APICallLog struct {
ID string `gorm:"column:id;primaryKey;type:varchar(25)"`
Vendor enum.APIVendor `gorm:"column:vendor;type:varchar(255);index;not null"`
Method string `gorm:"column:method;type:varchar(255);not null"`
URL string `gorm:"column:url;type:varchar(255);not null"`
RequestBody []byte `gorm:"column:request_body;type:bytea"`
Timestamp time.Time `gorm:"column:timestamp;type:timestamptz;not null"`
Duration int `gorm:"column:duration;type:int;not null"`
StatusCode *int `gorm:"column:status_code;type:int;not null"`
ResponseBody *[]byte `gorm:"column:response_body;type:bytea"`
ErrorMessage *string `gorm:"column:error_message;type:text"`
}
func (APICallLog) TableName ¶
func (APICallLog) TableName() string
type Agent ¶
type Agent struct {
ID string `gorm:"primaryKey;type:varchar(32)" json:"id"`
Type enum.AgentType `gorm:"column:type;type:varchar(50);not null;" json:"type"`
Scope enum.AgentScope `gorm:"column:agent_scope;type:varchar(255)" json:"agentScope"`
Tenant string `gorm:"column:tenant;type:varchar(255);not null" json:"tenant" binding:"required"`
Owner string `gorm:"column:owner;type:varchar(255)" json:"owner"`
Managers pq.StringArray `gorm:"column:managers;type:varchar[]" json:"managers"`
Name string `gorm:"column:name;type:varchar(255);not null" json:"name" binding:"required"`
Configured bool `gorm:"column:configured;type:boolean;default:false" json:"capabilitiesConfigured"`
Status string `gorm:"column:status;type:varchar(32)" json:"status"`
IsActive bool `gorm:"column:is_active;type:boolean;default:false" json:"isActive"`
FlowID string `gorm:"column:flow_id;type:varchar(255)" json:"flowId"`
VisibleInUI bool `gorm:"column:visible_in_ui;type:boolean;default:true" json:"visibleInUI"`
CreatedAt time.Time `gorm:"column:created_at;autoCreateTime" json:"createdAt"`
UpdatedAt *time.Time `gorm:"column:updated_at;autoUpdateTime" json:"updatedAt"`
ErrorMessage *string `gorm:"column:error_message;type:varchar(255)" json:"errorMessage"`
Color string `gorm:"column:color;type:varchar(255)" json:"color"`
Icon string `gorm:"column:icon;type:varchar(255)" json:"icon"`
RegistryID string `gorm:"column:registry_id;type:varchar(32)" json:"registryId"`
Capabilities []Capability `gorm:"foreignKey:AgentID" json:"capabilities"`
Listeners []Listener `gorm:"foreignKey:AgentID" json:"listeners"`
}
func (*Agent) GetCapabilityConfigByType ¶
func (a *Agent) GetCapabilityConfigByType(capabilityType enum.AgentCapability, configPtr any) error
func (*Agent) GetListenerConfigByType ¶
func (a *Agent) GetListenerConfigByType(listenerType enum.AgentListenerEvent, configPtr any) error
func (*Agent) UpdateCapabilities ¶
func (a *Agent) UpdateCapabilities(updatedCaps []Capability)
func (*Agent) UpdateListeners ¶
type AgentExecution ¶
type AgentExecution struct {
ID string `gorm:"primary_key;type:uuid;default:gen_random_uuid()" json:"id"`
AgentID *string `gorm:"column:agent_id;type:varchar(50);not null" json:"agent_id" binding:"required"`
Tenant string `gorm:"column:tenant;type:varchar(255)" json:"tenant"`
TriggerEvent string `gorm:"column:trigger_event;type:varchar(50)" json:"triggerEvent"`
FlowID *string `gorm:"column:flow_id;type:varchar(255);" json:"flowId"`
Status enum.AgentExecutionStatus `gorm:"column:status;type:varchar(255);not null;default:'PENDING'" json:"status"`
CreatedAt time.Time `gorm:"column:created_at;autoCreateTime" json:"createdAt"`
StartedAt *time.Time `gorm:"column:started_at" json:"startedAt"`
UpdatedAt *time.Time `gorm:"column:updated_at;autoUpdateTime" json:"updatedAt"`
CompletedAt *time.Time `gorm:"column:completed_at" json:"completedAt"`
ErrorMessage *string `gorm:"column:error_message;type:text" json:"errorMessage"`
GoalAchieved *bool `gorm:"column:goal_achieved;type:boolean" json:"goalAchieved"`
TraceId string `gorm:"column:trace_id;type:varchar(255)" json:"traceId"`
TraceIdLatest string `gorm:"column:trace_id_latest;type:varchar(255)" json:"traceIdLatest"`
ImpactedId *string `gorm:"column:impacted_id;type:varchar(255)" json:"impactedId"`
// Retry related fields
RetryCount int `gorm:"column:retry_count;type:int;default:0" json:"retryCount"` // Number of completed retries
MaxRetries int `gorm:"column:max_retries;type:int;default:12" json:"maxRetries"`
NextRetryAt *time.Time `gorm:"column:next_retry_at" json:"nextRetryAt"`
// Async state management
StateData JSONMap `gorm:"column:state_data;type:jsonb" json:"stateData"` // Stores execution state for resume
CurrentStep string `gorm:"column:current_step;type:varchar(255)" json:"currentStep"` // Current capability being executed
Checkpoints JSONMap `gorm:"column:checkpoints;type:jsonb" json:"checkpoints"` // Stores completion state of each step
}
func (AgentExecution) TableName ¶
func (AgentExecution) TableName() string
type AgentPlay ¶
type AgentPlay struct {
AgentRegistryID string `gorm:"column:agent_registry_id;type:varchar(21);primaryKey" json:"agentRegistryId"`
AgentType enum.AgentType `gorm:"column:agent_type;type:varchar(255);not null;index" json:"agentType" binding:"required"`
TriggerEvent string `gorm:"column:trigger_event;type:varchar(255);primaryKey" json:"triggerEvent"`
Capabilities pq.StringArray `gorm:"column:capabilities;type:varchar[]" json:"capabilities"`
}
func (*AgentPlay) ValidatePlay ¶
func (*AgentPlay) ValidateTrigger ¶
type AgentRegistry ¶
type AgentRegistry struct {
ID string `gorm:"primaryKey;type:varchar(21)" json:"id"`
Type enum.AgentType `gorm:"column:type;type:varchar(255);not null;index" json:"type" binding:"required"`
AgentName string `gorm:"column:agent_name;type:varchar(255)" json:"agentName"`
Description string `gorm:"column:description;type:text" json:"description"`
Scope enum.AgentScope `gorm:"column:agent_scope;type:varchar(255)" json:"agentScope"`
Filename string `gorm:"column:filename;type:varchar(255)" json:"filename"`
CompletionEvents pq.StringArray `gorm:"column:completion_events;type:varchar[]" json:"completionEvents"`
ListenerEvents pq.StringArray `gorm:"column:listener_events;type:varchar[]" json:"listenerEvents"`
Capabilities pq.StringArray `gorm:"column:capabilities;type:varchar[]" json:"capabilities"`
Version string `gorm:"column:version;type:varchar(21)" json:"version"`
Goal string `gorm:"column:goal;type:varchar(255)" json:"goal"`
Metric string `gorm:"column:metric;type:varchar(255)" json:"metric"`
IsActive bool `gorm:"column:is_active;type:boolean;default:true" json:"isActive"`
IsUnique bool `gorm:"column:unique;type:boolean;default:false" json:"unique"`
Icon string `gorm:"column:icon;type:text" json:"icon"`
}
func (*AgentRegistry) BeforeCreate ¶
func (r *AgentRegistry) BeforeCreate(tx *gorm.DB) error
func (AgentRegistry) TableName ¶
func (AgentRegistry) TableName() string
func (*AgentRegistry) ValidateCapabilities ¶
func (r *AgentRegistry) ValidateCapabilities() error
func (*AgentRegistry) ValidateEvents ¶
func (r *AgentRegistry) ValidateEvents() error
type AiLocationMapping ¶
type AiLocationMapping struct {
ID uint64 `gorm:"primary_key;autoIncrement:true" json:"id"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
Input string `gorm:"column:input;type:text;NOT NULL;" json:"input"`
ResponseJson string `gorm:"column:response_json;type:text;NOT NULL;" json:"responseJson"`
}
func (AiLocationMapping) TableName ¶
func (AiLocationMapping) TableName() string
type ApiBillableEvent ¶
type ApiBillableEvent struct {
ID uint64 `gorm:"primary_key;autoIncrement" json:"id"`
Tenant string `gorm:"column:tenant;type:varchar(255);NOT NULL" json:"tenant"`
Event BillableEvent `gorm:"column:event;type:varchar(255);NOT NULL;index:idx_tenant_event" json:"event"`
Subtype string `gorm:"column:subtype;type:varchar(255)" json:"subtype,omitempty"`
Source string `gorm:"column:source;type:varchar(255)" json:"source,omitempty"`
ExternalID string `gorm:"column:external_id;type:varchar(255);index" json:"externalId"`
ReferenceData string `gorm:"column:reference_data;type:text" json:"referenceData,omitempty"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
}
ApiBillableEvent represents a chargeable event in your system
func (ApiBillableEvent) TableName ¶
func (ApiBillableEvent) TableName() string
TableName sets the name of the table for GORM
type BaseEntity ¶
type BetterContactResponseBody ¶
type BetterContactResponseBody struct {
Id string `json:"id"`
Status string `json:"status"`
Summary struct {
Total int `json:"total"`
Valid int `json:"valid"`
Undeliverable int `json:"undeliverable"`
NotFound int `json:"not_found"`
} `json:"summary"`
Data []struct {
Enriched bool `json:"enriched"`
EmailProvider string `json:"email_provider"`
CompanyName string `json:"company_name"`
CompanyDomain string `json:"company_domain"`
ContactGender interface{} `json:"contact_gender"`
CompanyIndustry interface{} `json:"company_industry"`
CompanyLegalId interface{} `json:"company_legal_id"`
ContactJobTitle interface{} `json:"contact_job_title"`
ContactLastName string `json:"contact_last_name"`
CompanyLegalName interface{} `json:"company_legal_name"`
ContactFirstName string `json:"contact_first_name"`
CompanyAddressCity interface{} `json:"company_address_city"`
CompanyLinkedinUrl interface{} `json:"company_linkedin_url"`
CompanyPhoneNumber interface{} `json:"company_phone_number"`
ContactPhoneNumber interface{} `json:"contact_phone_number"`
CompanyAddressState interface{} `json:"company_address_state"`
CompanyIndustryCode interface{} `json:"company_industry_code"`
ContactEmailAddress string `json:"contact_email_address"`
CompanyAddressStreet interface{} `json:"company_address_street"`
CompanyAddressCountry interface{} `json:"company_address_country"`
CompanyAddressZipcode interface{} `json:"company_address_zipcode"`
CompanyEmployeesNumber interface{} `json:"company_employees_number"`
ContactEmailAddressStatus string `json:"contact_email_address_status"`
ContactLinkedinProfileUrl string `json:"contact_linkedin_profile_url"`
ContactEmailAddressProvider string `json:"contact_email_address_provider"`
ContactAdditionalPhoneNumber interface{} `json:"contact_additional_phone_number"`
CustomFields []interface{} `json:"custom_fields"`
} `json:"data"`
}
type BillableEvent ¶
type BillableEvent string
BillableEvent is a custom type representing various events
const ( BillableEventEmailVerifiedCatchAll BillableEvent = "email_verified_catch_all" BillableEventEmailVerifiedNotCatchAll BillableEvent = "email_verified_not_catch_all" BillableEventEnrichPersonEmailFound BillableEvent = "enrich_person_email_found" BillableEventEnrichPersonPhoneFound BillableEvent = "enrich_person_phone_found" BillableEventEnrichOrganizationSuccess BillableEvent = "enrich_organization_success" BillableEventIpVerificationSuccess BillableEvent = "ip_verification_success" BillableEventFlowActionExecuted BillableEvent = "flow_action_executed" )
Constants for predefined Billable Events
type BrandfetchCompany ¶
type BrandfetchCompany struct {
Employees any `json:"employees,omitempty"`
FoundedYear int64 `json:"foundedYear,omitempty"`
Industries []BrandfetchIndustry `json:"industries,omitempty"`
Kind string `json:"kind,omitempty"`
Location struct {
City string `json:"city,omitempty"`
Country string `json:"country,omitempty"`
CountryCodeA2 string `json:"countryCode,omitempty"`
Region string `json:"region,omitempty"`
State string `json:"state,omitempty"`
SubRegion string `json:"subRegion,omitempty"`
} `json:"location,omitempty"`
}
func (BrandfetchCompany) GetEmployees ¶
func (bc BrandfetchCompany) GetEmployees() int64
func (BrandfetchCompany) LocationIsEmpty ¶
func (bc BrandfetchCompany) LocationIsEmpty() bool
type BrandfetchIndustry ¶
type BrandfetchIndustry struct {
Score float64 `json:"score,omitempty"`
Name string `json:"name,omitempty"`
Emoji string `json:"emoji,omitempty"`
Slug string `json:"slug,omitempty"`
Parent struct {
Emoji string `json:"emoji,omitempty"`
Name string `json:"name,omitempty"`
Slug string `json:"slug,omitempty"`
} `json:"parent,omitempty"`
}
type BrandfetchLink ¶
type BrandfetchResponseBody ¶
type BrandfetchResponseBody struct {
Message string `json:"message,omitempty"`
Id string `json:"id,omitempty"`
Name string `json:"name,omitempty"`
Domain string `json:"domain,omitempty"`
Claimed bool `json:"claimed"`
Description string `json:"description,omitempty"`
LongDescription string `json:"longDescription,omitempty"`
Links []BrandfetchLink `json:"links,omitempty"`
Logos []BranfetchLogo `json:"logos,omitempty"`
QualityScore float64 `json:"qualityScore,omitempty"`
Company BrandfetchCompany `json:"company,omitempty"`
IsNsfw bool `json:"isNsfw"`
}
func (BrandfetchResponseBody) GetIconUrls ¶
func (b BrandfetchResponseBody) GetIconUrls() []string
func (BrandfetchResponseBody) GetLogoUrls ¶
func (b BrandfetchResponseBody) GetLogoUrls() []string
func (BrandfetchResponseBody) IsEmpty ¶
func (b BrandfetchResponseBody) IsEmpty() bool
type BranfetchLogo ¶
type BranfetchLogo struct {
Theme string `json:"theme,omitempty"`
Type string `json:"type,omitempty"`
Formats []BranfetchLogoFormat `json:"formats,omitempty"`
}
type BranfetchLogoFormat ¶
type BrowserAutomationsRun ¶
type BrowserAutomationsRun struct {
Id int `gorm:"primary_key;autoIncrement:true"`
BrowserConfigId int `gorm:"column:browser_config_id;type:integer"`
UserId string `gorm:"column:user_id;type:varchar(36);"`
Tenant string `gorm:"column:tenant;type:varchar(36);"`
Type string `gorm:"column:type;type:browser_automation_run_type;"`
Status string `gorm:"column:status;type:browser_automation_run_status;"`
Payload string `gorm:"column:payload;type:text;"`
}
func (BrowserAutomationsRun) TableName ¶
func (BrowserAutomationsRun) TableName() string
type BrowserAutomationsRunResult ¶
type BrowserAutomationsRunResult struct {
Id uint64 `gorm:"primary_key;autoIncrement:true"`
RunId int `gorm:"column:run_id;type:integer"`
ResultData string `gorm:"column:result_data;type:text;"`
}
func (BrowserAutomationsRunResult) TableName ¶
func (BrowserAutomationsRunResult) TableName() string
type BrowserConfig ¶
type BrowserConfig struct {
Id int `gorm:"primary_key;autoIncrement:true"`
UserId string `gorm:"column:user_id;type:varchar(36);"`
Tenant string `gorm:"column:tenant;type:varchar(36);"`
Status string `gorm:"column:session_status;type:browser_config_session_status;"`
}
func (BrowserConfig) TableName ¶
func (BrowserConfig) TableName() string
type CacheCrustData ¶
type CacheCrustData struct {
ID uint64 `gorm:"column:id;primaryKey;autoIncrement" json:"id"`
RequestCompanyDomain string `gorm:"column:request_company_domain;type:varchar(255)" json:"requestCompany"` // Organization primary domain
RequestJobTitle string `gorm:"column:request_job_title;varchar(255)" json:"requestJobTitle"` // List of job titles
Response string `gorm:"column:response;type:text" json:"response"`
CreatedAt time.Time `gorm:"type:timestamp;default:current_timestamp" json:"created_at"`
UpdatedAt time.Time `gorm:"type:timestamp;default:current_timestamp" json:"updated_at"`
}
CacheCrustData represents the cache table for Crust Data API responses
func (CacheCrustData) TableName ¶
func (CacheCrustData) TableName() string
type CacheEmailEnrow ¶
type CacheEmailEnrow struct {
ID string `gorm:"primary_key;type:uuid;default:gen_random_uuid()" json:"id"`
RequestID string `gorm:"column:request_id;type:varchar(255);NOT NULL" json:"requestId"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;" json:"updatedAt"`
Email string `gorm:"column:email;type:varchar(255);NOT NULL" json:"email"`
Qualification string `gorm:"column:qualification;type:varchar(255)" json:"qualification"`
Data string `gorm:"column:data;type:text" json:"data"`
}
func (CacheEmailEnrow) TableName ¶
func (CacheEmailEnrow) TableName() string
type CacheEmailScrubby ¶
type CacheEmailScrubby struct {
ID string `gorm:"primary_key;type:uuid;default:gen_random_uuid()" json:"id"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
CheckedAt time.Time `gorm:"column:checked_at;type:timestamp" json:"checkedAt"`
Email string `gorm:"column:email;type:varchar(255);NOT NULL" json:"domain"`
Status string `gorm:"column:status;type:varchar(255)" json:"status"`
}
func (CacheEmailScrubby) TableName ¶
func (CacheEmailScrubby) TableName() string
type CacheEmailTrueinbox ¶
type CacheEmailTrueinbox struct {
ID string `gorm:"primary_key;type:uuid;default:gen_random_uuid()" json:"id"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
Email string `gorm:"column:email;type:varchar(255);NOT NULL" json:"email"`
Result string `gorm:"column:result;type:varchar(255)" json:"result"`
Data string `gorm:"column:data;type:text" json:"data"`
}
func (CacheEmailTrueinbox) TableName ¶
func (CacheEmailTrueinbox) TableName() string
type CacheEmailValidation ¶
type CacheEmailValidation struct {
ID string `gorm:"primary_key;type:uuid;default:gen_random_uuid()" json:"id"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;DEFAULT:current_timestamp" json:"updatedAt"`
Email string `gorm:"column:email;type:varchar(255);NOT NULL;index:idx_cache_email_validation_email,unique" json:"email"`
NormalizedEmail string `gorm:"column:normalized_email;type:varchar(255)" json:"normalizedEmail"`
Username string `gorm:"column:username;type:varchar(255)" json:"username"`
Domain string `gorm:"column:domain;type:varchar(255)" json:"domain"`
IsMailboxFull bool `gorm:"column:is_mailbox_full;type:boolean" json:"isMailboxFull"`
IsRoleAccount bool `gorm:"column:is_role_account;type:boolean" json:"isRoleAccount"`
IsSystemGenerated bool `gorm:"column:is_system_generated;type:boolean" json:"isSystemGenerated"`
IsFreeAccount bool `gorm:"column:is_free_account;type:boolean" json:"isFreeAccount"`
SmtpSuccess bool `gorm:"column:smtp_success;type:boolean" json:"smtpSuccess"`
ResponseCode string `gorm:"column:response_code;type:varchar(255)" json:"responseCode"`
ErrorCode string `gorm:"column:error_code;type:varchar(255)" json:"errorCode"`
Description string `gorm:"column:description;type:text" json:"description"`
TLSRequired bool `gorm:"column:tls_required;type:boolean" json:"tlsRequired"`
RetryValidation bool `gorm:"column:retry_validation;type:boolean" json:"retryValidation"`
Deliverable string `gorm:"column:deliverable;type:varchar(16)" json:"deliverable"`
HealthIsGreylisted bool `gorm:"column:health_is_greylisted;type:boolean" json:"healthIsGreylisted"`
HealthIsBlacklisted bool `gorm:"column:health_is_blacklisted;type:boolean" json:"healthIsBlacklisted"`
HealthServerIP string `gorm:"column:health_server_ip;type:varchar(255)" json:"healthServerIP"`
HealthFromEmail string `gorm:"column:health_from_email;type:varchar(255)" json:"healthFromEmail"`
HealthRetryAfter int `gorm:"column:health_retry_after;type:integer" json:"healthRetryAfter"`
AlternateEmail string `gorm:"column:alternate_email;type:varchar(255)" json:"alternateEmail"`
Error string `gorm:"column:error;type:varchar(255)" json:"error"`
Data string `gorm:"column:data;type:text" json:"data"`
}
func (CacheEmailValidation) TableName ¶
func (CacheEmailValidation) TableName() string
type CacheEmailValidationDomain ¶
type CacheEmailValidationDomain struct {
ID string `gorm:"primary_key;type:uuid;default:gen_random_uuid()" json:"id"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;DEFAULT:current_timestamp" json:"updatedAt"`
Domain string `gorm:"column:domain;type:varchar(255);NOT NULL;index:idx_cache_email_validation_domain_domain,unique" json:"domain"`
IsCatchAll bool `gorm:"column:is_catch_all;type:boolean" json:"isCatchAll"`
IsFirewalled bool `gorm:"column:is_firewalled;type:boolean" json:"isFirewalled"`
Provider string `gorm:"column:provider;type:varchar(255)" json:"provider"`
Firewall string `gorm:"column:firewall;type:varchar(255)" json:"firewall"`
HasMXRecord bool `gorm:"column:has_mx_record;type:boolean" json:"hasMXRecord"`
HasSPFRecord bool `gorm:"column:has_spf_record;type:boolean" json:"hasSPFRecord"`
Error string `gorm:"column:error;type:varchar(255)" json:"error"`
Data string `gorm:"column:data;type:text" json:"data"`
CanConnectSMTP bool `gorm:"column:can_connect_smtp;type:boolean" json:"canConnectSMTP"`
TLSRequired bool `gorm:"column:tls_required;type:boolean" json:"tlsRequired"`
ResponseCode string `gorm:"column:response_code;type:varchar(255)" json:"responseCode"`
ErrorCode string `gorm:"column:error_code;type:varchar(255)" json:"errorCode"`
Description string `gorm:"column:description;type:text" json:"description"`
HealthIsGreylisted bool `gorm:"column:health_is_greylisted;type:boolean" json:"healthIsGreylisted"`
HealthIsBlacklisted bool `gorm:"column:health_is_blacklisted;type:boolean" json:"healthIsBlacklisted"`
HealthServerIP string `gorm:"column:health_server_ip;type:varchar(255)" json:"healthServerIP"`
HealthFromEmail string `gorm:"column:health_from_email;type:varchar(255)" json:"healthFromEmail"`
HealthRetryAfter int `gorm:"column:health_retry_after;type:integer" json:"healthRetryAfter"`
IsPrimaryDomain *bool `gorm:"column:is_primary_domain;type:boolean" json:"isPrimaryDomain"`
PrimaryDomain string `gorm:"column:primary_domain;type:varchar(255)" json:"primaryDomain"`
}
func (CacheEmailValidationDomain) TableName ¶
func (CacheEmailValidationDomain) TableName() string
type CacheIPIdentify ¶
type CacheIPIdentify struct {
ID string `gorm:"primary_key;type:uuid;default:gen_random_uuid()" json:"id"`
IPAddress string `gorm:"column:ip_address;type:varchar(255)" json:"ipAddress"`
Domain string `gorm:"column:domain;type:varchar(255)" json:"domain"`
LinkedinSlug string `gorm:"column:linkedin_slug;type:varchar(255)" json:"linkedinSlug"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;DEFAULT:current_timestamp" json:"updatedAt"`
SnitcherData string `gorm:"column:snitcher_data;type:text" json:"snitcherData"`
SourceEmail string `gorm:"column:source_email;type:text" json:"sourceEmail"`
}
func (CacheIPIdentify) TableName ¶
func (CacheIPIdentify) TableName() string
type CacheIpData ¶
type CacheIpData struct {
ID string `gorm:"primary_key;type:uuid;default:gen_random_uuid()" json:"id"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;DEFAULT:current_timestamp" json:"updatedAt"`
Ip string `gorm:"column:ip;type:varchar(255);NOT NULL;index:idx_cache_ip_data_ip,unique" json:"ip"`
Data string `gorm:"column:data;type:text" json:"data"`
}
func (CacheIpData) TableName ¶
func (CacheIpData) TableName() string
type CacheIpHunter ¶
type CacheIpHunter struct {
ID string `gorm:"primary_key;type:uuid;default:gen_random_uuid()" json:"id"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;DEFAULT:current_timestamp" json:"updatedAt"`
Ip string `gorm:"column:ip;type:varchar(255);NOT NULL;index:idx_cache_ip_hunter_ip,unique" json:"ip"`
Data string `gorm:"column:data;type:text" json:"data"`
}
func (CacheIpHunter) TableName ¶
func (CacheIpHunter) TableName() string
type Capability ¶
type Capability struct {
ID string `gorm:"primaryKey;type:varchar(32)" json:"id"`
Tenant string `gorm:"column:tenant;type:varchar(255)" json:"tenant"`
Position int `gorm:"column:position;type:integer" json:"order"`
AgentID string `gorm:"column:agent_id;type:varchar(32);not null" json:"agentId"`
Name string `gorm:"column:name;type:varchar(255);not null" json:"name"`
Type enum.AgentCapability `gorm:"column:type;type:varchar(50);not null" json:"type"`
Error string `gorm:"column:error;type:varchar(255)" json:"error"`
Active bool `gorm:"column:active;type:boolean" json:"active"`
CreatedAt time.Time `gorm:"column:created_at;autoCreateTime" json:"createdAt"`
UpdatedAt *time.Time `gorm:"column:updated_at;autoUpdateTime" json:"updatedAt"`
ConfigHandlerImpl `gorm:"embedded"`
}
Capability as a separate entity
func (*Capability) BeforeCreate ¶
func (c *Capability) BeforeCreate(tx *gorm.DB) error
func (Capability) TableName ¶
func (Capability) TableName() string
type ColumnView ¶
type ColumnViewType ¶
type ColumnViewType string
const ( ColumnViewTypeInvoicesIssueDate ColumnViewType = "INVOICES_ISSUE_DATE" ColumnViewTypeInvoicesIssueDatePast ColumnViewType = "INVOICES_ISSUE_DATE_PAST" ColumnViewTypeInvoicesDueDate ColumnViewType = "INVOICES_DUE_DATE" ColumnViewTypeInvoicesContract ColumnViewType = "INVOICES_CONTRACT" ColumnViewTypeInvoicesBillingCycle ColumnViewType = "INVOICES_BILLING_CYCLE" ColumnViewTypeInvoicesInvoiceNumber ColumnViewType = "INVOICES_INVOICE_NUMBER" ColumnViewTypeInvoicesAmount ColumnViewType = "INVOICES_AMOUNT" ColumnViewTypeInvoicesInvoiceStatus ColumnViewType = "INVOICES_INVOICE_STATUS" ColumnViewTypeInvoicesInvoicePreview ColumnViewType = "INVOICES_INVOICE_PREVIEW" ColumnViewTypeInvoicesOrganization ColumnViewType = "INVOICES_ORGANIZATION" ColumnViewTypeOrganizationsAvatar ColumnViewType = "ORGANIZATIONS_AVATAR" ColumnViewTypeOrganizationsName ColumnViewType = "ORGANIZATIONS_NAME" ColumnViewTypeOrganizationsPrimaryDomains ColumnViewType = "ORGANIZATIONS_PRIMARY_DOMAINS" ColumnViewTypeOrganizationsOwner ColumnViewType = "ORGANIZATIONS_OWNER" ColumnViewTypeOrganizationsStage ColumnViewType = "ORGANIZATIONS_STAGE" ColumnViewTypeOrganizationsContactCount ColumnViewType = "ORGANIZATIONS_CONTACT_COUNT" ColumnViewTypeOrganizationsSocials ColumnViewType = "ORGANIZATIONS_SOCIALS" ColumnViewTypeOrganizationsLeadSource ColumnViewType = "ORGANIZATIONS_LEAD_SOURCE" ColumnViewTypeOrganizationsCreatedDate ColumnViewType = "ORGANIZATIONS_CREATED_DATE" ColumnViewTypeOrganizationsEmployeeCount ColumnViewType = "ORGANIZATIONS_EMPLOYEE_COUNT" ColumnViewTypeOrganizationsYearFounded ColumnViewType = "ORGANIZATIONS_YEAR_FOUNDED" ColumnViewTypeOrganizationsIndustry ColumnViewType = "ORGANIZATIONS_INDUSTRY" ColumnViewTypeOrganizationsCountry ColumnViewType = "ORGANIZATIONS_COUNTRY" ColumnViewTypeOrganizationsCity ColumnViewType = "ORGANIZATIONS_CITY" ColumnViewTypeOrganizationsHeadquarters ColumnViewType = "ORGANIZATIONS_HEADQUARTERS" ColumnViewTypeOrganizationsIsPublic ColumnViewType = "ORGANIZATIONS_IS_PUBLIC" ColumnViewTypeOrganizationsLinkedinFollowerCount ColumnViewType = "ORGANIZATIONS_LINKEDIN_FOLLOWER_COUNT" ColumnViewTypeOrganizationsTags ColumnViewType = "ORGANIZATIONS_TAGS" ColumnViewTypeOrganizationsUpdatedDate ColumnViewType = "ORGANIZATIONS_UPDATED_DATE" ColumnViewTypeOrganizationsIcpFit ColumnViewType = "ORGANIZATIONS_ICP_FIT" ColumnViewTypeOrganizationsQualificationStatus ColumnViewType = "ORGANIZATIONS_QUALIFICATION_STATUS" ColumnViewTypeContactsAvatar ColumnViewType = "CONTACTS_AVATAR" ColumnViewTypeContactsName ColumnViewType = "CONTACTS_NAME" ColumnViewTypeContactsOrganization ColumnViewType = "CONTACTS_ORGANIZATION" ColumnViewTypeContactsEmails ColumnViewType = "CONTACTS_EMAILS" ColumnViewTypeContactsPersonalEmails ColumnViewType = "CONTACTS_PERSONAL_EMAILS" ColumnViewTypeContactsPrimaryEmail ColumnViewType = "CONTACTS_PRIMARY_EMAIL" ColumnViewTypeEmailVerificationPrimaryEmail ColumnViewType = "EMAIL_VERIFICATION_PRIMARY_EMAIL" ColumnViewTypeContactsPhoneNumbers ColumnViewType = "CONTACTS_PHONE_NUMBERS" ColumnViewTypeContactsLinkedin ColumnViewType = "CONTACTS_LINKEDIN" ColumnViewTypeContactsCity ColumnViewType = "CONTACTS_CITY" ColumnViewTypeContactsPersona ColumnViewType = "CONTACTS_PERSONA" ColumnViewTypeContactsLastInteraction ColumnViewType = "CONTACTS_LAST_INTERACTION" ColumnViewTypeContactsCountry ColumnViewType = "CONTACTS_COUNTRY" ColumnViewTypeContactsRegion ColumnViewType = "CONTACTS_REGION" ColumnViewTypeContactsSkills ColumnViewType = "CONTACTS_SKILLS" ColumnViewTypeContactsSchools ColumnViewType = "CONTACTS_SCHOOLS" ColumnViewTypeContactsLanguages ColumnViewType = "CONTACTS_LANGUAGES" ColumnViewTypeContactsTimeInCurrentRole ColumnViewType = "CONTACTS_TIME_IN_CURRENT_ROLE" ColumnViewTypeContactsExperience ColumnViewType = "CONTACTS_EXPERIENCE" ColumnViewTypeContactsLinkedinFollowerCount ColumnViewType = "CONTACTS_LINKEDIN_FOLLOWER_COUNT" ColumnViewTypeContactsJobTitle ColumnViewType = "CONTACTS_JOB_TITLE" ColumnViewTypeContactsTags ColumnViewType = "CONTACTS_TAGS" ColumnViewTypeContactsConnections ColumnViewType = "CONTACTS_CONNECTIONS" ColumnViewTypeContactsFlows ColumnViewType = "CONTACTS_FLOWS" ColumnViewTypeContactsFlowStatus ColumnViewType = "CONTACTS_FLOW_STATUS" ColumnViewTypeContactsFlowNextAction ColumnViewType = "CONTACTS_FLOW_NEXT_ACTION" ColumnViewTypeContactsUpdatedAt ColumnViewType = "CONTACTS_UPDATED_AT" ColumnViewTypeContactsCreatedAt ColumnViewType = "CONTACTS_CREATED_AT" ColumnViewTypeOpportunitiesCommonColumn ColumnViewType = "OPPORTUNITIES_COMMON_COLUMN" ColumnViewTypeOpportunitiesName ColumnViewType = "OPPORTUNITIES_NAME" ColumnViewTypeOpportunitiesOrganization ColumnViewType = "OPPORTUNITIES_ORGANIZATION" ColumnViewTypeOpportunitiesStage ColumnViewType = "OPPORTUNITIES_STAGE" ColumnViewTypeOpportunitiesEstimatedArr ColumnViewType = "OPPORTUNITIES_ESTIMATED_ARR" ColumnViewTypeOpportunitiesOwner ColumnViewType = "OPPORTUNITIES_OWNER" ColumnViewTypeOpportunitiesTimeInStage ColumnViewType = "OPPORTUNITIES_TIME_IN_STAGE" ColumnViewTypeOpportunitiesCreatedDate ColumnViewType = "OPPORTUNITIES_CREATED_DATE" ColumnViewTypeOpportunitiesNextStep ColumnViewType = "OPPORTUNITIES_NEXT_STEP" ColumnViewTypeOpportunitiesTasks ColumnViewType = "OPPORTUNITIES_TASKS" ColumnViewTypeContractsName ColumnViewType = "CONTRACTS_NAME" ColumnViewTypeContractsEnded ColumnViewType = "CONTRACTS_ENDED" ColumnViewTypeContractsPeriod ColumnViewType = "CONTRACTS_PERIOD" ColumnViewTypeContractsCurrency ColumnViewType = "CONTRACTS_CURRENCY" ColumnViewTypeContractsStatus ColumnViewType = "CONTRACTS_STATUS" ColumnViewTypeContractsRenewal ColumnViewType = "CONTRACTS_RENEWAL" ColumnViewTypeContractsLtv ColumnViewType = "CONTRACTS_LTV" ColumnViewTypeContractsRenewalDate ColumnViewType = "CONTRACTS_RENEWAL_DATE" ColumnViewTypeContractsForecastArr ColumnViewType = "CONTRACTS_FORECAST_ARR" ColumnViewTypeContractsOwner ColumnViewType = "CONTRACTS_OWNER" ColumnViewTypeContractsHealth ColumnViewType = "CONTRACTS_HEALTH" ColumnViewTypeContractsOrganizationLegalName ColumnViewType = "CONTRACTS_ORGANIZATION_LEGAL_NAME" ColumnViewTypeFlowName ColumnViewType = "FLOW_NAME" ColumnViewTypeFlowTotalCount ColumnViewType = "FLOW_TOTAL_COUNT" ColumnViewTypeFlowOnHoldCount ColumnViewType = "FLOW_ON_HOLD_COUNT" ColumnViewTypeFlowReadyCount ColumnViewType = "FLOW_READY_COUNT" ColumnViewTypeFlowScheduledCount ColumnViewType = "FLOW_SCHEDULED_COUNT" ColumnViewTypeFlowInProgressCount ColumnViewType = "FLOW_IN_PROGRESS_COUNT" ColumnViewTypeFlowCompletedCount ColumnViewType = "FLOW_COMPLETED_COUNT" ColumnViewTypeFlowGoalAchievedCount ColumnViewType = "FLOW_GOAL_ACHIEVED_COUNT" ColumnViewTypeFlowStatus ColumnViewType = "FLOW_STATUS" ColumnViewTypeFlowActionName ColumnViewType = "FLOW_ACTION_NAME" ColumnViewTypeFlowActionStatus ColumnViewType = "FLOW_ACTION_STATUS" ColumnViewTypeTasksSubject ColumnViewType = "TASKS_SUBJECT" ColumnViewTypeTasksAssignees ColumnViewType = "TASKS_ASSIGNEES" ColumnViewTypeTasksDescription ColumnViewType = "TASKS_DESCRIPTION" ColumnViewTypeTasksDueDate ColumnViewType = "TASKS_DUE_DATE" ColumnViewTypeTasksStatus ColumnViewType = "TASKS_STATUS" ColumnViewTypeTasksAuthor ColumnViewType = "TASKS_AUTHOR" ColumnViewTypeTasksCreatedAt ColumnViewType = "TASKS_CREATED_AT" ColumnViewTypeTasksUpdatedAt ColumnViewType = "TASKS_UPDATED_AT" ColumnViewTypeTasksOpportunities ColumnViewType = "TASKS_OPPORTUNITIES" )
type Columns ¶
type Columns struct {
Columns []ColumnView `json:"columns"`
}
type ConfigHandler ¶
type ConfigHandler interface {
SetConfig(config any) error
GetConfig(configPtr any) error
GetConfigString() string
}
ConfigHandler interface for common config operations
type ConfigHandlerImpl ¶
type ConfigHandlerImpl struct {
Config JSONConfig `gorm:"column:config;type:jsonb" json:"config"`
}
ConfigHandlerImpl implements common config handling
func (*ConfigHandlerImpl) GetConfig ¶
func (ch *ConfigHandlerImpl) GetConfig(configPtr any) error
func (*ConfigHandlerImpl) GetConfigString ¶
func (ch *ConfigHandlerImpl) GetConfigString() string
func (*ConfigHandlerImpl) SetConfig ¶
func (ch *ConfigHandlerImpl) SetConfig(config any) error
type CosApiEnrichPersonTempResult ¶
type CosApiEnrichPersonTempResult struct {
ID uuid.UUID `gorm:"type:uuid;default:gen_random_uuid();primaryKey"`
Tenant string `gorm:"column:tenant;type:varchar(255);" json:"tenant"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
ScrapinRecordId uint64 `gorm:"column:scrapin_record_id;type:bigint;" json:"scrapinRecordId"`
BettercontactRecordId string `gorm:"column:bettercontact_record_id;type:varchar(255);" json:"bettercontactRecordId"`
}
func (CosApiEnrichPersonTempResult) TableName ¶
func (CosApiEnrichPersonTempResult) TableName() string
type CurrencyRate ¶
type CurrencyRate struct {
ID uint64 `gorm:"primary_key;autoIncrement:true"`
Currency string `gorm:"type:varchar(3);not null"` // Currency code (e.g., EUR, GBP, etc.)
Rate float64 `gorm:"not null"` // Exchange rate relative to USD
Date time.Time `gorm:"not null"` // Date of the exchange rate
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp"`
Source string `gorm:"type:varchar(255);not null"` // Source of the exchange rate (e.g., ECB, etc.)
}
All rates are relative to USD, i.e., 1 USD = Rate Currency (1 USD = 0.93 EUR)
func (CurrencyRate) TableName ¶
func (CurrencyRate) TableName() string
func (CurrencyRate) UniqueIndex ¶
func (CurrencyRate) UniqueIndex() [][]string
type CustomerOsIds ¶
type CustomerOsIds struct {
Tenant string `gorm:"column:tenant;size:50;primaryKey"`
CustomerOSID string `gorm:"column:customer_os_id;size:30;primaryKey"`
Entity string `gorm:"column:entity;size:30"`
EntityId string `gorm:"column:entity_id;size:50"`
CreatedDate time.Time `gorm:"default:current_timestamp"`
Attempts int `gorm:"column:attempts"`
}
func (CustomerOsIds) TableName ¶
func (CustomerOsIds) TableName() string
type DayAvailability ¶
type DayAvailability struct {
Enabled bool `json:"enabled" gorm:"type:boolean;default:false"`
StartHour string `json:"startHour" gorm:"type:varchar(5)"` // Format: "HH:MM"
EndHour string `json:"endHour" gorm:"type:varchar(5)"` // Format: "HH:MM"
}
DayAvailability represents the availability for a single day
func (*DayAvailability) Scan ¶
func (d *DayAvailability) Scan(value interface{}) error
Scan implements the sql.Scanner interface for DayAvailability
func (*DayAvailability) Validate ¶
func (d *DayAvailability) Validate() error
Validate checks if the day availability is valid
type DomainPrimaryException ¶
type DomainPrimaryException struct {
ID uint64 `gorm:"primary_key;autoIncrement" json:"id"`
CreatedAt time.Time `gorm:"column:created_at;autoCreateTime" json:"createdAt"`
Domain string `gorm:"column:domain;type:varchar(255);not null" json:"domain"`
}
func (DomainPrimaryException) TableName ¶
func (DomainPrimaryException) TableName() string
type EmailLookup ¶
type EmailLookup struct {
ID string `gorm:"column:id;primary_key;type:varchar(64);" json:"id"`
Tenant string `gorm:"column:tenant;type:varchar(255);NOT NULL" json:"tenant"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;DEFAULT:current_timestamp" json:"updatedAt"`
TrackerDomain string `gorm:"column:tracker_domain;type:varchar(255);" json:"trackerDomain"`
MessageId string `gorm:"column:message_id;type:varchar(64);NOT NULL" json:"messageId"`
LinkId string `gorm:"column:link_id;type:varchar(64);NOT NULL" json:"linkId"`
RedirectUrl string `gorm:"column:redirect_url;type:varchar(255);NOT NULL" json:"redirectUrl"`
Campaign string `gorm:"column:campaign;type:varchar(255);NOT NULL" json:"campaign"`
Type EmailLookupType `gorm:"column:type;type:varchar(32);NOT NULL" json:"type"`
RecipientId string `gorm:"column:recipient_id;type:varchar(255);" json:"recipientId"`
TrackOpens bool `gorm:"column:track_opens;type:boolean;NOT NULL" json:"trackOpens"`
TrackClicks bool `gorm:"column:track_clicks;type:boolean;NOT NULL" json:"trackClicks"`
UnsubscribeUrl string `gorm:"column:unsubscribe_url;type:varchar(255);" json:"unsubscribeUrl"`
}
func (EmailLookup) TableName ¶
func (EmailLookup) TableName() string
type EmailLookupType ¶
type EmailLookupType string
const ( EmailLookupTypeLink EmailLookupType = "Link" EmailLookupTypeSpyPixel EmailLookupType = "SpyPixel" EmailLookupTypeUnsubscribe EmailLookupType = "Unsubscribe" )
type EmailMessage ¶
type EmailMessage struct {
ID uuid.UUID `gorm:"type:uuid;default:gen_random_uuid();primaryKey"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp"`
Status EmailMessageStatus `gorm:"size:50;not null;"`
SentAt *time.Time `gorm:"column:sent_at;type:timestamp;"`
Error *string `gorm:"column:error;type:text"`
UniqueInternalIdentifier *string `gorm:"size:255;index:unique_internal_identifier"`
Tenant string `gorm:"size:255;not null;index:idx_raw_email_external_system"`
ProducerId string `gorm:"size:255;not null;"`
ProducerType string `gorm:"size:255;not null;"`
//Email message data
FromName string `gorm:"size:255;"`
From string `gorm:"size:255;"`
FromProvider string `gorm:"size:255;"`
To []string `gorm:"-"`
ToString string `gorm:"type:text;column:to"`
Cc []string `gorm:"-"`
CcString string `gorm:"type:text;column:cc"`
Bcc []string `gorm:"-"`
BccString string `gorm:"type:text;column:bcc"`
Subject string
Content string
//COS interaction event id
//deprecated
ReplyTo *string
//Values taken from providers
ProviderMessageId string `gorm:"size:255;not null;"`
ProviderThreadId string `gorm:"size:255;not null;"`
ProviderInReplyTo string `gorm:"size:255;not null;"`
ProviderReferences string `gorm:"size:255;not null;"`
}
func (*EmailMessage) AfterFind ¶
func (e *EmailMessage) AfterFind(tx *gorm.DB) (err error)
AfterFind hook for converting strings to slices
func (*EmailMessage) BeforeSave ¶
func (e *EmailMessage) BeforeSave(tx *gorm.DB) (err error)
BeforeSave hook for converting slices to strings
func (EmailMessage) TableName ¶
func (EmailMessage) TableName() string
type EmailMessageStatus ¶
type EmailMessageStatus string
const ( EmailMessageStatusScheduled EmailMessageStatus = "SCHEDULED" EmailMessageStatusSent EmailMessageStatus = "SENT" EmailMessageStatusProcessed EmailMessageStatus = "PROCESSED" EmailMessageStatusError EmailMessageStatus = "ERROR" )
type EmailRawData ¶
type EmailRawData struct {
ProviderMessageId string `json:"ProviderMessageId"`
MessageId string `json:"MessageId"`
Sent time.Time `json:"Sent"`
Subject string `json:"Subject"`
From string `json:"From"`
To string `json:"To"`
Cc string `json:"Cc"`
Bcc string `json:"Bcc"`
Html string `json:"Html"`
Text string `json:"Text"`
ThreadId string `json:"ThreadId"`
InReplyTo string `json:"InReplyTo"`
Reference string `json:"Reference"`
Headers map[string]string `json:"Headers"`
}
type EmailTracking ¶
type EmailTracking struct {
ID string `gorm:"primary_key;type:uuid;default:gen_random_uuid()" json:"id"`
Tenant string `gorm:"column:tenant;type:varchar(255);NOT NULL" json:"tenant"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;DEFAULT:current_timestamp" json:"updatedAt"`
Timestamp time.Time `gorm:"column:timestamp;type:timestamp;DEFAULT:current_timestamp" json:"timestamp"`
MessageId string `gorm:"column:message_id;type:varchar(64);NOT NULL" json:"messageId"`
LinkId string `gorm:"column:link_id;type:varchar(64);" json:"linkId"`
RecipientId string `gorm:"column:recipient_id;type:varchar(255);" json:"recipientId"`
Campaign string `gorm:"column:campaign;type:varchar(255);" json:"campaign"`
EventType EmailTrackingEventType `gorm:"column:event_type;type:varchar(255);NOT NULL" json:"eventType"`
IP string `gorm:"column:ip;type:varchar(255);" json:"ip" `
}
func (EmailTracking) TableName ¶
func (EmailTracking) TableName() string
type EmailTrackingEventType ¶
type EmailTrackingEventType string
const ( EmailTrackingEventTypeOpen EmailTrackingEventType = "email_open" EmailTrackingEventTypeLinkClick EmailTrackingEventType = "email_link_click" EmailTrackingEventTypeUnsubscribe EmailTrackingEventType = "email_unsubscribe" )
type EmailValidationRecord ¶
type EmailValidationRecord struct {
ID uint64 `gorm:"primary_key;autoIncrement" json:"id"`
RequestID string `gorm:"column:request_id;type:varchar(255);NOT NULL;index:idx_email_request_id,unique" json:"requestId"`
Tenant string `gorm:"column:tenant;type:varchar(255);NOT NULL" json:"tenant"`
Email string `gorm:"column:email;type:varchar(255);NOT NULL;index:idx_email_request_id,unique" json:"email"`
Priority int `gorm:"column:priority;type:int;DEFAULT:0" json:"priority"`
Data string `gorm:"column:data;type:text;NOT NULL" json:"data"`
VerifyCatchAll bool `gorm:"column:verify_catch_all;type:boolean;DEFAULT:false" json:"verifyCatchAll"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;" json:"updatedAt"`
}
func (EmailValidationRecord) TableName ¶
func (EmailValidationRecord) TableName() string
type EmailValidationRequestBulk ¶
type EmailValidationRequestBulk struct {
RequestID string `gorm:"primary_key;type:varchar(21);" json:"requestId"`
Tenant string `gorm:"column:tenant;type:varchar(255);NOT NULL" json:"tenantId"`
TotalEmails int `gorm:"column:total_emails;type:int;NOT NULL" json:"totalEmails"`
DeliverableEmails int `gorm:"column:deliverable_emails;type:int;DEFAULT:0" json:"deliverableEmails"`
UndeliverableEmails int `gorm:"column:undeliverable_emails;type:int;DEFAULT:0" json:"undeliverableEmails"`
Status EmailValidationRequestBulkStatus `gorm:"column:status;type:varchar(50);NOT NULL" json:"status"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;" json:"updatedAt"`
FileName string `gorm:"column:file_name;type:varchar(255);NOT NULL" json:"fileName"`
Priority int `gorm:"column:priority;type:int;DEFAULT:0" json:"priority"`
VerifyCatchAll bool `gorm:"column:verify_catch_all;type:boolean;DEFAULT:false" json:"verifyCatchAll"`
FileStoreId string `gorm:"column:file_store_id;type:varchar(255)" json:"fileStoreId"`
}
func (EmailValidationRequestBulk) TableName ¶
func (EmailValidationRequestBulk) TableName() string
type EmailValidationRequestBulkStatus ¶
type EmailValidationRequestBulkStatus string
const ( EmailValidationRequestBulkStatusProcessing EmailValidationRequestBulkStatus = "processing" EmailValidationRequestBulkStatusCompleted EmailValidationRequestBulkStatus = "completed" )
type EnrichDetailsBetterContact ¶
type EnrichDetailsBetterContact struct {
ID string `gorm:"type:uuid;default:gen_random_uuid();primaryKey" json:"id"`
RequestID string `gorm:"column:request_id;type:varchar(255);NOT NULL" json:"requestId"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;DEFAULT:current_timestamp" json:"updatedAt"`
ContactFirstName string `gorm:"column:contact_first_name;type:varchar(255);" json:"contactFirstName"`
ContactLastName string `gorm:"column:contact_last_name;type:varchar(255);" json:"contactLastName"`
ContactLinkedInUrl string `gorm:"column:contact_linkedin_url;type:varchar(255);" json:"contactLinkedInUrl"`
CompanyName string `gorm:"column:company_name;type:varchar(255);" json:"companyName"`
CompanyDomain string `gorm:"column:company_domain;type:varchar(255);" json:"companyDomain"`
EnrichPhoneNumber bool `gorm:"column:enrich_phone_number;type:boolean;DEFAULT:false" json:"enrichPhoneNumber"`
Request string `gorm:"column:request;type:text;" json:"request"`
Response string `gorm:"column:response;type:text;" json:"response"`
}
func (EnrichDetailsBetterContact) TableName ¶
func (EnrichDetailsBetterContact) TableName() string
type EnrichDetailsBrandfetch ¶
type EnrichDetailsBrandfetch struct {
ID uint64 `gorm:"primary_key;autoIncrement:true" json:"id"`
Domain string `gorm:"column:domain;type:varchar(255);DEFAULT:'';NOT NULL" json:"domain"`
Data string `gorm:"column:data;type:text;DEFAULT:'';NOT NULL" json:"data"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;;DEFAULT:current_timestamp" json:"updatedAt"`
Success bool `gorm:"column:success;type:boolean;DEFAULT:false" json:"success"`
SyncedToGlobalOrgs bool `gorm:"column:synced_to_global_orgs;type:boolean;DEFAULT:false" json:"syncedToGlobalOrgs"`
}
func (EnrichDetailsBrandfetch) TableName ¶
func (EnrichDetailsBrandfetch) TableName() string
type EnrichDetailsPreFilterTracking ¶
type EnrichDetailsPreFilterTracking struct {
ID string `gorm:"type:uuid;default:gen_random_uuid();primaryKey" json:"id"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;" json:"updatedAt"`
IP string `gorm:"column:ip;uniqueIndex:ip_unique;type:varchar(255);" json:"ip"`
ShouldIdentify *bool `gorm:"column:should_identify;type:boolean;" json:"shouldIdentify"`
SkipIdentifyReason string `gorm:"column:skip_identify_reason;type:varchar(255);" json:"skipIdentifyReason"`
Response *string `gorm:"column:response;type:text;" json:"response"`
}
func (EnrichDetailsPreFilterTracking) TableName ¶
func (EnrichDetailsPreFilterTracking) TableName() string
type EnrichDetailsScrapIn ¶
type EnrichDetailsScrapIn struct {
ID uint64 `gorm:"primary_key;autoIncrement:true" json:"id"`
Flow ScrapInFlow `gorm:"column:flow;type:varchar(255);NOT NULL" json:"flow"`
Param1 string `gorm:"column:param1;type:varchar(1000);" json:"param1"`
Param2 string `gorm:"column:param2;type:varchar(1000);" json:"param2"`
Param3 string `gorm:"column:param3;type:varchar(1000);" json:"param3"`
Param4 string `gorm:"column:param4;type:varchar(1000);" json:"param4"`
Param5 string `gorm:"column:param5;type:varchar(1000);" json:"param5"`
AllParamsJson string `gorm:"column:all_params_json;type:text;DEFAULT:'';NOT NULL" json:"allParams"`
Data string `gorm:"column:data;type:text;DEFAULT:'';NOT NULL" json:"data"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;;DEFAULT:current_timestamp" json:"updatedAt"`
Success bool `gorm:"column:success;type:boolean;DEFAULT:false" json:"success"`
PersonFound bool `gorm:"column:person_found;type:boolean;DEFAULT:false" json:"personFound"`
CompanyFound bool `gorm:"column:company_found;type:boolean;DEFAULT:false" json:"companyFound"`
SyncedToGlobalOrgs bool `gorm:"column:synced_to_global_orgs;type:boolean;DEFAULT:false" json:"syncedToGlobalOrgs"`
SyncedToGlobalContacts bool `gorm:"column:synced_to_global_contacts;type:boolean;DEFAULT:false" json:"syncedToGlobalContacts"`
}
func (EnrichDetailsScrapIn) TableName ¶
func (EnrichDetailsScrapIn) TableName() string
type EnrichDetailsTracking ¶
type EnrichDetailsTracking struct {
ID string `gorm:"type:uuid;default:gen_random_uuid();primaryKey"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;" json:"updatedAt"`
IP string `gorm:"column:ip;uniqueIndex:ip_unique;type:varchar(255);" json:"ip"`
CompanyName *string `gorm:"column:company_name;type:varchar(255);" json:"companyName"`
CompanyDomain *string `gorm:"column:company_domain;type:varchar(255);" json:"companyDomain"`
CompanyWebsite *string `gorm:"column:company_website;type:varchar(255);" json:"companyWebsite"`
SourceEmail *string `gorm:"column:source_email;type:varchar(255);" json:"sourceEmail"`
Response string `gorm:"column:response;type:text;" json:"response"`
}
func (EnrichDetailsTracking) TableName ¶
func (EnrichDetailsTracking) TableName() string
type EnrowResponseBody ¶
type ExternalAppKeys ¶
type ExternalAppKeys struct {
ID uint64 `gorm:"primary_key;autoIncrement:true" json:"id"`
App string `gorm:"column:app;type:varchar(255);NOT NULL;index:idx_external_app_key_unique,unique" json:"app"`
AppKey string `gorm:"column:app_key;type:varchar(255);NOT NULL;index:idx_external_app_key_unique,unique" json:"appKey"`
Group1 string `gorm:"column:group1;type:varchar(255);index:idx_external_app_key_unique,unique" json:"group1"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;DEFAULT:current_timestamp" json:"updatedAt"`
UsageCount int `gorm:"column:usage_count;type:int;NOT NULL" json:"usageCount"`
}
func (ExternalAppKeys) TableName ¶
func (ExternalAppKeys) TableName() string
type FlowEdge ¶
type FlowEdge struct {
ID string `gorm:"primaryKey;type:varchar(50)" json:"id"`
FlowID string `gorm:"column:flow_id;type:varchar(50);not null;index" json:"flowId"`
FromNodeID string `gorm:"column:from_node_id;type:varchar(50);not null" json:"fromNodeId"`
ToNodeID string `gorm:"column:to_node_id;type:varchar(50);not null" json:"toNodeId"`
Condition *string `gorm:"column:condition;type:varchar(255)" json:"condition"`
CreatedAt time.Time `gorm:"column:created_at;autoCreateTime" json:"createdAt"`
UpdatedAt *time.Time `gorm:"column:updated_at;autoUpdateTime" json:"updatedAt"`
// used to store conditional logic
Data *datatypes.JSON `gorm:"column:data;type:jsonb" json:"data"`
}
func (FlowEdge) UniqueIndex ¶
type FlowExecution ¶
type FlowExecution struct {
ID string `gorm:"primary_key;type:uuid;default:gen_random_uuid()" json:"id"`
FlowID string `gorm:"column:flow_id;type:varchar(255);not null;index" json:"flowId" binding:"required"`
Status string `gorm:"column:status;type:varchar(255);not null" json:"status"`
CurrentStepNodeId string `gorm:"column:current_step_node_id;type:varchar(255);index" json:"currentStepNodeId"`
ScheduledFor *time.Time `gorm:"column:scheduled_for" json:"scheduledFor"`
StartedAt *time.Time `gorm:"column:started_at;not null" json:"startedAt"`
CompletedAt *time.Time `gorm:"column:completed_at" json:"completedAt"`
ErrorMessage *string `gorm:"column:error_message;type:text" json:"errorMessage"`
BlockedReason *string `gorm:"column:blocked_reason;type:text" json:"blockedReason"`
CreatedAt time.Time `gorm:"column:created_at;autoCreateTime" json:"createdAt"`
UpdatedAt *time.Time `gorm:"column:updated_at;autoUpdateTime" json:"updatedAt"`
}
func (FlowExecution) TableName ¶
func (FlowExecution) TableName() string
type FlowNode ¶
type FlowNode struct {
ID string `gorm:"primaryKey;type:varchar(50)" json:"id"`
FlowID string `gorm:"column:flow_id;type:varchar(50);not null;index" json:"flowId"`
Type string `gorm:"column:type;type:varchar(50);not null" json:"type"`
AgentID *string `gorm:"column:agent_id;type:varchar(50);not null;index" json:"agentId"`
CreatedAt time.Time `gorm:"column:created_at;autoCreateTime" json:"createdAt"`
UpdatedAt *time.Time `gorm:"column:updated_at;autoUpdateTime" json:"updatedAt"`
// used to store wait time config, email subject & template, etc
UIData *string `gorm:"column:ui_data;type:varchar(255)" json:"uiData"`
}
func (FlowNode) UniqueIndex ¶
type FlowTransitionsRegistry ¶
type FlowTransitionsRegistry struct {
ID uint64 `gorm:"primary_key;autoIncrement:true" json:"id"`
FromNodeType string `gorm:"column:from_node_type;type:varchar(255);not null;index" json:"fromNodeType" binding:"required"`
FromNode string `gorm:"column:from_node;type:varchar(255);not null;uniqueIndex:idx_from_to_nodes;index" json:"fromNode" binding:"required"`
ToNodeType string `gorm:"column:to_node_type;type:varchar(255);not null;index" json:"toNodeType" binding:"required"`
ToNode string `gorm:"column:to_node;type:varchar(255);not null;uniqueIndex:idx_from_to_nodes;index" json:"toNode" binding:"required"`
Status string `gorm:"column:status;type:varchar(50)" json:"status"`
}
func (FlowTransitionsRegistry) TableName ¶
func (FlowTransitionsRegistry) TableName() string
type Flows ¶
type Flows struct {
ID string `gorm:"primaryKey;type:varchar(50)" json:"id"`
AgentID string `gorm:"primaryKey;type:varchar(50)" json:"agentID"`
IsActive string `gorm:"column:is_active;type:boolean;default:false" json:"isActive"`
CreatedAt time.Time `gorm:"column:created_at;autoCreateTime" json:"createdAt"`
UpdatedAt *time.Time `gorm:"column:updated_at;autoUpdateTime" json:"updatedAt"`
LastModifiedBy *string `gorm:"column:last_modified_by;type:varchar(255)" json:"lastModifiedBy"`
}
type GlobalContact ¶
type GlobalContact struct {
ID uint64 `gorm:"primary_key;autoIncrement" json:"id"`
CreatedAt time.Time `gorm:"type:timestamp;default:current_timestamp" json:"created_at"`
UpdatedAt time.Time `gorm:"type:timestamp;default:current_timestamp" json:"updated_at"`
FirstName string `gorm:"type:varchar(255)" json:"first_name"`
LastName string `gorm:"type:varchar(255)" json:"last_name"`
Description string `gorm:"type:text" json:"description"`
LinkedInIdentifier string `gorm:"type:varchar(255);index:idx_linkedin_identifier" json:"linkedin_identifier"`
LinkedInAlias string `gorm:"type:varchar(255);index:idx_linkedin_alias" json:"linkedin_alias"`
WorkEmail string `gorm:"type:varchar(255);index:idx_work_email" json:"work_email,omitempty"`
PersonalEmail string `gorm:"type:varchar(255);index:idx_personal_email" json:"personal_email,omitempty"`
JobTitle string `gorm:"type:varchar(255)" json:"job_title"`
JobStartedAt *time.Time `gorm:"type:timestamp;null" json:"job_started_at,omitempty"`
JobEndedAt *time.Time `gorm:"type:timestamp;null" json:"job_ended_at,omitempty"`
PrimaryDomain string `gorm:"type:varchar(255);index:idx_primary_domain" json:"primary_domain"`
LocationText string `gorm:"column:location_text;type:varchar(1000)" json:"location"`
ProfilePhotoExternalUrl string `gorm:"type:varchar(1000)" json:"profile_photo_external_url,omitempty"`
ProfilePhotoPath string `gorm:"column:profile_photo_path;type:varchar(2000)" json:"profilePhotoPath"`
DownloadStatus enum.DownloadStatus `gorm:"column:download_status;type:varchar(55);default:'NOT_STARTED'" json:"downloadStatus"`
PhoneNumber string `gorm:"column:phone_number;type:varchar(50)" json:"phone_number,omitempty"`
DataFetchedAt *time.Time `gorm:"column:data_fetched_at;type:timestamp" json:"dataFetchedAt,omitempty"`
SyncedToNeoAt *time.Time `gorm:"column:synced_to_neo_at;type:timestamp" json:"syncedToNeoAt"`
// Enrichment fields
BetterContactRequestedAt *time.Time `gorm:"column:bettercontact_requested_at;type:timestamp" json:"betterContactRequestedAt"`
BetterContactSetAt *time.Time `gorm:"column:bettercontact_set_at;type:timestamp" json:"betterContactSetAt"`
BetterContactRequestId string `gorm:"column:bettercontact_request_id;type:varchar(100)" json:"betterContactRequestId,omitempty"`
BetterContactCheckResponseAt *time.Time `gorm:"column:bettercontact_check_response_at;type:timestamp" json:"betterContactCheckResponseAt"`
}
func (GlobalContact) GetFullName ¶
func (g GlobalContact) GetFullName() string
func (GlobalContact) GetProfilePhotoUrl ¶
func (g GlobalContact) GetProfilePhotoUrl(cdnPrefix string) string
func (GlobalContact) TableName ¶
func (GlobalContact) TableName() string
TableName specifies the table name for the GlobalContact entity
type GlobalOrganization ¶
type GlobalOrganization struct {
ID uint64 `gorm:"primary_key;autoIncrement" json:"id"`
Name string `gorm:"column:name;type:varchar(255)" json:"name"`
PrimaryDomain string `` /* 128-byte string literal not displayed */
OtherDomains string `gorm:"column:other_domains;type:text" json:"otherDomains"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;DEFAULT:current_timestamp" json:"updatedAt"`
Active bool `gorm:"column:active;type:boolean;default:false" json:"active"`
Description string `gorm:"column:description;type:text" json:"description"`
Website string `gorm:"column:website;type:varchar(255)" json:"website"`
YearFounded int `gorm:"column:year_founded" json:"yearFounded"`
EmployeeCount int64 `gorm:"column:employee_count" json:"employeeCount"`
LinkedInUrl string `gorm:"column:linkedin;type:varchar(255)" json:"linkedin"`
LinkedInAlias string `gorm:"column:linkedin_alias;type:varchar(255)" json:"linkedinAlias"`
OtherSocials pq.StringArray `gorm:"column:other_socials;type:text[]" json:"otherSocials"`
IconUrl string `gorm:"column:icon_url;type:varchar(2000)" json:"iconUrl"`
LogoUrl string `gorm:"column:logo_url;type:varchar(2000)" json:"logoUrl"`
IconPath string `gorm:"column:icon_path;type:varchar(2000)" json:"iconPath"`
LogoPath string `gorm:"column:logo_path;type:varchar(2000)" json:"logoPath"`
DownloadStatus enum.DownloadStatus `gorm:"column:download_status;type:varchar(55);default:'NOT_STARTED'" json:"downloadStatus"` // deprecated
DownloadStatusLogo enum.DownloadStatus `gorm:"column:download_status_logo;type:varchar(55);default:'NOT_STARTED'" json:"downloadStatusLogo"`
DownloadStatusIcon enum.DownloadStatus `gorm:"column:download_status_icon;type:varchar(55);default:'NOT_STARTED'" json:"downloadStatusIcon"`
// not used yet
Market string `gorm:"column:market;type:text" json:"market"`
CountryA2 string `gorm:"column:country_a2;type:varchar(2)" json:"countryA2"`
Region string `gorm:"column:region;type:varchar(255)" json:"region"`
City string `gorm:"column:city;type:varchar(255)" json:"city"`
IndustryNaicsCode string `gorm:"column:industry_naics_code;type:varchar(255)" json:"industryNaicsCode"`
IndustryNaicsName string `gorm:"column:industry_naics_name;type:varchar(255)" json:"industryNaicsName"`
IndustrySetAt *time.Time `gorm:"column:industry_set_at;type:timestamp" json:"industrySetAt"`
IndustryRequestedAt *time.Time `gorm:"column:industry_requested_at;type:timestamp" json:"industryRequestedAt"`
IndustryRequestCount int `gorm:"column:industry_request_count" json:"industryRequestCount"`
DescriptionSetAt *time.Time `gorm:"column:description_set_at;type:timestamp" json:"descriptionSetAt"`
DescriptionRequestedAt *time.Time `gorm:"column:description_requested_at;type:timestamp" json:"descriptionRequestedAt"`
DescriptionRequestCount int `gorm:"column:description_request_count" json:"descriptionRequestCount"`
SourceDescription1 string `gorm:"column:source_description_1;type:text" json:"sourceDescription1"`
SourceDescription2 string `gorm:"column:source_description_2;type:text" json:"sourceDescription2"`
SourceDescription3 string `gorm:"column:source_description_3;type:text" json:"sourceDescription3"`
SourceDescription4 string `gorm:"column:source_description_4;type:text" json:"sourceDescription4"`
SourceDescription5 string `gorm:"column:source_description_5;type:text" json:"sourceDescription5"`
NameSetAt *time.Time `gorm:"column:name_set_at;type:timestamp" json:"nameSetAt"`
NameRequestedAt *time.Time `gorm:"column:name_requested_at;type:timestamp" json:"nameRequestedAt"`
NameRequestCount int `gorm:"column:name_request_count" json:"nameRequestCount"`
SyncedToNeoAt *time.Time `gorm:"column:synced_to_neo_at;type:timestamp" json:"syncedToNeoAt"`
ScrapedStatus enum.ScrapeStatus `gorm:"column:scrape_status;type:varchar(55);default:'NOT_SCRAPED'" json:"scrapeStatus"`
ScrapeAttempt int `gorm:"column:scrape_attempt;type:int;default:0" json:"scrapeAttempt"`
ScrapedAt *time.Time `gorm:"column:scraped_at;type:timestamp" json:"scrapedAt"`
}
func (GlobalOrganization) TableName ¶
func (GlobalOrganization) TableName() string
TableName sets the name of the table for GORM
type GlobalOrganizationWebsiteToProcess ¶
type GlobalOrganizationWebsiteToProcess struct {
ID uint64 `gorm:"primary_key;autoIncrement" json:"id"`
Website string `gorm:"column:website;type:varchar(255)" json:"website"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
ProcessedAt time.Time `gorm:"column:processed_at;type:timestamp" json:"processedAt"`
Processed bool `gorm:"column:processed;type:boolean" json:"processed"`
Notes string `gorm:"column:notes;type:text" json:"notes"`
}
func (GlobalOrganizationWebsiteToProcess) TableName ¶
func (GlobalOrganizationWebsiteToProcess) TableName() string
TableName sets the name of the table for GORM
type IPDataResponseBody ¶
type IPDataResponseBody struct {
StatusCode int `json:"status_code"`
Message string `json:"message"`
Ip string `json:"ip"`
City string `json:"city"`
Region string `json:"region"`
RegionCode string `json:"region_code"`
RegionType string `json:"region_type"`
CountryName string `json:"country_name"`
CountryCode string `json:"country_code"`
ContinentName string `json:"continent_name"`
ContinentCode string `json:"continent_code"`
Latitude float64 `json:"latitude"`
Longitude float64 `json:"longitude"`
Asn struct {
Asn string `json:"asn"`
Name string `json:"name"`
Domain string `json:"domain"`
Route string `json:"route"`
Type string `json:"type"`
} `json:"asn"`
Carrier *struct {
Name string `json:"name"`
Mcc string `json:"mcc"`
Mnc string `json:"mnc"`
} `json:"carrier"`
TimeZone struct {
Name string `json:"name"`
Abbr string `json:"abbr"`
Offset string `json:"offset"`
IsDst bool `json:"is_dst"`
CurrentTime time.Time `json:"current_time"`
} `json:"time_zone"`
Threat struct {
IsTor bool `json:"is_tor"`
IsVpn bool `json:"is_vpn"`
IsIcloudRelay bool `json:"is_icloud_relay"`
IsProxy bool `json:"is_proxy"`
IsDatacenter bool `json:"is_datacenter"`
IsAnonymous bool `json:"is_anonymous"`
IsKnownAttacker bool `json:"is_known_attacker"`
IsKnownAbuser bool `json:"is_known_abuser"`
IsThreat bool `json:"is_threat"`
IsBogon bool `json:"is_bogon"`
Blocklists []interface{} `json:"blocklists"`
} `json:"threat"`
Count string `json:"count"`
}
type IngestEmailImportState ¶
type IngestEmailImportState struct {
ID uuid.UUID `gorm:"type:uuid;default:gen_random_uuid();primaryKey"`
Tenant string `gorm:"size:255;not null;uniqueIndex:uq_one_state_per_tenant_and_user"`
Username string `gorm:"size:255;not null;uniqueIndex:uq_one_state_per_tenant_and_user"`
Provider string `gorm:"size:255;not null;uniqueIndex:uq_one_state_per_tenant_and_user"`
Period IngestEmailImportStatePeriod `gorm:"size:50;not null;uniqueIndex:uq_one_state_per_tenant_and_user"`
StartDate *time.Time `gorm:""`
StopDate *time.Time `gorm:""`
Active bool `gorm:"not null"`
Cursor string `gorm:"size:255;not null"`
}
func (IngestEmailImportState) TableName ¶
func (IngestEmailImportState) TableName() string
type IngestEmailImportStatePeriod ¶
type IngestEmailImportStatePeriod string
const ( REAL_TIME IngestEmailImportStatePeriod = "REAL_TIME" HISTORY IngestEmailImportStatePeriod = "HISTORY" // this is not used in DB. this is used just in code to trigger the import for the other states LAST_WEEK IngestEmailImportStatePeriod = "LAST_WEEK" LAST_3_MONTHS IngestEmailImportStatePeriod = "LAST_3_MONTHS" LAST_YEAR IngestEmailImportStatePeriod = "LAST_YEAR" OLDER_THAN_ONE_YEAR IngestEmailImportStatePeriod = "OLDER_THAN_ONE_YEAR" )
type IngestEmailMessage ¶
type IngestEmailMessage struct {
Id string `gorm:"type:uuid;default:gen_random_uuid();primaryKey"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp"`
Error *string `gorm:"column:error;type:text"`
State IngestEmailMessageState `gorm:"size:255;not null;"`
Tenant string `gorm:"size:255;not null;index:idx_ingest_raw_email"`
Provider string `gorm:"size:255;not null;index:idx_ingest_raw_email"`
Username string `gorm:"size:255;not null;index:idx_ingest_raw_email"`
//Email message data
SentAt time.Time `gorm:"column:sent_at;type:timestamp;"`
From string `gorm:"type:text"`
To string `gorm:"type:text"`
Cc string `gorm:"type:text"`
Bcc string `gorm:"type:text"`
Subject string
TextContent string `gorm:"type:text"`
HtmlContent string `gorm:"type:text"`
//Values taken from providers
MessageId string `gorm:"size:255;not null;index:idx_ingest_raw_email"`
ProviderMessageId string `gorm:"size:255;not null;"`
ProviderThreadId string `gorm:"size:255;not null;"`
ProviderInReplyTo string `gorm:"type:text"`
ProviderReferences string `gorm:"type:text"`
Headers string `gorm:"type:text"`
}
func (IngestEmailMessage) TableName ¶
func (IngestEmailMessage) TableName() string
type IngestEmailMessageState ¶
type IngestEmailMessageState string
const ( IngestEmailMessageStateError IngestEmailMessageState = "ERROR" IngestEmailMessageStatePending IngestEmailMessageState = "PENDING" IngestEmailMessageStateSentToAgent IngestEmailMessageState = "SENT_TO_AGENT" IngestEmailMessageStateIngested IngestEmailMessageState = "INGESTED" IngestEmailMessageStateFiltered IngestEmailMessageState = "FILTERED" )
type InvoiceNumberEntity ¶
type InvoiceNumberEntity struct {
InvoiceNumber string `gorm:"column:invoice_number;size:16;primaryKey"`
Tenant string `gorm:"column:tenant;size:50"`
CreatedDate time.Time `gorm:"default:current_timestamp"`
Attempts int `gorm:"column:attempts"`
}
func (InvoiceNumberEntity) TableName ¶
func (InvoiceNumberEntity) TableName() string
type JSONConfig ¶
type JSONConfig json.RawMessage
JSONConfig type for handling the config JSON field
func (*JSONConfig) Scan ¶
func (j *JSONConfig) Scan(value any) error
type JSONMap ¶
type JSONMap map[string]interface{}
JSONMap is a helper type for JSONB columns that automatically unmarshals into a map[string]interface{}.
type Listener ¶
type Listener struct {
ID string `gorm:"primaryKey;type:varchar(32)" json:"id"`
Tenant string `gorm:"column:tenant;type:varchar(255)" json:"tenant"`
Position int `gorm:"column:position;type:integer" json:"order"`
AgentID string `gorm:"column:agent_id;type:varchar(32);not null" json:"agentId"`
Name string `gorm:"column:name;type:varchar(255);not null" json:"name"`
Type enum.AgentListenerEvent `gorm:"column:type;type:varchar(50);not null" json:"type"`
Error string `gorm:"column:error;type:varchar(255)" json:"error"`
Active bool `gorm:"column:active;type:boolean" json:"active"`
CreatedAt time.Time `gorm:"column:created_at;autoCreateTime" json:"createdAt"`
UpdatedAt *time.Time `gorm:"column:updated_at;autoUpdateTime" json:"updatedAt"`
ConfigHandlerImpl `gorm:"embedded"`
}
type Location ¶
type Location struct {
CityName string `json:"cityName"`
RegionName string `json:"regionName"`
PostalCode string `json:"postalCode"`
StreetName string `json:"streetName"`
StreetNumber string `json:"streetNumber"`
Country struct {
Name string `json:"name"`
Iso2 string `json:"iso2"`
Iso3 string `json:"iso3"`
} `json:"country"`
RawLocation string // To store the raw string value if the location is a single string
}
Define a custom type for Location
func (*Location) UnmarshalJSON ¶
Implement the UnmarshalJSON method for Location
type MagicLink ¶
type MagicLink struct {
ID string `gorm:"primary_key;type:uuid;default:gen_random_uuid()" json:"id"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
Email string `gorm:"column:email;type:varchar(255);NOT NULL" json:"email"`
Code string `gorm:"column:code;type:varchar(255);NOT NULL" json:"code"`
Url string `gorm:"column:url;type:varchar(255);NOT NULL" json:"url"`
}
type MailstackBuyRequest ¶
type MailstackBuyRequest struct {
ID string `gorm:"primary_key;type:uuid;default:gen_random_uuid()" json:"id"`
Tenant string `gorm:"column:tenant;type:varchar(255);NOT NULL" json:"tenant"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp" json:"updatedAt"`
Domains string `gorm:"column:domains;type:text" json:"domains"`
Usernames string `gorm:"column:usernames;type:text" json:"usernames"`
PaymentIntentId string `gorm:"column:payment_intent_id;type:varchar(255)" json:"paymentIntentId"`
Status MailstackBuyRequestStatus `gorm:"column:status;type:varchar(50)" json:"status"`
}
func (MailstackBuyRequest) TableName ¶
func (MailstackBuyRequest) TableName() string
type MailstackBuyRequestDomain ¶
type MailstackBuyRequestDomain struct {
ID string `gorm:"primary_key;type:uuid;default:gen_random_uuid()" json:"id"`
Tenant string `gorm:"column:tenant;type:varchar(255);NOT NULL" json:"tenant"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp" json:"updatedAt"`
MailstackBuyRequestId string `gorm:"column:mailstack_buy_request_id;type:uuid;NOT NULL" json:"mailstackBuyRequestId"`
Domain string `gorm:"column:domain;type:varchar(255)" json:"domain"`
RedirectWebsite string `gorm:"column:redirect_website;type:varchar(255)" json:"redirectWebsite"`
Status MailstackBuyRequestDomainStatus `gorm:"column:status;type:varchar(50)" json:"status"`
}
func (MailstackBuyRequestDomain) TableName ¶
func (MailstackBuyRequestDomain) TableName() string
type MailstackBuyRequestDomainStatus ¶
type MailstackBuyRequestDomainStatus string
const ( MailstackBuyRequestDomainStatusPendingProvisioning MailstackBuyRequestDomainStatus = "PENDING_PROVISIONING" MailstackBuyRequestDomainStatusPendingConfiguration MailstackBuyRequestDomainStatus = "PENDING_CONFIGURATION" MailstackBuyRequestDomainStatusCompleted MailstackBuyRequestDomainStatus = "COMPLETED" MailstackBuyRequestDomainStatusFailed MailstackBuyRequestDomainStatus = "FAILED" )
type MailstackBuyRequestStatus ¶
type MailstackBuyRequestStatus string
const ( MailstackBuyRequestStatusPending MailstackBuyRequestStatus = "PENDING" MailstackBuyRequestStatusCompleted MailstackBuyRequestStatus = "COMPLETED" MailstackBuyRequestStatusFailed MailstackBuyRequestStatus = "FAILED" )
type MeetingBookedEvent ¶
type MeetingBookedEvent struct {
ID string `gorm:"column:id;type:varchar(25);primaryKey" json:"id"`
Tenant string `gorm:"column:tenant;size:255;not null;primaryKey" json:"tenant"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;DEFAULT:current_timestamp" json:"updatedAt"`
MeetingBookingEventID string `gorm:"column:meeting_booking_event_id;type:varchar(21);not null" json:"meetingBookingEventId"`
HostCalendarID string `gorm:"column:host_calendar_id;size:255" json:"hostCalendarId"`
HostEmail string `gorm:"column:host_email;size:255;not null" json:"hostEmail"`
HostName string `gorm:"column:host_name;type:text" json:"hostName"`
ClientEmail string `gorm:"column:client_email;size:255;not null" json:"clientEmail"`
ClientName string `gorm:"column:client_name;type:text;not null" json:"clientName"`
ClientPhone string `gorm:"column:client_phone;type:text;not null" json:"clientPhone"`
ClientReason string `gorm:"column:client_reason;type:text" json:"clientReason"`
StartTime time.Time `gorm:"column:start_time;type:timestamp;not null" json:"startTime"`
EndTime time.Time `gorm:"column:end_time;type:timestamp;not null" json:"endTime"`
DurationMins int64 `gorm:"column:duration_mins;not null" json:"durationMins"`
NylasResponse string `gorm:"column:nylas_response;type:text;not null" json:"nylasResponse"`
NylasEventID string `gorm:"column:nylas_event_id;type:varchar(255)" json:"nylasEventId"`
Canceled bool `gorm:"column:canceled;type:boolean;not null;default:false" json:"canceled"`
}
func (*MeetingBookedEvent) BeforeCreate ¶
func (u *MeetingBookedEvent) BeforeCreate(tx *gorm.DB) error
BeforeCreate hook to ensure ID has the correct prefix and validate
func (*MeetingBookedEvent) BeforeUpdate ¶
func (u *MeetingBookedEvent) BeforeUpdate(tx *gorm.DB) error
BeforeUpdate hook to update the UpdatedAt timestamp and validate
func (MeetingBookedEvent) TableName ¶
func (MeetingBookedEvent) TableName() string
type MeetingBookingEvent ¶
type MeetingBookingEvent struct {
ID string `gorm:"column:id;type:varchar(21);primaryKey" json:"id"`
Tenant string `gorm:"column:tenant;size:255;not null;primaryKey" json:"tenant"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;DEFAULT:current_timestamp" json:"updatedAt"`
Title string `gorm:"column:title;size:255;not null" json:"title"`
DurationMins int64 `gorm:"column:duration_mins;not null;default:30" json:"durationMins"`
Description string `gorm:"column:description;type:text;not null;default:''" json:"description"`
ParticipantEmails StringArray `gorm:"column:participant_emails;type:text[];not null;default:'{}'" json:"participantEmails"`
BookingFormNameEnabled bool `gorm:"column:booking_form_name_enabled;default:false" json:"bookingFormNameEnabled"`
BookingFormEmailEnabled bool `gorm:"column:booking_form_email_enabled;default:false" json:"bookingFormEmailEnabled"`
BookingFormPhoneEnabled bool `gorm:"column:booking_form_phone_enabled;default:false" json:"bookingFormPhoneEnabled"`
BookingFormPhoneRequired bool `gorm:"column:booking_form_phone_required;default:false" json:"bookingFormPhoneRequired"`
BookOptionEnabled bool `gorm:"column:book_option_enabled;not null;default:false" json:"bookOptionEnabled"`
BookOptionBufferBetweenMeetingsMins int64 `gorm:"column:book_option_buffer_between_meetings_mins;not null;default:0" json:"bookOptionBufferBetweenMeetingsMins"`
BookOptionDaysInAdvance int64 `gorm:"column:book_option_days_in_advance;not null;default:0" json:"bookOptionDaysInAdvance"`
BookOptionMinNoticeMins int64 `gorm:"column:book_option_min_notice_mins;not null;default:0" json:"bookOptionMinNoticeMins"`
EmailNotificationEnabled bool `gorm:"column:email_notification_enabled;not null;default:true" json:"emailNotificationEnabled"`
Location string `gorm:"column:location;size:255;not null;default:''" json:"location"`
AssignmentMethod enum.MeetingBookingAssignmentMethod `gorm:"column:assignment_method;size:255;not null;default:''" json:"assignmentMethod"`
ShowLogo bool `gorm:"column:show_logo;not null;default:true" json:"showLogo"`
BookingConfirmationRedirectLink string `gorm:"column:booking_confirmation_redirect_link;size:255;not null;default:''" json:"bookingConfirmationRedirectLink"`
}
func (*MeetingBookingEvent) BeforeCreate ¶
func (u *MeetingBookingEvent) BeforeCreate(tx *gorm.DB) error
BeforeCreate hook to ensure ID has the correct prefix and validate
func (*MeetingBookingEvent) BeforeUpdate ¶
func (u *MeetingBookingEvent) BeforeUpdate(tx *gorm.DB) error
BeforeUpdate hook to update the UpdatedAt timestamp and validate
func (MeetingBookingEvent) TableName ¶
func (MeetingBookingEvent) TableName() string
type NylasGrant ¶
type NylasGrant struct {
ID string `gorm:"primaryKey;type:varchar(22)" json:"id"`
Tenant string `gorm:"column:tenant;type:varchar(255);NOT NULL;index:idx_nylas_account_tenant_email,unique" json:"tenant"`
Email string `gorm:"column:email;type:varchar(255);NOT NULL;index:idx_nylas_account_tenant_email,unique" json:"email"`
UserId string `gorm:"column:user_id;type:varchar(255);NOT NULL" json:"userId"`
NylasGrantId string `gorm:"column:nylas_grant_id;type:varchar(255);NOT NULL" json:"nylasGrantId"`
NylasProvider string `gorm:"column:nylas_provider;type:varchar(50);NOT NULL;index:idx_nylas_account_tenant_email,unique" json:"provider"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;DEFAULT:current_timestamp" json:"updatedAt"`
NylasConnectResponse string `gorm:"column:nylas_connect_response;type:text" json:"nylasConnectResponse"`
}
func (*NylasGrant) BeforeCreate ¶
func (n *NylasGrant) BeforeCreate(tx *gorm.DB) error
func (NylasGrant) TableName ¶
func (NylasGrant) TableName() string
type NylasGrantResponse ¶
type NylasGrantResponse struct {
RequestID string `json:"request_id"`
Data struct {
ID string `json:"id"`
GrantStatus string `json:"grant_status"`
Provider string `json:"provider"`
Scope []string `json:"scope"`
State string `json:"state"`
Email string `json:"email"`
Name string `json:"name"`
IP string `json:"ip"`
UserAgent string `json:"user_agent"`
CreatedAt int64 `json:"created_at"`
UpdatedAt int64 `json:"updated_at"`
IDToken string `json:"id_token"`
ProviderUserID string `json:"provider_user_id"`
Blocked bool `json:"blocked"`
} `json:"data"`
}
type OAuthTokenEntity ¶
type OAuthTokenEntity struct {
Provider string `gorm:"primaryKey;autoIncrement:false;index:idx_primary;column:provider;size:255;not null"`
TenantName string `gorm:"primaryKey;autoIncrement:false;index:idx_primary;column:tenant_name;size:255;not null"`
EmailAddress string `gorm:"primaryKey;autoIncrement:false;index:idx_primary;column:email_address;size:255;not null"`
Scope string `gorm:"column:scope;type:text"`
UserId string `gorm:"column:user_id;size:255;not null"`
PlayerIdentityId string `gorm:"column:player_identity_id;size:255;not null"`
AccessToken string `gorm:"column:access_token;type:text"`
RefreshToken string `gorm:"column:refresh_token;type:text"`
IdToken string `gorm:"column:id_token;type:text"`
ExpiresAt time.Time `gorm:"column:expires_at;type:timestamp;"`
NeedsManualRefresh bool `gorm:"column:needs_manual_refresh;default:false;"`
GmailSyncEnabled bool `gorm:"column:gmail_sync_enabled;default:false;"`
GoogleCalendarSyncEnabled bool `gorm:"column:google_calendar_sync_enabled;default:false;"`
}
func (*OAuthTokenEntity) HasCalendarReadScope ¶
func (o *OAuthTokenEntity) HasCalendarReadScope() bool
func (*OAuthTokenEntity) HasCalendarWriteScope ¶
func (o *OAuthTokenEntity) HasCalendarWriteScope() bool
func (*OAuthTokenEntity) Scopes ¶
func (o *OAuthTokenEntity) Scopes() []string
func (OAuthTokenEntity) TableName ¶
func (OAuthTokenEntity) TableName() string
type OrganizationWebsiteHostingPlatform ¶
type OrganizationWebsiteHostingPlatform struct {
ID string `gorm:"type:uuid;default:gen_random_uuid();primaryKey"`
UrlPattern string `gorm:"size:255;NOT NULL"`
CreatedAt time.Time `gorm:"default:CURRENT_TIMESTAMP"`
}
func (OrganizationWebsiteHostingPlatform) TableName ¶
func (OrganizationWebsiteHostingPlatform) TableName() string
type OutboxEvent ¶
type OutboxEvent struct {
ID string `gorm:"column:id;primaryKey;type:varchar(50);"`
EventType enums.NatsEventType `gorm:"column:event_type;type:varchar(100);index;not null"`
EntityID string `gorm:"column:entity;type:varchar(50)" json:"entityId"`
Publisher string `gorm:"column:publisher;type:varchar(50);index;not null" json:"publisher"`
Tenant string `gorm:"column:tenant;type:varchar(50);not null" json:"tenant"`
SessionID string `gorm:"column:session_id;type:varchar(50)" json:"sessionId"`
Payload []byte `gorm:"column:payload;type:bytea;not null"`
Status OutboxStatus `gorm:"column:status;type:varchar(20);index;not null"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
ProcessedAt *time.Time `gorm:"column:processed_at;"` // When the event was processed
RetryCount int `gorm:"column:retry_count;type:int;default:0"` // For error handling
ErrorMessage string `gorm:"column:error_message;type:text;"` // Last error message if failed
LockUntil *time.Time `gorm:"column:lock_until;index"` // For distributed processing
}
func (*OutboxEvent) BeforeCreate ¶
func (o *OutboxEvent) BeforeCreate(tx *gorm.DB) error
func (OutboxEvent) TableName ¶
func (OutboxEvent) TableName() string
type OutboxStatus ¶
type OutboxStatus string
const ( OutboxPending OutboxStatus = "pending" OutboxProcessing OutboxStatus = "processing" OutboxCompleted OutboxStatus = "completed" OutboxFailed OutboxStatus = "failed" )
type PersonalEmailProvider ¶
type PersonalEmailProvider struct {
ID uuid.UUID `gorm:"type:uuid;default:gen_random_uuid();primaryKey"`
ProviderName string `gorm:"size:255;not null;"`
ProviderDomain string `gorm:"size:255;not null;index:idx_provider_domain"`
CreatedAt time.Time `gorm:"default:CURRENT_TIMESTAMP"`
}
func (PersonalEmailProvider) TableName ¶
func (PersonalEmailProvider) TableName() string
type PersonalIntegration ¶
type PersonalIntegration struct {
ID uint64 `gorm:"primary_key;autoIncrement:true" json:"id"`
TenantName string `gorm:"column:tenant_name;type:varchar(255);NOT NULL" json:"tenantName" binding:"required"`
Name string `gorm:"column:name;type:varchar(255);NOT NULL" json:"name" binding:"required"`
Email string `gorm:"column:email;type:varchar(255);NOT NULL" json:"email" binding:"required"`
Secret string `gorm:"column:key;type:varchar(255);NOT NULL;index:idx_key,unique" json:"key" binding:"required"`
Active bool `gorm:"column:active;type:boolean;DEFAULT:true" json:"active"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp" json:"updatedAt"`
}
func (PersonalIntegration) TableName ¶
func (PersonalIntegration) TableName() string
func (PersonalIntegration) UniqueIndex ¶
func (PersonalIntegration) UniqueIndex() [][]string
type PostmarkApiKey ¶
type PostmarkApiKey struct {
ID uint64 `gorm:"primary_key;autoIncrement:true" json:"id"`
TenantName string `gorm:"column:tenant_name;type:varchar(255);NOT NULL" json:"tenantName" binding:"required"`
Key string `gorm:"column:key;type:varchar(255);NOT NULL;index:idx_key,unique" json:"key" binding:"required"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp" json:"updatedAt"`
}
func (PostmarkApiKey) TableName ¶
func (PostmarkApiKey) TableName() string
type QuickbooksSettingsEntity ¶
type QuickbooksSettingsEntity struct {
Id uuid.UUID `gorm:"type:uuid;default:gen_random_uuid();primaryKey"`
Tenant string `gorm:"index:idx_tenant_uk;size:255;not null"`
CreatedAt *time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp"`
UpdatedAt *time.Time `gorm:"column:updated_at;type:timestamp;DEFAULT:current_timestamp"`
RealmId string `gorm:"column:realm_id;"`
AccessToken string `gorm:"column:access_token;type:text;"`
AccessTokenExpiresIn int `gorm:"column:access_expires_in;"`
AccessTokenExpiresAt time.Time `gorm:"column:access_token_expires_at;type:timestamp"`
RefreshToken string `gorm:"column:refresh_token;type:text;"`
RefreshTokenExpiresIn int `gorm:"column:refresh_token_expires_in;"`
RefreshTokenExpiresAt time.Time `gorm:"column:refresh_token_expires_at;type:timestamp"`
RefreshTokenExpired bool `gorm:"column:refresh_token_expired;"`
SalesAccountId string `gorm:"column:sales_account_id;"`
}
func (QuickbooksSettingsEntity) TableName ¶
func (QuickbooksSettingsEntity) TableName() string
type ScrapInFlow ¶
type ScrapInFlow string
const ( ScrapInFlowPersonSearch ScrapInFlow = "PERSON_SEARCH" ScrapInFlowPersonProfile ScrapInFlow = "PERSON_PROFILE" ScrapInFlowCompanySearch ScrapInFlow = "COMPANY_SEARCH" ScrapInFlowCompanyProfile ScrapInFlow = "COMPANY_PROFILE" )
type ScrapInResponseBody ¶
type ScrapInResponseBody struct {
Success bool `json:"success"`
Email string `json:"email"`
EmailType string `json:"emailType"`
CreditsLeft int `json:"credits_left"`
RateLimitLeft int `json:"rate_limit_left"`
Person *ScrapinPersonDetails `json:"person,omitempty"`
Company *ScrapinCompanyDetails `json:"company,omitempty"`
}
ScrapInResponseBody is getting serialized in the Data field
type ScrapedWebpage ¶
type ScrapedWebpage struct {
ID uint64 `gorm:"primary_key;autoIncrement" json:"id"`
PrimaryDomain string `` /* 128-byte string literal not displayed */
Url string `gorm:"column:url;type:text;uniqueIndex:idx_unique_url" json:"url"`
Content string `gorm:"column:content;type:text" json:"content"`
Links pq.StringArray `gorm:"column:links;type:text[]" json:"links"`
Category enum.WebpageCategory `gorm:"column:category;type:varchar(55)" json:"category"`
Topics pq.StringArray `gorm:"column:topics;type:text[]" json:"topics"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;DEFAULT:current_timestamp" json:"updatedAt"`
Error string `gorm:"column:error;type:varchar(255)" json:"error"`
LinksCheckedAt *time.Time `gorm:"column:links_checked_at;type:timestamp" json:"linksCheckedAt"`
}
func (ScrapedWebpage) TableName ¶
func (ScrapedWebpage) TableName() string
type ScrapinCompanyDetails ¶
type ScrapinCompanyDetails struct {
LinkedInId string `json:"linkedInId"`
Name string `json:"name"`
UniversalName string `json:"universalName"`
LinkedInUrl string `json:"linkedInUrl"`
EmployeeCount int `json:"employeeCount"`
EmployeeCountRange struct {
Start int `json:"start"`
End int `json:"end"`
} `json:"employeeCountRange"`
WebsiteUrl string `json:"websiteUrl"`
Tagline interface{} `json:"tagline"` // Can be null, so use interface{}
Description string `json:"description"`
Industry string `json:"industry"`
Phone interface{} `json:"phone"` // Can be null, so use interface{}
Specialities []string `json:"specialities"`
FollowerCount int `json:"followerCount"`
Headquarter struct {
City string `json:"city"`
Country string `json:"country"`
PostalCode string `json:"postalCode"`
GeographicArea string `json:"geographicArea"`
Street1 string `json:"street1"`
Street2 interface{} `json:"street2"` // Can be null, so use interface{}
} `json:"headquarter"`
Logo string `json:"logo"`
FoundedOn struct {
Year int `json:"year"`
}
}
func (ScrapinCompanyDetails) GetEmployeeCount ¶
func (c ScrapinCompanyDetails) GetEmployeeCount() int64
func (ScrapinCompanyDetails) HeadquarterIsEmpty ¶
func (c ScrapinCompanyDetails) HeadquarterIsEmpty() bool
type ScrapinPersonDetails ¶
type ScrapinPersonDetails struct {
PublicIdentifier string `json:"publicIdentifier"`
LinkedInIdentifier string `json:"linkedInIdentifier"`
LinkedInUrl string `json:"linkedInUrl"`
FirstName string `json:"firstName"`
LastName string `json:"lastName"`
Headline string `json:"headline"`
Location string `json:"location"`
Summary string `json:"summary"`
PhotoUrl string `json:"photoUrl"`
CreationDate struct {
Month int `json:"month"`
Year int `json:"year"`
} `json:"creationDate"`
FollowerCount int `json:"followerCount"`
Positions struct {
PositionsCount int `json:"positionsCount"`
PositionHistory []ScrapinPositionHistory `json:"positionHistory"`
} `json:"positions"`
Schools struct {
EducationsCount int `json:"educationsCount"`
EducationHistory []struct {
DegreeName string `json:"degreeName"`
FieldOfStudy string `json:"fieldOfStudy"`
Description interface{} `json:"description"` // Can be null, so use interface{}
LinkedInUrl string `json:"linkedInUrl"`
SchoolLogo string `json:"schoolLogo"`
SchoolName string `json:"schoolName"`
StartEndDate struct {
Start struct {
Month *int `json:"month"` // Can be null, so use pointer
Year *int `json:"year"` // Can be null, so use pointer
} `json:"start"`
End struct {
Month *int `json:"month"` // Can be null, so use pointer
Year *int `json:"year"` // Can be null, so use pointer
} `json:"end"`
} `json:"startEndDate"`
} `json:"educationHistory"`
} `json:"schools"`
Skills []interface{} `json:"skills"` // Can be empty, so use interface{}
Languages []interface{} `json:"languages"` // Can be empty, so use interface{}
}
type ScrapinPositionHistory ¶
type ScrapinPositionHistory struct {
Title string `json:"title"`
CompanyName string `json:"companyName"`
Description string `json:"description"`
StartEndDate struct {
Start *struct {
Month int `json:"month"`
Year int `json:"year"`
} `json:"start"`
End *struct {
Month int `json:"month"`
Year int `json:"year"`
} `json:"end"`
} `json:"startEndDate"`
CompanyLogo string `json:"companyLogo"`
LinkedInUrl string `json:"linkedInUrl"`
LinkedInId string `json:"linkedInId"`
}
func OrderPositionsByEndDate ¶
func OrderPositionsByEndDate(positions []ScrapinPositionHistory) []ScrapinPositionHistory
OrderPositionsByEndDate sorts positions by end date ascending, with current positions at the end
func (ScrapinPositionHistory) GetEndMonth ¶
func (p ScrapinPositionHistory) GetEndMonth() int
GetEndMonth returns the end month or 12 for current positions
func (ScrapinPositionHistory) GetEndYear ¶
func (p ScrapinPositionHistory) GetEndYear() int
GetEndYear returns the end year or max int32 for current positions
func (ScrapinPositionHistory) IsCurrentPosition ¶
func (p ScrapinPositionHistory) IsCurrentPosition() bool
IsCurrentPosition returns true if the position has no end date
type ScrubbyStatus ¶
type ScrubbyStatus string
const ( ScrubbyStatusPending ScrubbyStatus = "pending" ScrubbyStatusValid ScrubbyStatus = "Valid" ScrubbyStatusInvalid ScrubbyStatus = "Invalid" ScrubbyStatusLowercasePending ScrubbyStatus = "pending" ScrubbyStatusLowercaseValid ScrubbyStatus = "valid" ScrubbyStatusLowercaseInvalid ScrubbyStatus = "invalid" )
type SkuEntity ¶
type SkuEntity struct {
ID string `gorm:"primary_key;type:uuid;default:gen_random_uuid()" json:"id"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;DEFAULT:current_timestamp" json:"updatedAt"`
Tenant string `gorm:"column:tenant;type:varchar(255);not null" json:"tenant" binding:"required"`
Type SkuType `gorm:"column:sku_type;type:varchar(255);not null" json:"type" binding:"required"`
Name string `gorm:"column:name;type:varchar(255);not null" json:"name" binding:"required"`
Price float64 `gorm:"column:price;type:decimal(10,2);not null" json:"price" binding:"required"`
Archived bool `gorm:"column:archived;type:boolean;default:false" json:"archived"`
QuickbooksId string `gorm:"column:quickbooks_id;type:varchar(255)" json:"quickbooksId"`
}
type SlackChannel ¶
type SlackChannel struct {
ID uuid.UUID `gorm:"type:uuid;default:gen_random_uuid();primaryKey"`
Source string `gorm:"column:source;type:varchar(255);"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp"`
TenantName string `gorm:"column:tenant_name;type:varchar(255);NOT NULL"`
ChannelId string `gorm:"column:channel_id;type:varchar(255);NOT NULL"`
ChannelName string `gorm:"column:channel_name;type:varchar(255);"`
OrganizationId *string `gorm:"column:organization_id;type:varchar(255);"`
}
func (SlackChannel) TableName ¶
func (SlackChannel) TableName() string
func (SlackChannel) UniqueIndex ¶
func (SlackChannel) UniqueIndex() [][]string
type SlackChannelNotification ¶
type SlackChannelNotification struct {
ID uuid.UUID `gorm:"type:uuid;default:gen_random_uuid();primaryKey"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp"`
Tenant string `gorm:"column:tenant;type:varchar(255);NOT NULL"`
ChannelId string `gorm:"column:channel_id;type:varchar(255);NOT NULL"`
Workflow SlackChannelNotificationWorkflow `gorm:"column:workflow;type:varchar(255);"`
}
send notifications to slack channels tenants can configure this for particular workflows
func (SlackChannelNotification) TableName ¶
func (SlackChannelNotification) TableName() string
func (SlackChannelNotification) UniqueIndex ¶
func (SlackChannelNotification) UniqueIndex() [][]string
type SlackChannelNotificationWorkflow ¶
type SlackChannelNotificationWorkflow string
const ( SlackChannelNotificationWorkflowWebsiteVisit SlackChannelNotificationWorkflow = "REVEAL-AI-WEBSITE-VISIT" SlackChannelNotificationWorkflowMailstackReply SlackChannelNotificationWorkflow = "MAILSTACK-REPLY" )
type SlackSettingsEntity ¶
type SlackSettingsEntity struct {
Id uuid.UUID `gorm:"type:uuid;default:gen_random_uuid();primaryKey"`
TenantName string `gorm:"index:idx_tenant_uk;size:255;not null"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;DEFAULT:current_timestamp" json:"updatedAt"`
AppId string `gorm:"size:255;"`
AuthedUserId string `gorm:"size:255;"`
Scope string `gorm:"type:text;"`
TokenType string `gorm:"size:255;"`
AccessToken string `gorm:"size:255;"`
BotUserId string `gorm:"size:255;"`
TeamId string `gorm:"size:255;"`
}
func (SlackSettingsEntity) TableName ¶
func (SlackSettingsEntity) TableName() string
type SnitcherResponseBody ¶
type SnitcherResponseBody struct {
Fuzzy bool `json:"fuzzy"`
Domain string `json:"domain"`
Type string `json:"type"`
Company *struct {
Name string `json:"name"`
Domain string `json:"domain"`
Website string `json:"website"`
Industry string `json:"industry"`
FoundedYear interface{} `json:"founded_year"`
EmployeeRange string `json:"employee_range"`
AnnualRevenue interface{} `json:"annual_revenue"`
TotalFunding interface{} `json:"total_funding"`
Location Location `json:"location"`
Description string `json:"description"`
Phone string `json:"phone"`
Geo struct {
Country string `json:"country"`
CountryCode string `json:"country_code"`
State string `json:"state"`
StateCode *string `json:"state_code"`
PostalCode *string `json:"postal_code"`
City string `json:"city"`
Street *string `json:"street"`
StreetNumber *string `json:"street_number"`
} `json:"geo"`
Profiles *struct {
Crunchbase *struct {
Handle string `json:"handle"`
Url interface{} `json:"url"`
} `json:"crunchbase"`
Linkedin *struct {
Handle string `json:"handle"`
Url string `json:"url"`
} `json:"linkedin"`
Facebook *struct {
Handle string `json:"handle"`
Url string `json:"url"`
} `json:"facebook"`
Twitter *struct {
Handle string `json:"handle"`
Url string `json:"url"`
} `json:"twitter"`
Instagram *struct {
Handle string `json:"handle"`
Url interface{} `json:"url"`
} `json:"instagram"`
Youtube *struct {
Handle string `json:"handle"`
Url interface{} `json:"url"`
} `json:"youtube"`
} `json:"profiles"`
} `json:"company"`
GeoIP struct {
Country string `json:"country"`
CountryCode string `json:"country_code"`
City string `json:"city"`
State string `json:"state"`
} `json:"geoIP"`
}
func (SnitcherResponseBody) HasLocation ¶
func (location SnitcherResponseBody) HasLocation() bool
func (SnitcherResponseBody) HasRawLocation ¶
func (location SnitcherResponseBody) HasRawLocation() bool
func (SnitcherResponseBody) LocationToString ¶
func (location SnitcherResponseBody) LocationToString() string
type StatsApiCalls ¶
type StatsApiCalls struct {
ID uint64 `gorm:"primary_key;autoIncrement:true" json:"id"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;DEFAULT:current_timestamp" json:"updatedAt"`
Tenant string `gorm:"column:tenant;type:varchar(255);NOT NULL;index:idx_stats_api_calls_unique,unique" json:"tenant"`
Api string `gorm:"column:api;type:varchar(255);NOT NULL;index:idx_stats_api_calls_unique,unique" json:"api"`
Day time.Time `gorm:"column:day;type:date;NOT NULL;index:idx_stats_api_calls_unique,unique" json:"day"`
Calls uint64 `gorm:"column:calls;type:bigint;NOT NULL" json:"calls"`
}
func (StatsApiCalls) TableName ¶
func (StatsApiCalls) TableName() string
type StringArray ¶
type StringArray []string
func (*StringArray) Scan ¶
func (a *StringArray) Scan(value interface{}) error
type TableIdType ¶
type TableIdType string
const ( TableIDTypeOrganizations TableIdType = "ORGANIZATIONS" TableIDTypeCustomers TableIdType = "CUSTOMERS" TableIDTypeUpcomingInvoices TableIdType = "UPCOMING_INVOICES" TableIDTypePastInvoices TableIdType = "PAST_INVOICES" TableIDTypeContacts TableIdType = "CONTACTS" TableIDTypeContactsForTargetOrganizations TableIdType = "CONTACTS_FOR_TARGET_ORGANIZATIONS" TableIDTypeOpportunities TableIdType = "OPPORTUNITIES" TableIDTypeOpportunitiesRecords TableIdType = "OPPORTUNITIES_RECORDS" TableIDTypeContracts TableIdType = "CONTRACTS" TableIDTypeFlowActions TableIdType = "FLOW_ACTIONS" TableIDTypeFlowContacts TableIdType = "FLOW_CONTACTS" TableIDTypeTasks TableIdType = "TASKS" )
type TableViewDefinition ¶
type TableViewDefinition struct {
ID uint64 `gorm:"primary_key;autoIncrement:true" json:"id"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;DEFAULT:current_timestamp" json:"updatedAt"`
Tenant string `gorm:"column:tenant;type:varchar(255);NOT NULL" json:"tenant"`
UserId string `gorm:"column:user_id;type:varchar(255)" json:"userId"`
TableId string `gorm:"column:table_id;type:varchar(255);NOT NULL;DEFAULT:''" json:"tableId"`
TableType string `gorm:"column:table_type;type:varchar(255);NOT NULL" json:"tableType"`
Name string `gorm:"column:table_name;type:varchar(255);NOT NULL" json:"tableName"`
Order int `gorm:"column:position;type:int;NOT NULL" json:"order"`
Icon string `gorm:"column:icon;type:varchar(255)" json:"icon"`
Filters string `gorm:"column:filters;type:text" json:"filters"`
DefaultFilters string `gorm:"column:default_filters;type:text" json:"defaultFilters"`
Sorting string `gorm:"column:sorting;type:text" json:"sorting"`
ColumnsJson string `gorm:"column:columns;type:text" json:"columns"`
IsPreset bool `gorm:"column:is_preset;type:boolean;NOT NULL;DEFAULT:false" json:"isPreset"`
}
func (TableViewDefinition) TableName ¶
func (TableViewDefinition) TableName() string
type TableViewType ¶
type TableViewType string
const ( TableViewTypeOrganizations TableViewType = "ORGANIZATIONS" TableViewTypeInvoices TableViewType = "INVOICES" TableViewTypeContacts TableViewType = "CONTACTS" TableViewTypeOpportunities TableViewType = "OPPORTUNITIES" TableViewTypeContracts TableViewType = "CONTRACTS" TableViewTypeFlow TableViewType = "FLOW" TableViewTypeTasks TableViewType = "TASKS" )
type Tenant ¶
type Tenant struct {
Name string `gorm:"primary_key;type:varchar(255);NOT NULL" json:"name"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;DEFAULT:current_timestamp" json:"updatedAt"`
HashID string `gorm:"column:tenant_hash;type:varchar(25)" json:"hashID"`
CompanyReport string `gorm:"column:company_report;type:text" json:"companyReport"`
}
type TenantSettings ¶
type TenantSettings struct {
ID string `gorm:"primary_key;type:uuid;default:gen_random_uuid()"`
TenantName string `gorm:"column:tenant_name;type:varchar(255);NOT NULL" binding:"required"`
SmartSheetId *string `gorm:"column:smart_sheet_id;type:varchar(255);" binding:"required"`
SmartSheetAccessToken *string `gorm:"column:smart_sheet_access_token;type:varchar(255);" binding:"required"`
JiraAPIToken *string `gorm:"column:jira_api_token;type:varchar(255);" binding:"required"`
JiraDomain *string `gorm:"column:jira_domain;type:varchar(255);" binding:"required"`
JiraEmail *string `gorm:"column:jira_email;type:varchar(255);" binding:"required"`
TrelloAPIToken *string `gorm:"column:trello_api_token;type:varchar(255);" binding:"required"`
TrelloAPIKey *string `gorm:"column:trello_api_key;type:varchar(255);" binding:"required"`
AhaAPIUrl *string `gorm:"column:aha_api_url;type:varchar(255);" binding:"required"`
AhaAPIKey *string `gorm:"column:aha_api_key;type:varchar(255);" binding:"required"`
AirtablePersonalAccessToken *string `gorm:"column:airtable_personal_access_token;type:varchar(255);" binding:"required"`
AmplitudeAPIKey *string `gorm:"column:amplitude_api_key;type:varchar(255);" binding:"required"`
AmplitudeSecretKey *string `gorm:"column:amplitude_secret_key;type:varchar(255);" binding:"required"`
AsanaAccessToken *string `gorm:"column:asana_access_token;type:varchar(255);" binding:"required"`
BatonAPIKey *string `gorm:"column:baton_api_key;type:varchar(255);" binding:"required"`
BabelforceRegionEnvironment *string `gorm:"column:babelforce_region_environment;type:varchar(255);" binding:"required"`
BabelforceAccessKeyId *string `gorm:"column:babelforce_access_key_id;type:varchar(255);" binding:"required"`
BabelforceAccessToken *string `gorm:"column:babelforce_access_token;type:varchar(255);" binding:"required"`
BigQueryServiceAccountKey *string `gorm:"column:bigquery_service_account_key;type:varchar(255);" binding:"required"`
BraintreePublicKey *string `gorm:"column:braintree_public_key;type:varchar(255);" binding:"required"`
BraintreePrivateKey *string `gorm:"column:braintree_private_key;type:varchar(255);" binding:"required"`
BraintreeEnvironment *string `gorm:"column:braintree_environment;type:varchar(255);" binding:"required"`
BraintreeMerchantId *string `gorm:"column:braintree_merchant_id;type:varchar(255);" binding:"required"`
CallRailAccount *string `gorm:"column:callrail_account;type:varchar(255);" binding:"required"`
CallRailApiToken *string `gorm:"column:callrail_api_token;type:varchar(255);" binding:"required"`
ChargebeeApiKey *string `gorm:"column:chargebee_api_key;type:varchar(255);" binding:"required"`
ChargebeeProductCatalog *string `gorm:"column:chargebee_product_catalog;type:varchar(255);" binding:"required"`
ChargifyApiKey *string `gorm:"column:chargify_api_key;type:varchar(255);" binding:"required"`
ChargifyDomain *string `gorm:"column:chargify_domain;type:varchar(255);" binding:"required"`
ClickUpApiKey *string `gorm:"column:clickup_api_key;type:varchar(255);" binding:"required"`
CloseComApiKey *string `gorm:"column:closecom_api_key;type:varchar(255);" binding:"required"`
CodaAuthToken *string `gorm:"column:coda_auth_token;type:varchar(255);" binding:"required"`
CodaDocumentId *string `gorm:"column:coda_document_id;type:varchar(255);" binding:"required"`
ConfluenceApiToken *string `gorm:"column:confluence_api_token;type:varchar(255);" binding:"required"`
ConfluenceDomain *string `gorm:"column:confluence_domain;type:varchar(255);" binding:"required"`
ConfluenceLoginEmail *string `gorm:"column:confluence_login_email;type:varchar(255);" binding:"required"`
CourierApiKey *string `gorm:"column:courier_api_key;type:varchar(255);" binding:"required"`
CustomerIoApiKey *string `gorm:"column:customerio_api_key;type:varchar(255);" binding:"required"`
DatadogApiKey *string `gorm:"column:datadog_api_key;type:varchar(255);" binding:"required"`
DatadogApplicationKey *string `gorm:"column:datadog_application_key;type:varchar(255);" binding:"required"`
DelightedApiKey *string `gorm:"column:delighted_api_key;type:varchar(255);" binding:"required"`
DixaApiToken *string `gorm:"column:dixa_api_token;type:varchar(255);" binding:"required"`
DriftApiToken *string `gorm:"column:drift_api_token;type:varchar(255);" binding:"required"`
EmailOctopusApiKey *string `gorm:"column:emailoctopus_api_key;type:varchar(255);" binding:"required"`
FacebookMarketingAccessToken *string `gorm:"column:facebook_marketing_access_token;type:varchar(255);" binding:"required"`
FastbillApiKey *string `gorm:"column:fastbill_api_key;type:varchar(255);" binding:"required"`
FastbillProjectId *string `gorm:"column:fastbill_project_id;type:varchar(255);" binding:"required"`
FlexportApiKey *string `gorm:"column:flexport_api_key;type:varchar(255);" binding:"required"`
FreshcallerApiKey *string `gorm:"column:freshcaller_api_key;type:varchar(255);" binding:"required"`
FreshdeskApiKey *string `gorm:"column:freshdesk_api_key;type:varchar(255);" binding:"required"`
FreshdeskDomain *string `gorm:"column:freshdesk_domain;type:varchar(255);" binding:"required"`
FreshsalesApiKey *string `gorm:"column:freshsales_api_key;type:varchar(255);" binding:"required"`
FreshsalesDomain *string `gorm:"column:freshsales_domain;type:varchar(255);" binding:"required"`
FreshserviceApiKey *string `gorm:"column:freshservice_api_key;type:varchar(255);" binding:"required"`
FreshserviceDomain *string `gorm:"column:freshservice_domain;type:varchar(255);" binding:"required"`
GenesysRegion *string `gorm:"column:genesys_region;type:varchar(255);" binding:"required"`
GenesysClientId *string `gorm:"column:genesys_client_id;type:varchar(255);" binding:"required"`
GenesysClientSecret *string `gorm:"column:genesys_client_secret;type:varchar(255);" binding:"required"`
GitHubAccessToken *string `gorm:"column:github_access_token;type:varchar(255);" binding:"required"`
GitLabAccessToken *string `gorm:"column:gitlab_access_token;type:varchar(255);" binding:"required"`
GoCardlessAccessToken *string `gorm:"column:gocardless_access_token;type:varchar(255);" binding:"required"`
GoCardlessEnvironment *string `gorm:"column:gocardless_environment;type:varchar(255);" binding:"required"`
GoCardlessVersion *string `gorm:"column:gocardless_version;type:varchar(255);" binding:"required"`
GongApiKey *string `gorm:"column:gong_api_key;type:varchar(255);" binding:"required"`
HarvestAccountId *string `gorm:"column:harvest_account_id;type:varchar(255);" binding:"required"`
HarvestAccessToken *string `gorm:"column:harvest_access_token;type:varchar(255);" binding:"required"`
InsightlyApiToken *string `gorm:"column:insightly_api_token;type:varchar(255);" binding:"required"`
InstagramAccessToken *string `gorm:"column:instagram_access_token;type:varchar(255);" binding:"required"`
InstatusApiKey *string `gorm:"column:instatus_api_key;type:varchar(255);" binding:"required"`
IntercomAccessToken *string `gorm:"column:intercom_access_token;type:varchar(255);" binding:"required"`
KlaviyoApiKey *string `gorm:"column:klaviyo_api_key;type:varchar(255);" binding:"required"`
KustomerApiToken *string `gorm:"column:kustomer_api_token;type:varchar(255);" binding:"required"`
LookerClientId *string `gorm:"column:looker_client_id;type:varchar(255);" binding:"required"`
LookerClientSecret *string `gorm:"column:looker_client_secret;type:varchar(255);" binding:"required"`
LookerDomain *string `gorm:"column:looker_domain;type:varchar(255);" binding:"required"`
MailchimpApiKey *string `gorm:"column:mailchimp_api_key;type:varchar(255);" binding:"required"`
MailjetEmailApiKey *string `gorm:"column:mailjet_email_api_key;type:varchar(255);" binding:"required"`
MailjetEmailApiSecret *string `gorm:"column:mailjet_email_api_secret;type:varchar(255);" binding:"required"`
MarketoClientId *string `gorm:"column:marketo_client_id;type:varchar(255);" binding:"required"`
MarketoClientSecret *string `gorm:"column:marketo_client_secret;type:varchar(255);" binding:"required"`
MarketoDomainUrl *string `gorm:"column:marketo_domain_url;type:varchar(255);" binding:"required"`
MicrosoftTeamsTenantId *string `gorm:"column:microsoft_teams_tenant_id;type:varchar(255);" binding:"required"`
MicrosoftTeamsClientId *string `gorm:"column:microsoft_teams_client_id;type:varchar(255);" binding:"required"`
MicrosoftTeamsClientSecret *string `gorm:"column:microsoft_teams_client_secret;type:varchar(255);" binding:"required"`
MondayApiToken *string `gorm:"column:monday_api_token;type:varchar(255);" binding:"required"`
NotionInternalAccessToken *string `gorm:"column:notion_internal_access_token;type:varchar(255);" binding:"required"`
NotionPublicAccessToken *string `gorm:"column:notion_public_access_token;type:varchar(255);" binding:"required"`
NotionPublicClientId *string `gorm:"column:notion_public_client_id;type:varchar(255);" binding:"required"`
NotionPublicClientSecret *string `gorm:"column:notion_public_client_secret;type:varchar(255);" binding:"required"`
OracleNetsuiteAccountId *string `gorm:"column:oracle_netsuite_account_id;type:varchar(255);" binding:"required"`
OracleNetsuiteConsumerKey *string `gorm:"column:oracle_netsuite_consumer_key;type:varchar(255);" binding:"required"`
OracleNetsuiteConsumerSecret *string `gorm:"column:oracle_netsuite_consumer_secret;type:varchar(255);" binding:"required"`
OracleNetsuiteTokenId *string `gorm:"column:oracle_netsuite_token_id;type:varchar(255);" binding:"required"`
OracleNetsuiteTokenSecret *string `gorm:"column:oracle_netsuite_token_secret;type:varchar(255);" binding:"required"`
OrbApiKey *string `gorm:"column:orb_api_key;type:varchar(255);" binding:"required"`
OrbitApiKey *string `gorm:"column:orbit_api_key;type:varchar(255);" binding:"required"`
PagerDutyApikey *string `gorm:"column:pager_duty_apikey;type:varchar(255);" binding:"required"`
PaypalTransactionClientId *string `gorm:"column:paypal_transaction_client_id;type:varchar(255);" binding:"required"`
PaypalTransactionSecret *string `gorm:"column:paypal_transaction_secret;type:varchar(255);" binding:"required"`
PaystackSecretKey *string `gorm:"column:paystack_secret_key;type:varchar(255);" binding:"required"`
PaystackLookbackWindow *string `gorm:"column:paystack_lookback_window;type:varchar(255);" binding:"required"`
PendoApiToken *string `gorm:"column:pendo_api_token;type:varchar(255);" binding:"required"`
PipedriveApiToken *string `gorm:"column:pipedrive_api_token;type:varchar(255);" binding:"required"`
PlaidAccessToken *string `gorm:"column:plaid_access_token;type:varchar(255);" binding:"required"`
PlausibleApiKey *string `gorm:"column:plausible_api_key;type:varchar(255);" binding:"required"`
PlausibleSiteId *string `gorm:"column:plausible_site_id;type:varchar(255);" binding:"required"`
PostHogApiKey *string `gorm:"column:post_hog_api_key;type:varchar(255);" binding:"required"`
PostHogBaseUrl *string `gorm:"column:post_hog_base_url;type:varchar(255);" binding:"required"`
QualarooApiKey *string `gorm:"column:qualaroo_api_key;type:varchar(255);" binding:"required"`
QualarooApiToken *string `gorm:"column:qualaroo_api_token;type:varchar(255);" binding:"required"`
QuickBooksClientId *string `gorm:"column:quick_books_client_id;type:varchar(255);" binding:"required"`
QuickBooksClientSecret *string `gorm:"column:quick_books_client_secret;type:varchar(255);" binding:"required"`
QuickBooksRealmId *string `gorm:"column:quick_books_realm_id;type:varchar(255);" binding:"required"`
QuickBooksRefreshToken *string `gorm:"column:quick_books_refresh_token;type:varchar(255);" binding:"required"`
RechargeApiToken *string `gorm:"column:recharge_api_token;type:varchar(255);" binding:"required"`
RecruiteeCompanyId *string `gorm:"column:recruitee_company_id;type:varchar(255);" binding:"required"`
RecruiteeApiKey *string `gorm:"column:recruitee_api_key;type:varchar(255);" binding:"required"`
RecurlyApiKey *string `gorm:"column:recurly_api_key;type:varchar(255);" binding:"required"`
RetentlyApiToken *string `gorm:"column:retently_api_token;type:varchar(255);" binding:"required"`
SalesloftApiKey *string `gorm:"column:salesloft_api_key;type:varchar(255);" binding:"required"`
SendgridApiKey *string `gorm:"column:sendgrid_api_key;type:varchar(255);" binding:"required"`
SentryProject *string `gorm:"column:sentry_project;type:varchar(255);" binding:"required"`
SentryHost *string `gorm:"column:sentry_host;type:varchar(255);" binding:"required"`
SentryAuthenticationToken *string `gorm:"column:sentry_authentication_token;type:varchar(255);" binding:"required"`
SentryOrganization *string `gorm:"column:sentry_organization;type:varchar(255);" binding:"required"`
SlackApiToken *string `gorm:"column:slack_api_token;type:varchar(255);" binding:"required"`
SlackChannelFilter *string `gorm:"column:slack_channel_filter;type:varchar(255);" binding:"required"`
SlackLookbackWindow *string `gorm:"column:slack_lookback_window;type:varchar(255);" binding:"required"`
StripeAccountId *string `gorm:"column:stripe_account_id;type:varchar(255);" binding:"required"`
StripeSecretKey *string `gorm:"column:stripe_secret_key;type:varchar(255);" binding:"required"`
SurveySparrowAccessToken *string `gorm:"column:survey_sparrow_access_token;type:varchar(255);" binding:"required"`
SurveyMonkeyAccessToken *string `gorm:"column:survey_monkey_access_token;type:varchar(255);" binding:"required"`
TalkdeskApiKey *string `gorm:"column:talkdesk_api_key;type:varchar(255);" binding:"required"`
TikTokAccessToken *string `gorm:"column:tik_tok_access_token;type:varchar(255);" binding:"required"`
TodoistApiToken *string `gorm:"column:todoist_api_token;type:varchar(255);" binding:"required"`
TypeformApiToken *string `gorm:"column:typeform_api_token;type:varchar(255);" binding:"required"`
VittallyApiKey *string `gorm:"column:vittally_api_key;type:varchar(255);" binding:"required"`
WrikeAccessToken *string `gorm:"column:wrike_access_token;type:varchar(255);" binding:"required"`
WrikeHostUrl *string `gorm:"column:wrike_host_url;type:varchar(255);" binding:"required"`
XeroClientId *string `gorm:"column:xero_client_id;type:varchar(255);" binding:"required"`
XeroClientSecret *string `gorm:"column:xero_client_secret;type:varchar(255);" binding:"required"`
XeroTenantId *string `gorm:"column:xero_tenant_id;type:varchar(255);" binding:"required"`
XeroScopes *string `gorm:"column:xero_scopes;type:varchar(255);" binding:"required"`
ZendeskAPIKey *string `gorm:"column:zendesk_api_key;type:varchar(255);" binding:"required"`
ZendeskSubdomain *string `gorm:"column:zendesk_subdomain;type:varchar(255);" binding:"required"`
ZendeskAdminEmail *string `gorm:"column:zendesk_admin_email;type:varchar(255);" binding:"required"`
ZendeskChatSubdomain *string `gorm:"column:zendesk_chat_subdomain;type:varchar(255);" binding:"required"`
ZendeskChatAccessKey *string `gorm:"column:zendesk_chat_access_key;type:varchar(255);" binding:"required"`
ZendeskTalkSubdomain *string `gorm:"column:zendesk_talk_subdomain;type:varchar(255);" binding:"required"`
ZendeskTalkAccessKey *string `gorm:"column:zendesk_talk_access_key;type:varchar(255);" binding:"required"`
ZendeskSellApiToken *string `gorm:"column:zendesk_sell_api_token;type:varchar(255);" binding:"required"`
ZendeskSunshineSubdomain *string `gorm:"column:zendesk_sunshine_subdomain;type:varchar(255);" binding:"required"`
ZendeskSunshineApiToken *string `gorm:"column:zendesk_sunshine_api_token;type:varchar(255);" binding:"required"`
ZendeskSunshineEmail *string `gorm:"column:zendesk_sunshine_email;type:varchar(255);" binding:"required"`
ZenefitsToken *string `gorm:"column:zenefits_token;type:varchar(255);" binding:"required"`
MixpanelUsername *string `gorm:"column:mixpanel_username;type:varchar(255);" binding:"required"`
MixpanelSecret *string `gorm:"column:mixpanel_secret;type:varchar(255);" binding:"required"`
MixpanelProjectId *string `gorm:"column:mixpanel_project_id;type:varchar(255);" binding:"required"`
MixpanelProjectSecret *string `gorm:"column:mixpanel_project_secret;type:varchar(255);" binding:"required"`
MixpanelProjectTimezone *string `gorm:"column:mixpanel_project_timezone;type:varchar(255);" binding:"required"`
MixpanelRegion *string `gorm:"column:mixpanel_region;type:varchar(255);" binding:"required"`
LinkedInCredential *string `gorm:"column:linkedin_credential;type:varchar(255)" binding:"required" json:"linkedInCredential"`
LinkedInCredentialIV *string `gorm:"column:linkedin_credential_iv;type:varchar(32)"`
LinkedInPassword *string `gorm:"column:linkedin_password;type:varchar(255)" binding:"required" json:"linkedInPassword"`
LinkedInPasswordIV *string `gorm:"column:linkedin_password_iv;type:varchar(32)"`
}
func (TenantSettings) TableName ¶
func (TenantSettings) TableName() string
type TenantSettingsEmailExclusion ¶
type TenantSettingsEmailExclusion struct {
ID uuid.UUID `gorm:"type:uuid;default:gen_random_uuid();primaryKey"`
Tenant string `gorm:"size:255;not null;"`
ExcludeSubject *string `gorm:"size:255;"`
ExcludeBody *string `gorm:"size:255;"`
}
func (TenantSettingsEmailExclusion) TableName ¶
func (TenantSettingsEmailExclusion) TableName() string
type TenantSettingsOpportunityStage ¶
type TenantSettingsOpportunityStage struct {
ID string `gorm:"primary_key;type:uuid;default:gen_random_uuid()" json:"id"`
Tenant string `gorm:"column:tenant;type:varchar(255);NOT NULL" json:"tenant"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp" json:"updatedAt"`
Visible bool `gorm:"column:visible;value:boolean;NOT NULL" json:"visible"`
Value string `gorm:"column:val;value:varchar(255);NOT NULL" json:"value"`
Order int `gorm:"column:idx;type:int;NOT NULL" json:"order"`
Label string `gorm:"column:label;type:varchar(255);NOT NULL" json:"label"`
LikelihoodRate int64 `gorm:"column:likelihood_rate;type:int;NOT NULL;DEFAULT:0" json:"likelihoodRate"`
}
func (TenantSettingsOpportunityStage) TableName ¶
func (TenantSettingsOpportunityStage) TableName() string
type TenantWebhook ¶
type TenantWebhook struct {
// tenant, event, webhook, api key
ID uint64 `gorm:"primary_key;autoIncrement:true" json:"id"`
TenantName string `gorm:"column:tenant_name;type:varchar(255);NOT NULL" json:"tenantName" binding:"required"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp" json:"updatedAt"`
WebhookUrl string `gorm:"column:webhook_url;type:varchar(255);NOT NULL" json:"webhook" binding:"required"`
ApiKey string `gorm:"column:api_key;type:varchar(255);NOT NULL" json:"apiKey" binding:"required"`
Event string `gorm:"column:event;type:varchar(255);NOT NULL" json:"event" binding:"required"`
AuthHeaderName string `gorm:"column:auth_header_name;type:varchar(255)" json:"authHeaderName"`
AuthHeaderValue string `gorm:"column:auth_header_value;type:varchar(255)" json:"authHeaderValue"`
// data for notifying user if webhook fails
UserId string `gorm:"column:user_id;type:varchar(255)" json:"userId"`
UserFirstName string `gorm:"column:user_first_name;type:varchar(255)" json:"userFirstName"`
UserLastName string `gorm:"column:user_last_name;type:varchar(255)" json:"userLastName"`
UserEmail string `gorm:"column:user_email;type:varchar(255)" json:"userEmail"`
}
func (TenantWebhook) TableName ¶
func (TenantWebhook) TableName() string
func (TenantWebhook) UniqueIndex ¶
func (TenantWebhook) UniqueIndex() [][]string
type TenantWebhookApiKey ¶
type TenantWebhookApiKey struct {
ID uint64 `gorm:"primary_key;autoIncrement:true" json:"id"`
Tenant string `gorm:"column:tenant_name;type:varchar(255);NOT NULL" json:"tenantName" binding:"required"`
Key string `gorm:"column:key;type:varchar(255);NOT NULL;index:tenant_webhook_api_keys_uk,unique" json:"key" binding:"required"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp" json:"createdAt"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp" json:"updatedAt"`
Enabled bool `gorm:"column:enabled;type:boolean;DEFAULT:true" json:"enabled"`
}
func (TenantWebhookApiKey) TableName ¶
func (TenantWebhookApiKey) TableName() string
type TrueInboxResponseBody ¶
type TrueInboxResponseBody struct {
Email string `json:"email"`
Status string `json:"status"`
Result string `json:"result"`
ConfidenceScore int `json:"confidenceScore"`
SmtpProvider string `json:"smtpProvider"`
MailDisposable bool `json:"mailDisposable"`
MailAcceptAll bool `json:"mailAcceptAll"`
Free bool `json:"free"`
TotalCredits int `json:"total_credits"`
CreditsUsed int `json:"credits_used"`
CreditsRemaining int `json:"credits_remaining"`
}
type UserCalendarAvailability ¶
type UserCalendarAvailability struct {
ID string `gorm:"type:varchar(21);primaryKey"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp"`
UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;DEFAULT:current_timestamp"`
Tenant string `gorm:"size:255;not null;uniqueIndex:idx_tenant_email"`
Email string `gorm:"size:255;not null;uniqueIndex:idx_tenant_email"`
Timezone string `gorm:"size:50;not null"` // e.g., "America/New_York"
// One field for each day of the week
Monday DayAvailability `gorm:"type:jsonb"`
Tuesday DayAvailability `gorm:"type:jsonb"`
Wednesday DayAvailability `gorm:"type:jsonb"`
Thursday DayAvailability `gorm:"type:jsonb"`
Friday DayAvailability `gorm:"type:jsonb"`
Saturday DayAvailability `gorm:"type:jsonb"`
Sunday DayAvailability `gorm:"type:jsonb"`
}
UserCalendarAvailability represents a user's available hours for calendar bookings
func (*UserCalendarAvailability) BeforeCreate ¶
func (u *UserCalendarAvailability) BeforeCreate(tx *gorm.DB) error
BeforeCreate hook to ensure ID has the correct prefix and validate
func (*UserCalendarAvailability) BeforeUpdate ¶
func (u *UserCalendarAvailability) BeforeUpdate(tx *gorm.DB) error
BeforeUpdate hook to update the UpdatedAt timestamp and validate
func (UserCalendarAvailability) TableName ¶
func (UserCalendarAvailability) TableName() string
func (*UserCalendarAvailability) Validate ¶
func (u *UserCalendarAvailability) Validate() error
Validate performs validation on the UserCalendarAvailability entity
type UserWorkingSchedule ¶
type UserWorkingSchedule struct {
ID uuid.UUID `gorm:"type:uuid;default:gen_random_uuid();primaryKey"`
CreatedAt time.Time `gorm:"column:created_at;type:timestamp;DEFAULT:current_timestamp"`
Tenant string `gorm:"size:255;not null;"`
UserId string `gorm:"type:varchar(255);not null"`
DayRange string `gorm:"type:varchar(7);not null"` // E.g., "Mon-Fri" or "Thu-Fri"
StartHour string `gorm:"type:varchar(5);not null"` // E.g., 09:00
EndHour string `gorm:"type:varchar(5);not null"` // E.g., 18:00
}
func (UserWorkingSchedule) TableName ¶
func (UserWorkingSchedule) TableName() string
type WebSession ¶
type WebSession struct {
ID string `gorm:"primary_key;type:uuid;default:gen_random_uuid()" json:"id"`
Tenant string `gorm:"column:tenant;type:varchar(255);index:idx_tenant" json:"tenant"`
IP string `gorm:"column:ip;type:varchar(255);index:idx_ip" json:"ip"`
VisitorID string `gorm:"column:visitor_id;type:varchar(255);index:idx_visitor_id" json:"visitorId"`
Hostname string `gorm:"column:hostname;type:varchar(255);" json:"hostname"`
Domain *string `gorm:"column:domain;type:varchar(255);index:idx_domain" json:"domain"`
OrganizationId *string `gorm:"column:organization_id;varchar(255);index:idx_organization_id" json:"organizationId"`
Email *string `gorm:"column:email;varchar(255);index:idx_email" json:"email"`
EmailType *enum.EmailType `gorm:"column:email_type;varchar(255)" json:"emailType"`
Referrer *string `gorm:"column:referrer;type:text;" json:"referrer"`
QueryParams *string `gorm:"column:query_params;type:text;" json:"queryParams"`
UniquePageViews pq.StringArray `gorm:"column:unique_page_views;type:text[];" json:"uniquePageViews"`
StartTime time.Time `gorm:"column:start_time;type:timestamp;" json:"startTime"`
LastEventType string `gorm:"column:last_event_type;type:varchar(255);" json:"lastEventType"`
LastActivity time.Time `gorm:"column:last_activity;type:timestamp;" json:"lastActivity"`
EndTime *time.Time `gorm:"column:end_time;type:timestamp;" json:"endTime"`
IsActive bool `gorm:"column:is_active;type:boolean;default:true" json:"isActive"`
DetectedExit bool `gorm:"column:detected_exit;type:boolean;default:false" json:"detectedExit"`
PublishedEvent bool `gorm:"column:published_event;type:boolean;default:false" json:"publishedEvent"`
SentSlackNotification *time.Time `gorm:"column:sent_slack_notification;type:timestamp;" json:"sentSlackNotification"`
CreatedAt time.Time `gorm:"default:CURRENT_TIMESTAMP" json:"createdAt"`
UpdatedAt *time.Time `gorm:"column:updated_at;autoUpdateTime" json:"updatedAt"`
}
func (WebSession) TableName ¶
func (WebSession) TableName() string
type WebSessionPageVisit ¶
type WebSessionPageVisit struct {
ID string `gorm:"primary_key;type:uuid;default:gen_random_uuid()" json:"id"`
SessionID string `gorm:"column:session_id;type:uuid;" json:"sessionId"`
Url string `gorm:"column:url;type:varchar(255);" json:"url"`
Referer string `gorm:"column:referer;type:varchar(1000);" json:"referer"`
EntryTimestamp time.Time `gorm:"column:entry_timestamp;type:timestamp;" json:"entryTimestamp"`
ExitTimestamp time.Time `gorm:"column:exit_timestamp;type:timestamp;" json:"exitTimestamp"`
Hostname string `gorm:"column:hostname;type:varchar(255);" json:"hostname"`
Pathname string `gorm:"column:pathname;type:varchar(255);" json:"pathname"`
}
func (WebSessionPageVisit) TableName ¶
func (WebSessionPageVisit) TableName() string
type WebTrackerEvents ¶
type WebTrackerEvents struct {
ID string `gorm:"primary_key;type:uuid;default:gen_random_uuid()" json:"id"`
Tenant string `gorm:"column:tenant;type:varchar(255);" json:"tenant"`
SessionID string `gorm:"column:session_id;type:uuid;" json:"sessionId"`
VisitorID string `gorm:"column:visitor_id;type:varchar(255);NOT NULL;" json:"visitorId"`
IP string `gorm:"column:ip;type:varchar(255);" json:"ip" `
EventType string `gorm:"column:event_type;type:varchar(255);" json:"eventType"`
EventData string `gorm:"column:event_data;type:text;" json:"eventData"`
Timestamp time.Time `gorm:"column:timestamp;type:timestamp;" json:"timestamp"`
Href string `gorm:"column:href;type:varchar(1000);" json:"href"`
Origin string `gorm:"column:origin;type:varchar(255);" json:"origin"`
Search string `gorm:"column:search;type:varchar(1000);" json:"search"`
Hostname string `gorm:"column:hostname;type:varchar(255);" json:"hostname"`
Pathname string `gorm:"column:pathname;type:varchar(255);" json:"pathname"`
Referrer string `gorm:"column:referrer;type:varchar(2000);" json:"referrer"`
UserAgent string `gorm:"column:user_agent;type:text;" json:"userAgent"`
Language string `gorm:"column:language;type:varchar(255);" json:"language"`
CookiesEnabled bool `gorm:"column:cookies_enabled;type:boolean;" json:"cookiesEnabled"`
ScreenResolution string `gorm:"column:screen_resolution;type:varchar(255);" json:"screenResolution"`
CreatedAt time.Time `gorm:"default:CURRENT_TIMESTAMP"`
}
func (WebTrackerEvents) Referer ¶
func (e WebTrackerEvents) Referer() string
func (WebTrackerEvents) TableName ¶
func (WebTrackerEvents) TableName() string
func (WebTrackerEvents) VisitorEmail ¶
func (e WebTrackerEvents) VisitorEmail() (string, error)
type Webhooks ¶
type Webhooks struct {
ID uint64 `gorm:"primaryKey;autoIncrement" json:"id"`
Tenant string `gorm:"column:tenant;type:varchar(255);not null;index" json:"tenant" binding:"required"`
CreatedAt time.Time `gorm:"column:created_at;autoCreateTime" json:"createdAt"`
UpdatedAt *time.Time `gorm:"column:updated_at;autoUpdateTime" json:"updatedAt"`
WebhookPath string `gorm:"column:webhook_path;type:varchar(255);not null" json:"webhookPath" binding:"required"`
Integration string `gorm:"column:integration;type:varchar(255);index" json:"integration"`
RotationCount int `gorm:"column:rotation_count;type:integer" json:"rotationCount"`
Secret string `gorm:"column:secret;type:varchar(255);not null" json:"secret" binding:"required"`
Enabled bool `gorm:"column:enabled;type:boolean;default:true" json:"enabled"`
}
func (Webhooks) UniqueIndex ¶
Source Files
¶
- agent_execution.go
- agent_registry.go
- agents.go
- ai_location_mapping.go
- api_billable_event.go
- api_log.go
- base_entity.go
- browser_automation_run.go
- browser_automation_run_result.go
- browser_config.go
- cache_crust_data.go
- cache_email_enrow.go
- cache_email_scrubby.go
- cache_email_trueinbox.go
- cache_email_validation.go
- cache_email_validation_domain.go
- cache_ip_data.go
- cache_ip_hunter.go
- cache_ip_identify.go
- cos_api_enrich_person_temp_result.go
- currency_rates.go
- customer_os_ids.go
- domain_primary_exception.go
- email_message.go
- email_tracking.go
- email_validation_record.go
- email_validation_request_bulk.go
- enrich_details_better_contact.go
- enrich_details_brandfetch.go
- enrich_details_prefilter_tracking.go
- enrich_details_scrapin.go
- enrich_details_tracking.go
- external_app_keys.go
- flow_edge.go
- flow_execution.go
- flow_node.go
- flow_transitions_registry.go
- flows.go
- global_contact.go
- global_organization.go
- global_organization_website_to_process.go
- ingest_email_import_state.go
- ingest_email_message.go
- invoice_numbers.go
- json_map.go
- magic_link.go
- mail_lookup.go
- mailstack_buy_request.go
- meeting_booked_event.go
- meeting_booking_event.go
- nylas_grant.go
- oauth_token.go
- organization_website_hosting_platform.go
- outbox_event.go
- personal_email_provider.go
- personal_integrations.go
- postmark_api_keys.go
- quickbooks_settings.go
- scraped_webpage.go
- sku.go
- slack_channel.go
- slack_channel_notification.go
- slack_settings.go
- stats_api_calls.go
- table_view_definition.go
- tenant.go
- tenant_settings.go
- tenant_settings_email_exclusion.go
- tenant_settings_opportunity_stage.go
- tenant_webhook.go
- tenant_webhook_api_key.go
- user_calendar_availability.go
- user_working_schedule.go
- web_session.go
- web_session_page_visits.go
- web_tracker_events.go
- webhooks.go