service

package
v0.0.0-...-4518f94 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2024 License: Apache-2.0 Imports: 59 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SortContractName               = "CONTRACT_NAME"
	SearchSortContractBillingCycle = "CONTRACT_BILLING_CYCLE"
	SearchSortContractEnded        = "CONTRACT_ENDED"
	SearchInvoiceDryRunDeprecated  = "DRY_RUN"
	SearchInvoicePreview           = "INVOICE_PREVIEW"
	SearchInvoiceDryRun            = "INVOICE_DRY_RUN"
	SearchSortInvoiceStatus        = "INVOICE_STATUS"
	SearchInvoiceNumberDeprecated  = "NUMBER"
	SearchInvoiceNumber            = "INVOICE_NUMBER"
	SearchInvoiceIssueDate         = "INVOICE_ISSUED_DATE"
)

Variables

This section is empty.

Functions

func ComputeNumbersDisplay

func ComputeNumbersDisplay(previousMonthCount, currentMonthCount float64) string

func ComputePercentagesDisplay

func ComputePercentagesDisplay(previous, current float64) float64

func PrintFloatValue

func PrintFloatValue(number float64, withSign bool) string

func WaitForNodeCreatedInNeo4j

func WaitForNodeCreatedInNeo4j(ctx context.Context, repositories *repository.Repositories, id, nodeLabel string, span opentracing.Span)

func WaitForNodeDeletedFromNeo4j

func WaitForNodeDeletedFromNeo4j(ctx context.Context, repositories *repository.Repositories, id, nodeLabel string, span opentracing.Span)

Types

type ActionItemService

type ActionItemService interface {
	GetActionItemsForNodes(ctx context.Context, linkedWith repository.LinkedWith, ids []string) (*entity.ActionItemEntities, error)

	MapDbNodeToActionItemEntity(node dbtype.Node) *entity.ActionItemEntity
}

func NewActionItemService

func NewActionItemService(log logger.Logger, repositories *repository.Repositories) ActionItemService

type ActionService

type ActionService interface {
	// contains filtered or unexported methods
}

func NewActionService

func NewActionService(log logger.Logger, repository *repository.Repositories) ActionService

type AnalysisCreateData

type AnalysisCreateData struct {
	AnalysisEntity *entity.AnalysisEntity
	Describes      []AnalysisDescriptionData
	Source         neo4jentity.DataSource
	SourceOfTruth  neo4jentity.DataSource
}

type AnalysisDescriptionData

type AnalysisDescriptionData struct {
	InteractionEventId   *string
	InteractionSessionId *string
	MeetingId            *string
}

func MapAnalysisDescriptionInputToDescriptionData

func MapAnalysisDescriptionInputToDescriptionData(input []*model.AnalysisDescriptionInput) []AnalysisDescriptionData

type AnalysisService

type AnalysisService interface {
	GetAnalysisById(ctx context.Context, id string) (*entity.AnalysisEntity, error)
	GetDescribesForAnalysis(ctx context.Context, ids []string) (*entity.AnalysisDescribes, error)
	GetDescribedByForXX(ctx context.Context, ids []string, linkedWith repository.LinkedWith) (*entity.AnalysisEntities, error)

	Create(ctx context.Context, newAnalysis *AnalysisCreateData) (*entity.AnalysisEntity, error)
	// contains filtered or unexported methods
}

func NewAnalysisService

func NewAnalysisService(log logger.Logger, repositories *repository.Repositories, services *Services) AnalysisService

type AttachmentService

type AttachmentService interface {
	GetAttachmentById(ctx context.Context, id string) (*entity.AttachmentEntity, error)

	Create(ctx context.Context, newAnalysis *entity.AttachmentEntity, source, sourceOfTruth neo4jentity.DataSource) (*entity.AttachmentEntity, error)
	GetAttachmentsForNode(ctx context.Context, linkedWith repository.LinkedWith, linkedNature *repository.LinkedNature, ids []string) (*entity.AttachmentEntities, error)

	LinkNodeWithAttachment(ctx context.Context, linkedWith repository.LinkedWith, linkedNature *repository.LinkedNature, attachmentId, includedById string) (*dbtype.Node, error)
	UnlinkNodeWithAttachment(ctx context.Context, linkedWith repository.LinkedWith, linkedNature *repository.LinkedNature, attachmentId, includedById string) (*dbtype.Node, error)

	MapDbNodeToAttachmentEntity(node dbtype.Node) *entity.AttachmentEntity
}

func NewAttachmentService

func NewAttachmentService(log logger.Logger, repositories *repository.Repositories) AttachmentService

type BankAccountService

type BankAccountService interface {
	CreateTenantBankAccount(ctx context.Context, input *model.BankAccountCreateInput) (string, error)
	UpdateTenantBankAccount(ctx context.Context, input *model.BankAccountUpdateInput) error
	GetTenantBankAccounts(ctx context.Context) (*neo4jentity.BankAccountEntities, error)
	GetTenantBankAccount(ctx context.Context, id string) (*neo4jentity.BankAccountEntity, error)
	DeleteTenantBankAccount(ctx context.Context, id string) (bool, error)
}

func NewBankAccountService

func NewBankAccountService(log logger.Logger, repository *repository.Repositories, grpcClients *grpc_client.Clients) BankAccountService

type BillableService

type BillableService interface {
	GetBillableDetails(ctx context.Context) (*model.TenantBillableInfo, error)
}

func NewBillableService

func NewBillableService(log logger.Logger, repositories *repository.Repositories) BillableService

type BillingProfileService

type BillingProfileService interface {
	CreateBillingProfile(ctx context.Context, organizationId, legalName, taxId string, createdAt *time.Time) (string, error)
	UpdateBillingProfile(ctx context.Context, organizationId, billingProfileId string, legalName, taxId *string, updatedAt *time.Time) error
	LinkEmailToBillingProfile(ctx context.Context, organizationId, billingProfileId, emailId string, primary bool) error
	UnlinkEmailFromBillingProfile(ctx context.Context, organizationId, billingProfileId, emailId string) error
	LinkLocationToBillingProfile(ctx context.Context, organizationId, billingProfileId, locationId string) error
	UnlinkLocationFromBillingProfile(ctx context.Context, organizationId, billingProfileId, locationId string) error
}

func NewBillingProfileService

func NewBillingProfileService(log logger.Logger, repositories *repository.Repositories, grpcClients *grpc_client.Clients) BillingProfileService

type CacheService

type CacheService interface {
	InitCache()
	GetStates() []*model.GCliItem
}

func NewCacheService

func NewCacheService(services *Services) CacheService

type CalendarService

type CalendarService interface {
	GetAllForUsers(ctx context.Context, userIds []string) (*entity.CalendarEntities, error)
}

func NewCalendarService

func NewCalendarService(log logger.Logger, repositories *repository.Repositories, services *Services) CalendarService

type CommentService

type CommentService interface {
	GetCommentsForIssues(ctx context.Context, issueIds []string) (*entity.CommentEntities, error)
}

func NewCommentService

func NewCommentService(log logger.Logger, repositories *repository.Repositories) CommentService

type ContactCreateData

type ContactCreateData struct {
	ContactEntity     *entity.ContactEntity
	EmailEntity       *entity.EmailEntity
	PhoneNumberEntity *entity.PhoneNumberEntity
	ExternalReference *neo4jentity.ExternalSystemEntity
	Source            neo4jentity.DataSource
	AppSource         string
}

