Files
Ronni Skansing d1f100968e added report delivery
Signed-off-by: Ronni Skansing <rskansing@gmail.com>
2026-06-13 12:46:49 +02:00

48 lines
1.6 KiB
Go

package model
import (
"time"
"github.com/google/uuid"
"github.com/oapi-codegen/nullable"
)
// ReportSendLog is one record of a report delivery attempt
type ReportSendLog struct {
ID nullable.Nullable[uuid.UUID] `json:"id"`
CreatedAt *time.Time `json:"createdAt"`
CompanyID nullable.Nullable[uuid.UUID] `json:"companyID"`
CampaignID nullable.Nullable[uuid.UUID] `json:"campaignID"`
CampaignName string `json:"campaignName"`
GroupName string `json:"groupName"`
Trigger string `json:"trigger"`
Status string `json:"status"`
RecipientCount int `json:"recipientCount"`
Recipients string `json:"recipients"`
SenderEmail string `json:"senderEmail"`
ErrorMessage string `json:"errorMessage"`
}
// ToDBMap converts the fields for persistence
func (r *ReportSendLog) ToDBMap() map[string]any {
m := map[string]any{}
m["campaign_name"] = r.CampaignName
m["group_name"] = r.GroupName
m["trigger"] = r.Trigger
m["status"] = r.Status
m["recipient_count"] = r.RecipientCount
m["recipients"] = r.Recipients
m["sender_email"] = r.SenderEmail
m["error_message"] = r.ErrorMessage
m["company_id"] = nil
if r.CompanyID.IsSpecified() && !r.CompanyID.IsNull() {
m["company_id"] = r.CompanyID.MustGet()
}
m["campaign_id"] = nil
if r.CampaignID.IsSpecified() && !r.CampaignID.IsNull() {
m["campaign_id"] = r.CampaignID.MustGet()
}
return m
}