package domain import ( "encoding/json" "fmt" ) type ReportMetadataJSON struct { BranchID *int64 `json:"branch_id,omitempty"` Interval *string `json:"interval,omitempty"` IntervalStart *string `json:"interval_start,omitempty"` IntervalEnd *string `json:"interval_end,omitempty"` } func (r ReportMetadataJSON) ToPG() ([]byte, error) { metadata, err := json.Marshal(r) if err != nil { return nil, fmt.Errorf("failed to marshal report request metadata: %w", err) } return metadata, nil } func ParseReportMetadataJSON(jsonData []byte) (ReportMetadataJSON, error) { var metadata ReportMetadataJSON if err := json.Unmarshal(jsonData, &metadata); err != nil { return ReportMetadataJSON{}, err } return metadata, nil }