type ContactService

type ContactService interface {
	Create(ctx context.Context, contact *ContactCreateData) (string, error)
	Update(ctx context.Context, input model.ContactUpdateInput) (string, error)
	GetById(ctx context.Context, id string) (*entity.ContactEntity, error)
	GetFirstContactByEmail(ctx context.Context, email string) (*entity.ContactEntity, error)
	GetFirstContactByPhoneNumber(ctx context.Context, phoneNumber string) (*entity.ContactEntity, error)
	FindAll(ctx context.Context, page, limit int, filter *model.Filter, sortBy []*model.SortBy) (*utils.Pagination, error)
	PermanentDelete(ctx context.Context, id string) (bool, error)
	Archive(ctx context.Context, contactId string) (bool, error)
	RestoreFromArchive(ctx context.Context, contactId string) (bool, error)
	GetContactsForJobRoles(ctx context.Context, jobRoleIds []string) (*entity.ContactEntities, error)
	GetContactsForOrganization(ctx context.Context, organizationId string, page, limit int, filter *model.Filter, sortBy []*model.SortBy) (*utils.Pagination, error)
	Merge(ctx context.Context, primaryContactId, mergedContactId string) error
	GetContactsForEmails(ctx context.Context, emailIds []string) (*entity.ContactEntities, error)
	GetContactsForPhoneNumbers(ctx context.Context, phoneNumberIds []string) (*entity.ContactEntities, error)
	AddTag(ctx context.Context, contactId, tagId string) (*entity.ContactEntity, error)
	RemoveTag(ctx context.Context, contactId, tagId string) (*entity.ContactEntity, error)
	AddOrganization(ctx context.Context, contactId, organizationId, source, appSource string) (*entity.ContactEntity, error)
	RemoveOrganization(ctx context.Context, contactId, organizationId string) (*entity.ContactEntity, error)
	RemoveLocation(ctx context.Context, contactId string, locationId string) error
	CustomerContactCreate(ctx context.Context, entity *CustomerContactCreateData) (*model.CustomerContact, error)
	// contains filtered or unexported methods
}

func NewContactService

func NewContactService(log logger.Logger, repositories *repository.Repositories, grpcClients *grpc_client.Clients, services *Services) ContactService

type ContractCreateData

type ContractCreateData struct {
	Input             model.ContractInput
	ExternalReference *neo4jentity.ExternalSystemEntity
	Source            neo4jentity.DataSource
	AppSource         string
}

type ContractService

type ContractService interface {
	Create(ctx context.Context, contractDetails *ContractCreateData) (string, error)
	Update(ctx context.Context, input model.ContractUpdateInput) error
	SoftDeleteContract(ctx context.Context, contractId string) (bool, error)
	GetById(ctx context.Context, id string) (*neo4jentity.ContractEntity, error)
	GetContractsForOrganizations(ctx context.Context, organizationIds []string) (*neo4jentity.ContractEntities, error)
	GetContractsForInvoices(ctx context.Context, invoiceIds []string) (*neo4jentity.ContractEntities, error)
	GetContractByServiceLineItem(ctx context.Context, serviceLineItemId string) (*neo4jentity.ContractEntity, error)
	ContractsExistForTenant(ctx context.Context) (bool, error)
	CountContracts(ctx context.Context, tenant string) (int64, error)
	RenewContract(ctx context.Context, contractId string, renewalDate *time.Time) error
}

func NewContractService

func NewContractService(log logger.Logger, repositories *repository.Repositories, grpcClients *grpc_client.Clients, services *Services) ContractService

type CountryService

type CountryService interface {
	GetCountriesForPhoneNumbers(ctx context.Context, ids []string) (*entity.CountryEntities, error)
}

func NewCountryService

func NewCountryService(log logger.Logger, repository *repository.Repositories) CountryService

type CustomFieldService

type CustomFieldService interface {
	FindAllForFieldSet(ctx context.Context, obj *model.FieldSet) (*entity.CustomFieldEntities, error)

	MergeAndUpdateCustomFieldsForContact(ctx context.Context, contactId string, customFields *entity.CustomFieldEntities, fieldSets *entity.FieldSetEntities) error

	MergeCustomFieldToContact(ctx context.Context, contactId string, entity *entity.CustomFieldEntity) (*entity.CustomFieldEntity, error)
	MergeCustomFieldToFieldSet(ctx context.Context, contactId string, fieldSetId string, entity *entity.CustomFieldEntity) (*entity.CustomFieldEntity, error)

	UpdateCustomFieldForContact(ctx context.Context, contactId string, entity *entity.CustomFieldEntity) (*entity.CustomFieldEntity, error)
	UpdateCustomFieldForFieldSet(ctx context.Context, contactId string, fieldSetId string, entity *entity.CustomFieldEntity) (*entity.CustomFieldEntity, error)

	DeleteByNameFromContact(ctx context.Context, contactId, fieldName string) (bool, error)
	DeleteByIdFromContact(ctx context.Context, contactId, fieldId string) (bool, error)
	DeleteByIdFromFieldSet(ctx context.Context, contactId, fieldSetId, fieldId string) (bool, error)

	GetCustomFields(ctx context.Context, obj *model.CustomFieldEntityType) (*entity.CustomFieldEntities, error)
}

func NewCustomFieldService

func NewCustomFieldService(log logger.Logger, repository *repository.Repositories) CustomFieldService

type CustomFieldTemplateService

type CustomFieldTemplateService interface {
	Merge(ctx context.Context, inputEntity *entity.CustomFieldTemplateEntity) (*entity.CustomFieldTemplateEntity, error)
	GetById(ctx context.Context, id string) (*entity.CustomFieldTemplateEntity, error)
	FindAllForEntityTemplate(ctx context.Context, entityTemplateId string) (*entity.CustomFieldTemplateEntities, error)
	FindAllForFieldSetTemplate(ctx context.Context, fieldSetTemplateId string) (*entity.CustomFieldTemplateEntities, error)
	FindLinkedWithCustomField(ctx context.Context, customFieldId string) (*entity.CustomFieldTemplateEntity, error)
}

func NewCustomFieldTemplateService

func NewCustomFieldTemplateService(log logger.Logger, repositories *repository.Repositories) CustomFieldTemplateService

type CustomerAddJobRoleData

type CustomerAddJobRoleData struct {
	UserId        string
	JobRoleEntity *entity.JobRoleEntity
}

type CustomerContactCreateData

type CustomerContactCreateData struct {
	ContactEntity *entity.ContactEntity
	EmailEntity   *entity.EmailEntity
}

type DashboardService

