projectors

package
v0.0.0-...-3770506 Latest Latest
Warning

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

Go to latest
Published: Aug 9, 2025 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AnalyticsProjector

type AnalyticsProjector struct {
	// contains filtered or unexported fields
}

func NewAnalyticsProjector

func NewAnalyticsProjector(db *sql.DB, redis *redis.Client, logger *zap.Logger) *AnalyticsProjector

func (*AnalyticsProjector) HandleEvent

func (p *AnalyticsProjector) HandleEvent(event Event)

func (*AnalyticsProjector) RefreshViews

func (p *AnalyticsProjector) RefreshViews()

type Config

type Config struct {
	DatabaseURL string
	RedisURL    string
	NATSURL     string
}

type DashboardProjector

type DashboardProjector struct {
	// contains filtered or unexported fields
}

func NewDashboardProjector

func NewDashboardProjector(db *sql.DB, redis *redis.Client, logger *zap.Logger) *DashboardProjector

func (*DashboardProjector) GetBrokerPerformance

func (p *DashboardProjector) GetBrokerPerformance(ctx context.Context, tenantID, period string) (map[string]interface{}, error)

func (*DashboardProjector) GetLeadFunnel

func (p *DashboardProjector) GetLeadFunnel(ctx context.Context, tenantID, period string) (map[string]interface{}, error)

func (*DashboardProjector) GetOverview

func (p *DashboardProjector) GetOverview(ctx context.Context, tenantID string) (map[string]interface{}, error)

func (*DashboardProjector) HandleEvent

func (p *DashboardProjector) HandleEvent(event Event)

func (*DashboardProjector) RefreshViews

func (p *DashboardProjector) RefreshViews()

type Event

type Event struct {
	ID          string                 `json:"id"`
	Type        string                 `json:"type"`
	TenantID    string                 `json:"tenant_id"`
	AggregateID string                 `json:"aggregate_id"`
	Data        map[string]interface{} `json:"data"`
	Timestamp   time.Time              `json:"timestamp"`
}

Event represents an event from the broker queue system

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

func NewManager

func NewManager(config *Config) (*Manager, error)

func (*Manager) GetBrokerPerformance

func (m *Manager) GetBrokerPerformance(ctx context.Context, tenantID, period string) (map[string]interface{}, error)

func (*Manager) GetDashboardOverview

func (m *Manager) GetDashboardOverview(ctx context.Context, tenantID string) (map[string]interface{}, error)

Dashboard methods

func (*Manager) GetLeadFunnel

func (m *Manager) GetLeadFunnel(ctx context.Context, tenantID, period string) (map[string]interface{}, error)

func (*Manager) GetQueueMetrics

func (m *Manager) GetQueueMetrics(ctx context.Context, tenantID string) (map[string]interface{}, error)

func (*Manager) IsReady

func (m *Manager) IsReady() bool

func (*Manager) Start

func (m *Manager) Start(ctx context.Context)

func (*Manager) Stop

func (m *Manager) Stop()

type RealtimeProjector

type RealtimeProjector struct {
	// contains filtered or unexported fields
}

func NewRealtimeProjector

func NewRealtimeProjector(db *sql.DB, redis *redis.Client, logger *zap.Logger) *RealtimeProjector

func (*RealtimeProjector) GetQueueMetrics

func (p *RealtimeProjector) GetQueueMetrics(ctx context.Context, tenantID string) (map[string]interface{}, error)

func (*RealtimeProjector) HandleEvent

func (p *RealtimeProjector) HandleEvent(event Event)

func (*RealtimeProjector) RefreshCache

func (p *RealtimeProjector) RefreshCache()

type ReportProjector

type ReportProjector struct {
	// contains filtered or unexported fields
}

func NewReportProjector

func NewReportProjector(db *sql.DB, redis *redis.Client, logger *zap.Logger) *ReportProjector

func (*ReportProjector) HandleEvent

func (p *ReportProjector) HandleEvent(event Event)

func (*ReportProjector) RefreshViews

func (p *ReportProjector) RefreshViews()

Jump to

Keyboard shortcuts

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