package mail // SendCancelled confirms a cancellation and states what stays true: the licence // keeps working until it expires, then the instance degrades to read-only. func (s Sender) SendCancelled(to, instanceName string) error { return s.sendTemplate(to, "", "cancelled", s.billingData(instanceName)) } // SendPastDue notifies of a failed charge without alarming: the licence is // untouched while Paddle retries the card. func (s Sender) SendPastDue(to, instanceName string) error { return s.sendTemplate(to, "", "pastdue", s.billingData(instanceName)) } func (s Sender) billingData(instanceName string) any { return struct { InstanceName string PortalURL string }{instanceName, s.PublicURL} }