type DashboardService interface {
	GetDashboardViewOrganizationsData(ctx context.Context, requestDetails DashboardViewOrganizationsRequest) (*utils.Pagination, error)
	GetDashboardViewRenewalsData(ctx context.Context, requestDetails DashboardViewRenewalsRequest) (*utils.Pagination, error)

	GetDashboardCustomerMapData(ctx context.Context) ([]*entityDashboard.DashboardCustomerMapData, error)
	GetDashboardMRRPerCustomerData(ctx context.Context, start, end time.Time) (*entityDashboard.DashboardDashboardMRRPerCustomerData, error)
	GetDashboardGrossRevenueRetentionData(ctx context.Context, start, end time.Time) (*entityDashboard.DashboardGrossRevenueRetentionData, error)
	GetDashboardARRBreakdownData(ctx context.Context, start, end time.Time) (*entityDashboard.DashboardARRBreakdownData, error)
	GetDashboardRevenueAtRiskData(ctx context.Context, start, end time.Time) (*entityDashboard.DashboardRevenueAtRiskData, error)
	GetDashboardRetentionRateData(ctx context.Context, start, end time.Time) (*entityDashboard.DashboardRetentionRateData, error)
	GetDashboardNewCustomersData(ctx context.Context, start, end time.Time) (*entityDashboard.DashboardNewCustomersData, error)
	GetDashboardAverageTimeToOnboardPerMonth(ctx context.Context, start, end time.Time) (*model.DashboardTimeToOnboard, error)
	GetDashboardOnboardingCompletionPerMonth(ctx context.Context, start, end time.Time) (*model.DashboardOnboardingCompletion, error)
}

func NewDashboardService

func NewDashboardService(log logger.Logger, repositories *repository.Repositories, services *Services) DashboardService

type DashboardViewOrganizationsRequest

type DashboardViewOrganizationsRequest struct {
	Where *model.Filter
	Sort  *model.SortBy
	Page  int
	Limit int
}

type DashboardViewRenewalsRequest

type DashboardViewRenewalsRequest struct {
	Where *model.Filter
	Sort  *model.SortBy
	Page  int
	Limit int
}

type DomainService

type DomainService interface {
	GetDomainsForOrganizations(ctx context.Context, organizationIds []string) (*entity.DomainEntities, error)
}

func NewDomainService

func NewDomainService(log logger.Logger, repository *repository.Repositories) DomainService

type EmailService

type EmailService interface {
	CreateEmailAddressByEvents(ctx context.Context, email, appSource string) (string, error)
	GetAllFor(ctx context.Context, entityType entity.EntityType, entityId string) (*entity.EmailEntities, error)
	GetAllForEntityTypeByIds(ctx context.Context, entityType entity.EntityType, entityIds []string) (*entity.EmailEntities, error)
	MergeEmailTo(ctx context.Context, entityType entity.EntityType, entityId string, entity *entity.EmailEntity) (*entity.EmailEntity, error)
	UpdateEmailFor(ctx context.Context, entityType entity.EntityType, entityId string, entity *entity.EmailEntity) (*entity.EmailEntity, error)
	DetachFromEntity(ctx context.Context, entityType entity.EntityType, entityId, email string) (bool, error)
	DetachFromEntityById(ctx context.Context, entityType entity.EntityType, entityId, emailId string) (bool, error)
	DeleteById(ctx context.Context, emailId string) (bool, error)
	GetById(ctx context.Context, emailId string) (*entity.EmailEntity, error)
	GetByEmailAddress(ctx context.Context, email string) (*entity.EmailEntity, error)
	// contains filtered or unexported methods
}

func NewEmailService

func NewEmailService(log logger.Logger, repositories *repository.Repositories, services *Services, grpcClients *grpc_client.Clients) EmailService

type EntityTemplateService

type EntityTemplateService interface {
	Create(ctx context.Context, entity *entity.EntityTemplateEntity) (*entity.EntityTemplateEntity, error)
	FindAll(ctx context.Context, extends *string) (*entity.EntityTemplateEntities, error)
	FindLinked(ctx context.Context, obj *model.CustomFieldEntityType) (*entity.EntityTemplateEntity, error)
}

func NewEntityTemplateService

func NewEntityTemplateService(log logger.Logger, repository *repository.Repositories) EntityTemplateService

type ExternalSystemService

type ExternalSystemService interface {
	GetExternalSystemsForEntities(ctx context.Context, ids []string, entityType entity.EntityType) (*neo4jentity.ExternalSystemEntities, error)
	GetAllExternalSystemInstances(ctx context.Context) (*neo4jentity.ExternalSystemEntities, error)
}

func NewExternalSystemService

func NewExternalSystemService(log logger.Logger, repositories *repository.Repositories) ExternalSystemService

type FieldSetService

type FieldSetService interface {
	FindAll(ctx context.Context, obj *model.CustomFieldEntityType) (*entity.FieldSetEntities, error)
	MergeFieldSetToContact(ctx context.Context, contactId string, input *entity.FieldSetEntity) (*entity.FieldSetEntity, error)
	UpdateFieldSetInContact(ctx context.Context, contactId string, input *entity.FieldSetEntity) (*entity.FieldSetEntity, error)
	DeleteByIdFromContact(ctx context.Context, contactId string, fieldSetId string) (bool, error)
}

func NewFieldSetService

func NewFieldSetService(log logger.Logger, repository *repository.Repositories) FieldSetService

type FieldSetTemplateService

type FieldSetTemplateService interface {
	FindAll(ctx context.Context, entityTemplateId string) (*entity.FieldSetTemplateEntities, error)
	FindLinkedWithFieldSet(ctx context.Context, fieldSetId string) (*entity.FieldSetTemplateEntity, error)
}

func NewFieldSetTemplateService

func NewFieldSetTemplateService(log logger.Logger, repositories *repository.Repositories) FieldSetTemplateService

type InteractionEventCreateData

type InteractionEventCreateData struct {
	InteractionEventEntity *entity.InteractionEventEntity
	SessionIdentifier      *string
	MeetingIdentifier      *string
	RepliesTo              *string
	SentBy                 []ParticipantAddressData
	SentTo                 []ParticipantAddressData
	Source                 neo4jentity.DataSource
	SourceOfTruth          neo4jentity.DataSource
}

type InteractionEventService

type InteractionEventService interface {
	InteractionEventLinkAttachment(ctx context.Context, noteID string, attachmentID string) (*entity.InteractionEventEntity, error)
	GetInteractionEventsForInteractionSessions(ctx context.Context, ids []string) (*entity.InteractionEventEntities, error)
	GetInteractionEventsForMeetings(ctx context.Context, ids []string) (*entity.InteractionEventEntities, error)
	GetInteractionEventsForIssues(ctx context.Context, issueIds []string) (*entity.InteractionEventEntities, error)
	GetSentByParticipantsForInteractionEvents(ctx context.Context, ids []string) (*entity.InteractionEventParticipants, error)
	GetSentToParticipantsForInteractionEvents(ctx context.Context, ids []string) (*entity.InteractionEventParticipants, error)
	GetInteractionEventById(ctx context.Context, id string) (*entity.InteractionEventEntity, error)
	GetInteractionEventByEventIdentifier(ctx context.Context, eventIdentifier string) (*entity.InteractionEventEntity, error)
	GetReplyToInteractionsEventForInteractionEvents(ctx context.Context, ids []string) (*entity.InteractionEventEntities, error)

	Create(ctx context.Context, newInteractionEvent *InteractionEventCreateData) (*entity.InteractionEventEntity, error)
	// contains filtered or unexported methods
}

func NewInteractionEventService

func NewInteractionEventService(log logger.Logger, repositories *repository.Repositories, services *Services) InteractionEventService

type InteractionSessionCreateData

type InteractionSessionCreateData struct {
	InteractionSessionEntity *entity.InteractionSessionEntity
	AttendedBy               []ParticipantAddressData
}

type InteractionSessionService

