From fa675f293d69e97d8a05aefb3774a6f2c0e52cdc Mon Sep 17 00:00:00 2001 From: Eli Ribble Date: Fri, 17 Apr 2026 19:43:40 +0000 Subject: [PATCH] Add initial work on getting compliance data for leads --- platform/lead.go | 12 +++++++++--- platform/types/compliance_report_request.go | 6 ++++++ platform/types/lead.go | 7 +++++-- 3 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 platform/types/compliance_report_request.go diff --git a/platform/lead.go b/platform/lead.go index 8208b09a..429b03e5 100644 --- a/platform/lead.go +++ b/platform/lead.go @@ -51,10 +51,16 @@ func leadCreate(ctx context.Context, txn bob.Executor, user User, signal_id int3 func leadsBySiteID(ctx context.Context, site_ids []int32) (map[int32][]types.Lead, error) { rows, err := bob.All(ctx, db.PGInstance.BobDB, psql.Select( sm.Columns( - "id", - "site_id", + models.Leads.Columns.ID.As("id"), + models.Leads.Columns.SiteID.As("site_id"), + models.Leads.Columns.Type.As("type"), + models.ComplianceReportRequests.Columns.ID.As("compliance_report_request_id"), + ), + sm.From(models.Leads.Name()), + sm.LeftJoin(models.ComplianceReportRequests.Name()).OnEQ( + models.Leads.Columns.ID, + models.ComplianceReportRequests.Columns.LeadID, ), - sm.From("lead"), sm.Where( models.Leads.Columns.SiteID.EQ(psql.Any(site_ids)), ), diff --git a/platform/types/compliance_report_request.go b/platform/types/compliance_report_request.go new file mode 100644 index 00000000..aaf57e1c --- /dev/null +++ b/platform/types/compliance_report_request.go @@ -0,0 +1,6 @@ +package types + +type ComplianceReportRequest struct { + ID int32 `db:"id" json:"id"` + PublicID string `db:"public_id" json:"public_id"` +} diff --git a/platform/types/lead.go b/platform/types/lead.go index 65197cb9..d9aee046 100644 --- a/platform/types/lead.go +++ b/platform/types/lead.go @@ -1,6 +1,9 @@ package types type Lead struct { - ID int32 `json:"id"` - SiteID int32 `json:"site_id"` + ComplianceReportRequest *ComplianceReportRequest `db:"-" json:"compliance_report_request"` + ComplianceReportRequestID *int32 `db:"compliance_report_request_id" json:"-"` + ID int32 `db:"id" json:"id"` + SiteID int32 `db:"site_id" json:"site_id"` + Type string `db:"type" json:"type"` }