type InteractionSessionService interface {
	GetInteractionSessionsForInteractionEvents(ctx context.Context, ids []string) (*entity.InteractionSessionEntities, error)
	InteractionSessionLinkAttachment(ctx context.Context, noteID string, attachmentID string) (*entity.InteractionSessionEntity, error)
	GetInteractionSessionById(ctx context.Context, id string) (*entity.InteractionSessionEntity, error)
	Create(ctx context.Context, newInteractionSession *InteractionSessionCreateData) (*entity.InteractionSessionEntity, error)
	GetInteractionSessionBySessionIdentifier(ctx context.Context, sessionIdentifier string) (*entity.InteractionSessionEntity, error)
	GetAttendedByParticipantsForInteractionSessions(ctx context.Context, ids []string) (*entity.InteractionSessionParticipants, error)
	// contains filtered or unexported methods
}

func NewInteractionSessionService

func NewInteractionSessionService(log logger.Logger, repositories *repository.Repositories, services *Services) InteractionSessionService

type InvoiceService

type InvoiceService interface {
	CountInvoices(ctx context.Context, tenant, organizationId string, where *model.Filter) (int64, error)
	GetInvoices(ctx context.Context, organizationId string, page, limit int, where *model.Filter, sortBy []*model.SortBy) (*utils.Pagination, error)
	UpdateInvoice(ctx context.Context, input model.InvoiceUpdateInput) error
}

func NewInvoiceService

func NewInvoiceService(log logger.Logger, repositories *repository.Repositories, grpcClients *grpc_client.Clients, services *Services) InvoiceService

type InvoicingCycleService

type InvoicingCycleService interface {
	CreateInvoicingCycle(ctx context.Context, invoicingCycleType invoicingcyclepb.InvoicingDateType) (string, error)
	UpdateInvoicingCycle(ctx context.Context, id string, invoicingCycleType invoicingcyclepb.InvoicingDateType) error
	GetInvoicingCycle(ctx context.Context) (*neo4jentity.InvoicingCycleEntity, error)
}

func NewInvoicingCycleService

func NewInvoicingCycleService(log logger.Logger, repositories *repository.Repositories, grpcClients *grpc_client.Clients) InvoicingCycleService

type IssueService

type IssueService interface {
	GetIssueSummaryByStatusForOrganization(ctx context.Context, organizationId string) (map[string]int64, error)
	GetById(ctx context.Context, issueId string) (*entity.IssueEntity, error)
	GetIssuesForInteractionEvents(ctx context.Context, ids []string) (*entity.IssueEntities, error)
	GetSubmitterParticipantsForIssues(ctx context.Context, ids []string) (*entity.IssueParticipants, error)
	GetReporterParticipantsForIssues(ctx context.Context, ids []string) (*entity.IssueParticipants, error)
	GetAssigneeParticipantsForIssues(ctx context.Context, ids []string) (*entity.IssueParticipants, error)
	GetFollowerParticipantsForIssues(ctx context.Context, ids []string) (*entity.IssueParticipants, error)
	// contains filtered or unexported methods
}

func NewIssueService

func NewIssueService(log logger.Logger, repositories *repository.Repositories, services *Services) IssueService

type JobRoleService

type JobRoleService interface {
	GetAllForContact(ctx context.Context, contactId string) (*entity.JobRoleEntities, error)
	GetAllForContacts(ctx context.Context, contactIds []string) (*entity.JobRoleEntities, error)
	GetAllForOrganization(ctx context.Context, organizationId string) (*entity.JobRoleEntities, error)
	GetAllForOrganizations(ctx context.Context, organizationIds []string) (*entity.JobRoleEntities, error)
	DeleteJobRole(ctx context.Context, contactId, roleId string) (bool, error)
	CreateJobRole(ctx context.Context, contactId string, organizationId *string, entity *entity.JobRoleEntity) (*entity.JobRoleEntity, error)
	UpdateJobRole(ctx context.Context, contactId string, organizationId *string, entity *entity.JobRoleEntity) (*entity.JobRoleEntity, error)
	GetAllForUsers(ctx context.Context, userIds []string) (*entity.JobRoleEntities, error)
	// contains filtered or unexported methods
}

func NewJobRoleService

func NewJobRoleService(log logger.Logger, repositories *repository.Repositories, services *Services) JobRoleService

type LocationService

type LocationService interface {
	GetAllForContact(ctx context.Context, contactId string) (*entity.LocationEntities, error)
	GetAllForContacts(ctx context.Context, contactIds []string) (*entity.LocationEntities, error)
	GetAllForOrganization(ctx context.Context, organizationId string) (*entity.LocationEntities, error)
	GetAllForOrganizations(ctx context.Context, organizationIds []string) (*entity.LocationEntities, error)
	CreateLocationForEntity(ctx context.Context, entityType entity.EntityType, entityId string, source entity.SourceFields) (*entity.LocationEntity, error)
	Update(ctx context.Context, entity entity.LocationEntity) (*entity.LocationEntity, error)
	DetachFromEntity(ctx context.Context, entityType entity.EntityType, entityId, locationId string) error
}

func NewLocationService

func NewLocationService(log logger.Logger, repositories *repository.Repositories) LocationService

type LogEntryService

type LogEntryService interface {
	GetById(ctx context.Context, logEntryId string) (*entity.LogEntryEntity, error)
	// contains filtered or unexported methods
}

func NewLogEntryService

func NewLogEntryService(log logger.Logger, repositories *repository.Repositories) LogEntryService

type MasterPlanService

type MasterPlanService interface {
	CreateMasterPlan(ctx context.Context, name string) (string, error)
	UpdateMasterPlan(ctx context.Context, id string, name *string, retired *bool) error
	DuplicateMasterPlan(ctx context.Context, sourceMasterPlanId string) (string, error)
	GetMasterPlanById(ctx context.Context, masterPlanId string) (*neo4jentity.MasterPlanEntity, error)
	GetMasterPlans(ctx context.Context, returnRetired *bool) (*neo4jentity.MasterPlanEntities, error)
	CreateMasterPlanMilestone(ctx context.Context, masterPlanId, name string, order, durationHours int64, optional bool, items []string) (string, error)
	UpdateMasterPlanMilestone(ctx context.Context, masterPlanId, masterPlanMilestoneId string, name *string, order, hours *int64, items []string, optional *bool, retired *bool) error
	GetMasterPlanMilestoneById(ctx context.Context, masterPlanMilestoneId string) (*neo4jentity.MasterPlanMilestoneEntity, error)
	GetMasterPlanMilestonesForMasterPlans(ctx context.Context, masterPlanIds []string) (*neo4jentity.MasterPlanMilestoneEntities, error)
	ReorderMasterPlanMilestones(ctx context.Context, masterPlanId string, masterPlanMilestoneIds []string) error
	DuplicateMasterPlanMilestone(ctx context.Context, masterPlanId, sourceMasterPlanMilestoneId string) (string, error)
	CreateDefaultMasterPlan(ctx context.Context) (string, error)
}

func NewMasterPlanService

func NewMasterPlanService(log logger.Logger, repositories *repository.Repositories, grpcClients *grpc_client.Clients) MasterPlanService

type MeetingCreateData

type MeetingCreateData struct {
	MeetingEntity     *entity.MeetingEntity
	CreatedBy         []MeetingParticipant
	AttendedBy        []MeetingParticipant
	NoteInput         *model.NoteInput
	ExternalReference *neo4jentity.ExternalSystemEntity
}

type MeetingParticipant

type MeetingParticipant struct {
	ContactId      *string
	UserId         *string
	OrganizationId *string
}

func MapMeetingParticipantInputListToParticipant

func MapMeetingParticipantInputListToParticipant(input []*model.MeetingParticipantInput) []MeetingParticipant

func MapMeetingParticipantInputToParticipant

func MapMeetingParticipantInputToParticipant(participant *model.MeetingParticipantInput) MeetingParticipant

type MeetingService

type MeetingService interface {
	Update(ctx context.Context, input *MeetingUpdateData) (*entity.MeetingEntity, error)
	Create(ctx context.Context, newMeeting *MeetingCreateData) (*entity.MeetingEntity, error)

	LinkAttendedBy(ctx context.Context, meetingID string, participant MeetingParticipant) error
	UnlinkAttendedBy(ctx context.Context, meetingID string, participant MeetingParticipant) error

	LinkAttachment(ctx context.Context, meetingID string, attachmentID string) (*entity.MeetingEntity, error)
	UnlinkAttachment(ctx context.Context, meetingID string, attachmentID string) (*entity.MeetingEntity, error)

	LinkRecordingAttachment(ctx context.Context, meetingID string, attachmentID string) (*entity.MeetingEntity, error)
	UnlinkRecordingAttachment(ctx context.Context, meetingID string, attachmentID string) (*entity.MeetingEntity, error)

	GetMeetingById(ctx context.Context, meetingId string) (*entity.MeetingEntity, error)
	GetMeetingForInteractionEvent(ctx context.Context, interactionEventId string) (*entity.MeetingEntity, error)
	GetMeetingsForInteractionEvents(ctx context.Context, ids []string) (*entity.MeetingEntities, error)
	GetParticipantsForMeetings(ctx context.Context, ids []string, relation entity.MeetingRelation) (*entity.MeetingParticipants, error)

	FindAll(ctx context.Context, externalSystemID string, externalID *string, page, limit int, filter *model.Filter, sortBy []*model.SortBy) (*utils.Pagination, error)
	// contains filtered or unexported methods
}

func NewMeetingService

func NewMeetingService(log logger.Logger, repositories *repository.Repositories, services *Services) MeetingService

type MeetingUpdateData

type MeetingUpdateData struct {
	MeetingEntity     *entity.MeetingEntity
	NoteEntity        *entity.NoteEntity
	Meeting           *string
	ExternalReference *neo4jentity.ExternalSystemEntity
}

type NoteService

type NoteService interface {
	GetNotesForContactPaginated(ctx context.Context, contactId string, page, limit int) (*utils.Pagination, error)
	GetNotesForContactTimeRange(ctx context.Context, contactId string, start, end time.Time) (*entity.NoteEntities, error)
	GetNotesForMeetings(ctx context.Context, ids []string) (*entity.NoteEntities, error)

	CreateNoteForContact(ctx context.Context, contactId string, entity *entity.NoteEntity) (*entity.NoteEntity, error)
	CreateNoteForOrganization(ctx context.Context, organizationId string, entity *entity.NoteEntity) (*entity.NoteEntity, error)
	CreateNoteForMeeting(ctx context.Context, meetingId string, entity *entity.NoteEntity) (*entity.NoteEntity, error)

	UpdateNote(ctx context.Context, entity *entity.NoteEntity) (*entity.NoteEntity, error)
	DeleteNote(ctx context.Context, noteId string) (bool, error)

	GetNotedEntities(ctx context.Context, ids []string) (*entity.NotedEntities, error)
	NoteLinkAttachment(ctx context.Context, noteID string, attachmentID string) (*entity.NoteEntity, error)
	NoteUnlinkAttachment(ctx context.Context, noteID string, attachmentID string) (*entity.NoteEntity, error)
	// contains filtered or unexported methods
}

func NewNoteService

func NewNoteService(log logger.Logger, repositories *repository.Repositories, services *Services) NoteService

type OfferingService

type OfferingService interface {
	CreateOffering(ctx context.Context, input *model.OfferingCreateInput) (string, error)
	UpdateOffering(ctx context.Context, input *model.OfferingUpdateInput) error
	GetOfferings(ctx context.Context) (*neo4jentity.OfferingEntities, error)
	GetOffering(ctx context.Context, id string) (*neo4jentity.OfferingEntity, error)
}

func NewOfferingService

func NewOfferingService(log logger.Logger, repository *repository.Repositories, grpcClients *grpc_client.Clients) OfferingService

type OpportunityService

type OpportunityService interface {
	Update(ctx context.Context, opportunity *neo4jentity.OpportunityEntity) error
	UpdateRenewal(ctx context.Context, opportunityId string, renewalLikelihood neo4jenum.RenewalLikelihood, amount *float64, comments *string, ownerUserId *string, adjustedRate *int64, appSource string) error
	GetById(ctx context.Context, id string) (*neo4jentity.OpportunityEntity, error)
	GetOpportunitiesForContracts(ctx context.Context, contractIds []string) (*neo4jentity.OpportunityEntities, error)
	UpdateRenewalsForOrganization(ctx context.Context, organizationId string, renewalLikelihood neo4jenum.RenewalLikelihood, renewalAdjustedRate *int64) error
}

func NewOpportunityService

func NewOpportunityService(log logger.Logger, repositories *repository.Repositories, grpcClients *grpc_client.Clients, services *Services) OpportunityService

type OrderService

type OrderService interface {
	GetAllForOrganizations(ctx context.Context, organizationIds []string) (*entity.OrderEntities, error)
	// contains filtered or unexported methods
}

func NewOrderService

func NewOrderService(log logger.Logger, repositories *repository.Repositories) OrderService

type OrganizationCreateData

type OrganizationCreateData struct {
	OrganizationEntity *entity.OrganizationEntity
	CustomFields       *entity.CustomFieldEntities
	FieldSets          *entity.FieldSetEntities
	TemplateId         *string
	Domains            []string
}

type OrganizationPlanService

type OrganizationPlanService interface {
	CreateOrganizationPlan(ctx context.Context, name, masterPlanId, orgId string) (string, error)
	UpdateOrganizationPlan(ctx context.Context, organizationPlanId, orgId string, name *string, retired *bool, statusDetails *model.OrganizationPlanStatusDetailsInput) error
	DuplicateOrganizationPlan(ctx context.Context, sourceOrganizationPlanId, orgId string) (string, error)
	GetOrganizationPlanById(ctx context.Context, organizationPlanId string) (*neo4jentity.OrganizationPlanEntity, error)
	GetOrganizationPlans(ctx context.Context, returnRetired *bool) (*neo4jentity.OrganizationPlanEntities, error)
	CreateOrganizationPlanMilestone(ctx context.Context, organizationPlanId, orgId, name string, order *int64, dueDate *time.Time, optional, adhoc bool, items []string) (string, error)
	UpdateOrganizationPlanMilestone(ctx context.Context, orgId, organizationPlanId, organizationPlanMilestoneId string, name *string, order *int64, dueDate *time.Time, items []*model.OrganizationPlanMilestoneItemInput, optional, adhoc, retired *bool, statusDetails *model.OrganizationPlanMilestoneStatusDetailsInput) error
	GetOrganizationPlanMilestoneById(ctx context.Context, organizationPlanMilestoneId string) (*neo4jentity.OrganizationPlanMilestoneEntity, error)
	GetOrganizationPlanMilestonesForOrganizationPlans(ctx context.Context, organizationPlanIds []string) (*neo4jentity.OrganizationPlanMilestoneEntities, error)
	ReorderOrganizationPlanMilestones(ctx context.Context, organizationPlanId, orgId string, organizationPlanMilestoneIds []string) error
	DuplicateOrganizationPlanMilestone(ctx context.Context, organizationPlanId, orgId, sourceOrganizationPlanMilestoneId string) (string, error)
	GetOrganizationPlansForOrganization(ctx context.Context, organizationId string) (*neo4jentity.OrganizationPlanEntities, error)
}

func NewOrganizationPlanService

func NewOrganizationPlanService(log logger.Logger, repositories *repository.Repositories, grpcClients *grpc_client.Clients) OrganizationPlanService

type OrganizationService

type OrganizationService interface {
	CountOrganizations(ctx context.Context, tenant string) (int64, error)
	GetOrganizationsForJobRoles(ctx context.Context, jobRoleIds []string) (*entity.OrganizationEntities, error)
	GetOrganizationsForInvoices(ctx context.Context, invoiceIds []string) (*entity.OrganizationEntities, error)
	GetOrganizationsForSlackChannels(ctx context.Context, slackChannelIds []string) (*entity.OrganizationEntities, error)
	GetById(ctx context.Context, organizationId string) (*entity.OrganizationEntity, error)
	GetByCustomerOsId(ctx context.Context, customerOsId string) (*entity.OrganizationEntity, error)
	GetByReferenceId(ctx context.Context, referenceId string) (*entity.OrganizationEntity, error)
	ExistsById(ctx context.Context, organizationId string) (bool, error)
	FindAll(ctx context.Context, page, limit int, filter *model.Filter, sortBy []*model.SortBy) (*utils.Pagination, error)
	GetOrganizationsForContact(ctx context.Context, contactId string, page, limit int, filter *model.Filter, sortBy []*model.SortBy) (*utils.Pagination, error)
	Archive(ctx context.Context, organizationId string) error
	Merge(ctx context.Context, primaryOrganizationId, mergedOrganizationId string) error
	GetOrganizationsForEmails(ctx context.Context, emailIds []string) (*entity.OrganizationEntities, error)
	GetOrganizationsForPhoneNumbers(ctx context.Context, phoneNumberIds []string) (*entity.OrganizationEntities, error)
	GetSubsidiariesForOrganizations(ctx context.Context, parentOrganizationIds []string) (*entity.OrganizationEntities, error)
	GetSubsidiariesOfForOrganizations(ctx context.Context, organizationIds []string) (*entity.OrganizationEntities, error)
	AddSubsidiary(ctx context.Context, parentOrganizationId, subsidiaryOrganizationId, subsidiaryType string) error
	RemoveSubsidiary(ctx context.Context, parentOrganizationId, subsidiaryOrganizationId string) error
	ReplaceOwner(ctx context.Context, organizationId, userId string) (*entity.OrganizationEntity, error)
	RemoveOwner(ctx context.Context, organizationId string) (*entity.OrganizationEntity, error)
	UpdateLastTouchpoint(ctx context.Context, organizationId string)
	UpdateLastTouchpointByContactId(ctx context.Context, contactId string)
	UpdateLastTouchpointByEmailId(ctx context.Context, emailId string)
	UpdateLastTouchpointByPhoneNumberId(ctx context.Context, phoneNumberId string)
	UpdateLastTouchpointByEmail(ctx context.Context, email string)
	UpdateLastTouchpointByPhoneNumber(ctx context.Context, phoneNumber string)
	GetSuggestedMergeToForOrganizations(ctx context.Context, organizationIds []string) (*entity.OrganizationEntities, error)
	GetMinMaxRenewalForecastArr(ctx context.Context) (float64, float64, error)
	GetOrganizations(ctx context.Context, organizationIds []string) (*entity.OrganizationEntities, error)
	// contains filtered or unexported methods
}

func NewOrganizationService

func NewOrganizationService(log logger.Logger, repositories *repository.Repositories, grpcClients *grpc_client.Clients) OrganizationService

type OrganizationUpdateData

type OrganizationUpdateData struct {
	Organization *entity.OrganizationEntity
	Domains      []string
}

type PageViewService

type PageViewService interface {
	// contains filtered or unexported methods
}

func NewPageViewService

func NewPageViewService(log logger.Logger, repositories *repository.Repositories) PageViewService

type ParticipantAddressData

type ParticipantAddressData struct {
	Email       *string
	PhoneNumber *string
	ContactId   *string
	UserId      *string
	Type        *string
}

func MapInteractionEventParticipantInputToAddressData

func MapInteractionEventParticipantInputToAddressData(input []*model.InteractionEventParticipantInput) []ParticipantAddressData

func MapInteractionSessionParticipantInputToAddressData

func MapInteractionSessionParticipantInputToAddressData(input []*model.InteractionSessionParticipantInput) []ParticipantAddressData

type PhoneNumberService

type PhoneNumberService interface {
	CreatePhoneNumberByEvents(ctx context.Context, email, appSource string) (string, error)
	MergePhoneNumberTo(ctx context.Context, entityType entity.EntityType, entityId string, inputEntity *entity.PhoneNumberEntity, countryCodeA2 *string) (*entity.PhoneNumberEntity, error)
	UpdatePhoneNumberFor(ctx context.Context, entityType entity.EntityType, entityId string, inputEntity *entity.PhoneNumberEntity, countryCodeA2 *string) (*entity.PhoneNumberEntity, error)
	DetachFromEntityByPhoneNumber(ctx context.Context, entityType entity.EntityType, entityId, phoneNumber string) (bool, error)
	DetachFromEntityById(ctx context.Context, entityType entity.EntityType, entityId, phoneNumberId string) (bool, error)
	GetAllForEntityTypeByIds(ctx context.Context, entityType entity.EntityType, ids []string) (*entity.PhoneNumberEntities, error)
	GetById(ctx context.Context, phoneNumberId string) (*entity.PhoneNumberEntity, error)
	GetByPhoneNumber(ctx context.Context, phoneNumber string) (*entity.PhoneNumberEntity, error)
	// contains filtered or unexported methods
}

func NewPhoneNumberService

func NewPhoneNumberService(log logger.Logger, repositories *repository.Repositories, grpcClients *grpc_client.Clients, services *Services) PhoneNumberService

type PlayerService

type PlayerService interface {
	GetPlayerByAuthIdProvider(ctx context.Context, authId string, provider string) (*entity.PlayerEntity, error)
	GetPlayerForUser(ctx context.Context, tenant string, userId string) (*entity.PlayerEntity, error)
	GetUsers(ctx context.Context) (*entity.UserEntities, error)
	GetUsersByIdentityId(ctx context.Context, identityId string) (*entity.UserEntities, error)
	SetDefaultUser(ctx context.Context, playerId string, userId string) (*entity.PlayerEntity, error)
	Merge(ctx context.Context, player *entity.PlayerEntity) (*entity.PlayerEntity, error)
	Update(ctx context.Context, player *entity.PlayerEntity) (*entity.PlayerEntity, error)
}

func NewPlayerService

func NewPlayerService(repositories *repository.Repositories, service *Services) PlayerService

type ReminderService

type ReminderService interface {
	CreateReminder(ctx context.Context, userId, orgId, content string, dueDate time.Time) (string, error)
	UpdateReminder(ctx context.Context, id string, content *string, dueDate *time.Time, dismissed *bool) error
	GetReminderById(ctx context.Context, id string) (*neo4jentity.ReminderEntity, error)
	RemindersForOrganization(ctx context.Context, organizationID string, dismissed *bool) ([]*neo4jentity.ReminderEntity, error)
}

func NewReminderService

func NewReminderService(log logger.Logger, repositories *repository.Repositories, grpcClients *grpc_client.Clients) ReminderService

type SearchService

type SearchService interface {
	GCliSearch(ctx context.Context, keyword string, limit *int) (*entity.SearchResultEntities, error)
}

func NewSearchService

func NewSearchService(log logger.Logger, repositories *repository.Repositories, services *Services) SearchService

type ServiceLineItemCreateData

type ServiceLineItemCreateData struct {
	ContractId        string                            `json:"contractId"`
	SliName           string                            `json:"sliName"`
	SliPrice          float64                           `json:"sliPrice"`
	SliQuantity       int64                             `json:"sliQuantity"`
	SliBilledType     neo4jenum.BilledType              `json:"sliBilledType"`
	ExternalReference *neo4jentity.ExternalSystemEntity `json:"externalReference"`
	Source            neo4jentity.DataSource            `json:"source"`
	AppSource         string                            `json:"appSource"`
	StartedAt         *time.Time                        `json:"startedAt"`
	EndedAt           *time.Time                        `json:"endedAt"`
	SliVatRate        float64                           `json:"sliVatRate"`
}

type ServiceLineItemDetails

type ServiceLineItemDetails struct {
	Id                      string
	Name                    string
	Price                   float64
	Quantity                int64
	Billed                  neo4jenum.BilledType
	Comments                string
	IsRetroactiveCorrection bool
	VatRate                 float64
	StartedAt               *time.Time
	CloseVersion            bool
	NewVersion              bool
}

func MapServiceLineItemBulkItemsToData

func MapServiceLineItemBulkItemsToData(input []*model.ServiceLineItemBulkUpdateItem) []*ServiceLineItemDetails

type ServiceLineItemNewVersionData

type ServiceLineItemNewVersionData struct {
	Id        string                 `json:"id"`
	Name      string                 `json:"sliName"`
	Price     float64                `json:"sliPrice"`
	Quantity  int64                  `json:"sliQuantity"`
	Comments  string                 `json:"sliComments"`
	Source    neo4jentity.DataSource `json:"source"`
	AppSource string                 `json:"appSource"`
	VatRate   float64                `json:"sliVatRate"`
	StartedAt *time.Time             `json:"startedAt"`
}

type ServiceLineItemService

type ServiceLineItemService interface {
	Create(ctx context.Context, serviceLineItemDetails ServiceLineItemCreateData) (string, error)
	Update(ctx context.Context, serviceLineItemDetails ServiceLineItemUpdateData) error
	Delete(ctx context.Context, serviceLineItemId string) (bool, error)
	Close(ctx context.Context, serviceLineItemId string, endedAt *time.Time) error
	CreateOrUpdateOrCloseInBulk(ctx context.Context, contractId string, sliBulkData []*ServiceLineItemDetails) ([]string, error)
	NewVersion(ctx context.Context, data ServiceLineItemNewVersionData) (string, error)
}

func NewServiceLineItemService

func NewServiceLineItemService(log logger.Logger, repositories *repository.Repositories, grpcClients *grpc_client.Clients, services *Services) ServiceLineItemService

type ServiceLineItemUpdateData

type ServiceLineItemUpdateData struct {
	Id                      string                 `json:"id"`
	IsRetroactiveCorrection bool                   `json:"isRetroactiveCorrection"`
	SliName                 string                 `json:"sliName"`
	SliPrice                float64                `json:"sliPrice"`
	SliQuantity             int64                  `json:"sliQuantity"`
	SliBilledType           neo4jenum.BilledType   `json:"sliBilledType"`
	SliComments             string                 `json:"sliComments"`
	Source                  neo4jentity.DataSource `json:"source"`
	AppSource               string                 `json:"appSource"`
	SliVatRate              float64                `json:"sliVatRate"`
	StartedAt               *time.Time             `json:"startedAt"`
}

type Services

type Services struct {
	Cache        CacheService
	Repositories *repository.Repositories

	CommonServices     *commonService.Services
	CommonAuthServices *commonAuthService.Services

	BankAccountService         BankAccountService
	ContactService             ContactService
	OrganizationService        OrganizationService
	CustomFieldService         CustomFieldService
	PhoneNumberService         PhoneNumberService
	EmailService               EmailService
	UserService                UserService
	FieldSetService            FieldSetService
	EntityTemplateService      EntityTemplateService
	FieldSetTemplateService    FieldSetTemplateService
	CustomFieldTemplateService CustomFieldTemplateService
	TimelineEventService       TimelineEventService
	NoteService                NoteService
	JobRoleService             JobRoleService
	CalendarService            CalendarService
	LocationService            LocationService
	TagService                 TagService
	SearchService              SearchService
	QueryService               DashboardService
	DomainService              DomainService
	IssueService               IssueService
	InteractionSessionService  InteractionSessionService
	InteractionEventService    InteractionEventService
	PageViewService            PageViewService
	AnalysisService            AnalysisService
	AttachmentService          AttachmentService
	MeetingService             MeetingService
	TenantService              TenantService
	WorkspaceService           WorkspaceService
	SocialService              SocialService
	PlayerService              PlayerService
	ExternalSystemService      ExternalSystemService
	ActionService              ActionService
	CountryService             CountryService
	ActionItemService          ActionItemService
	BillableService            BillableService
	LogEntryService            LogEntryService
	CommentService             CommentService
	ContractService            ContractService
	ServiceLineItemService     ServiceLineItemService
	OpportunityService         OpportunityService
	MasterPlanService          MasterPlanService
	BillingProfileService      BillingProfileService
	InvoiceService             InvoiceService
	OrganizationPlanService    OrganizationPlanService
	SlackService               SlackService
	ReminderService            ReminderService
	OrderService               OrderService
	OfferingService            OfferingService
	// contains filtered or unexported fields
}

func InitServices

func InitServices(log logger.Logger, driver *neo4j.DriverWithContext, cfg *config.Config, commonServices *commonService.Services, commonAuthServices *commonAuthService.Services, grpcClients *grpc_client.Clients, gormDb *gorm.DB) *Services

type SlackService

type SlackService interface {
	GetPaginatedSlackChannels(ctx context.Context, tenant string, page, limit int) (*utils.Pagination, error)
}

func NewSlackService

func NewSlackService(log logger.Logger, repositories *repository.Repositories, grpcClients *grpc_client.Clients, services *Services) SlackService

type SocialService

type SocialService interface {
	CreateSocialForEntity(ctx context.Context, linkedEntityType entity.EntityType, linkedEntityId string, socialEntity entity.SocialEntity) (*entity.SocialEntity, error)
	Update(ctx context.Context, entity entity.SocialEntity) (*entity.SocialEntity, error)
	GetAllForEntities(ctx context.Context, linkedEntityType entity.EntityType, linkedEntityIds []string) (*entity.SocialEntities, error)
	Remove(ctx context.Context, socialId string) error
}

func NewSocialService

func NewSocialService(log logger.Logger, repositories *repository.Repositories) SocialService

type SortMultipleEntitiesDefinition

type SortMultipleEntitiesDefinition struct {
	EntityPrefix   string
	EntityMapping  reflect.Type
	EntityAlias    string
	EntityDefaults []SortMultipleEntitiesDefinitionDefault
}

type SortMultipleEntitiesDefinitionDefault

type SortMultipleEntitiesDefinitionDefault struct {
	PropertyName string
	AscDefault   string
	DescDefault  string
}

type TagService

type TagService interface {
	Merge(ctx context.Context, tag *neo4jentity.TagEntity) (*neo4jentity.TagEntity, error)
	Update(ctx context.Context, tag *neo4jentity.TagEntity) (*neo4jentity.TagEntity, error)
	UnlinkAndDelete(ctx context.Context, id string) (bool, error)
	GetAll(ctx context.Context) (*neo4jentity.TagEntities, error)
	GetById(ctx context.Context, tagId string) (*neo4jentity.TagEntity, error)
	GetByNameOptional(ctx context.Context, tagName string) (*neo4jentity.TagEntity, error)
	GetTagsForContact(ctx context.Context, contactId string) (*neo4jentity.TagEntities, error)
	GetTagsForContacts(ctx context.Context, contactIds []string) (*neo4jentity.TagEntities, error)
	GetTagsForIssues(ctx context.Context, issueIds []string) (*neo4jentity.TagEntities, error)
	GetTagsForOrganizations(ctx context.Context, organizationIds []string) (*neo4jentity.TagEntities, error)
	GetTagsForLogEntries(ctx context.Context, logEntryIds []string) (*neo4jentity.TagEntities, error)
}

func NewTagService

func NewTagService(log logger.Logger, repository *repository.Repositories) TagService

type TenantService

type TenantService interface {
	GetTenantForWorkspace(ctx context.Context, workspaceEntity entity.WorkspaceEntity) (*neo4jentity.TenantEntity, error)
	GetTenantForUserEmail(ctx context.Context, email string) (*neo4jentity.TenantEntity, error)
	Merge(ctx context.Context, tenantEntity neo4jentity.TenantEntity) (*neo4jentity.TenantEntity, error)
	GetTenantBillingProfiles(ctx context.Context) (*neo4jentity.TenantBillingProfileEntities, error)
	GetTenantBillingProfile(ctx context.Context, id string) (*neo4jentity.TenantBillingProfileEntity, error)
	GetDefaultTenantBillingProfile(ctx context.Context) (*neo4jentity.TenantBillingProfileEntity, error)
	CreateTenantBillingProfile(ctx context.Context, input model.TenantBillingProfileInput) (string, error)
	UpdateTenantBillingProfile(ctx context.Context, input model.TenantBillingProfileUpdateInput) error
	GetTenantSettings(ctx context.Context) (*neo4jentity.TenantSettingsEntity, error)
	UpdateTenantSettings(ctx context.Context, input *model.TenantSettingsInput) error
}

func NewTenantService

func NewTenantService(log logger.Logger, repository *repository.Repositories, grpcClients *grpc_client.Clients) TenantService

type TimelineEventService

type TimelineEventService interface {
	GetTimelineEventsForContact(ctx context.Context, contactId string, from *time.Time, size int, types []model.TimelineEventType) (*entity.TimelineEventEntities, error)
	GetTimelineEventsTotalCountForContact(ctx context.Context, contactId string, types []model.TimelineEventType) (int64, error)
	GetTimelineEventsForOrganization(ctx context.Context, organizationId string, from *time.Time, size int, types []model.TimelineEventType) (*entity.TimelineEventEntities, error)
	GetTimelineEventsTotalCountForOrganization(ctx context.Context, organizationId string, types []model.TimelineEventType) (int64, error)
	GetTimelineEventsWithIds(ctx context.Context, ids []string) (*entity.TimelineEventEntities, error)
}

func NewTimelineEventService

func NewTimelineEventService(log logger.Logger, repositories *repository.Repositories, services *Services) TimelineEventService

type UserService

type UserService interface {
	Create(ctx context.Context, UserEntity entity.UserEntity) (string, error)
	Update(ctx context.Context, userId, firstName, lastName string, name, timezone, profilePhotoURL *string) (*entity.UserEntity, error)
	GetAll(ctx context.Context, page, limit int, filter *model.Filter, sortBy []*model.SortBy) (*utils.Pagination, error)
	GetById(ctx context.Context, userId string) (*entity.UserEntity, error)
	FindUserByEmail(ctx context.Context, email string) (*entity.UserEntity, error)
	IsOwner(ctx context.Context, id string) (*bool, error)
	GetContactOwner(ctx context.Context, contactId string) (*entity.UserEntity, error)
	GetNoteCreator(ctx context.Context, noteId string) (*entity.UserEntity, error)
	GetUsersForEmails(ctx context.Context, emailIds []string) (*entity.UserEntities, error)
	GetUsersForPhoneNumbers(ctx context.Context, phoneNumberIds []string) (*entity.UserEntities, error)
	GetUsersForPlayers(ctx context.Context, playerIds []string) (*entity.UserEntities, error)
	GetUserOwnersForOrganizations(ctx context.Context, organizationIDs []string) (*entity.UserEntities, error)
	GetUserOwnersForOpportunities(ctx context.Context, opportunityIds []string) (*entity.UserEntities, error)
	GetUserCreatorsForOpportunities(ctx context.Context, opportunityIds []string) (*entity.UserEntities, error)
	GetUserCreatorsForServiceLineItems(ctx context.Context, serviceLineItemIds []string) (*entity.UserEntities, error)
	GetUserCreatorsForContracts(ctx context.Context, contractIds []string) (*entity.UserEntities, error)
	GetUserAuthorsForLogEntries(ctx context.Context, logEntryIDs []string) (*entity.UserEntities, error)
	GetUserAuthorsForComments(ctx context.Context, commentIds []string) (*entity.UserEntities, error)
	GetUsers(ctx context.Context, userIds []string) (*entity.UserEntities, error)
	GetDistinctOrganizationOwners(ctx context.Context) (*entity.UserEntities, error)
	GetReminderOwner(ctx context.Context, reminderId string) (*entity.UserEntity, error)
	AddRole(ctx context.Context, userId string, role model.Role) (*entity.UserEntity, error)
	AddRoleInTenant(ctx context.Context, userId string, tenant string, role model.Role) (*entity.UserEntity, error)
	RemoveRole(ctx context.Context, userId string, role model.Role) (*entity.UserEntity, error)
	RemoveRoleInTenant(ctx context.Context, userId string, tenant string, role model.Role) (*entity.UserEntity, error)
	ContainsRole(parentCtx context.Context, allowedRoles []model.Role) bool
	GetContractOwner(ctx context.Context, contractId string) (*entity.UserEntity, error)

	CustomerAddJobRole(ctx context.Context, entity *CustomerAddJobRoleData) (*model.CustomerUser, error)
	// contains filtered or unexported methods
}

func NewUserService

func NewUserService(log logger.Logger, repositories *repository.Repositories, grpcClients *grpc_client.Clients) UserService

type WorkspaceService

type WorkspaceService interface {
	MergeToTenant(ctx context.Context, workspaceEntity entity.WorkspaceEntity, tenant string) (bool, error)
}

func NewWorkspaceService

func NewWorkspaceService(log logger.Logger, repository *repository.Repositories) WorkspaceService

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL