package port import ( "context" "github.com/orchard9/rdev/internal/domain" ) // NotifyProvisioner manages per-project email delivery on the notify service. // Each project gets its own isolated sending host (mail.{slug}.threesix.ai), // Resend domain with DKIM/SPF, and a dedicated notify account with send key. type NotifyProvisioner interface { // CreateProjectNotify provisions a notify host, Resend domain, DNS records, // and account with send key for the project. CreateProjectNotify(ctx context.Context, projectID, slug string) (*domain.NotifyCredentials, error) // DeleteProjectNotify removes all notify resources for a project: // the notify account, the per-project host, the Resend domain, and DNS records. DeleteProjectNotify(ctx context.Context, projectID, slug, resendDomainID string) error // GetProjectNotify returns notify credentials for a project, or nil if not provisioned. GetProjectNotify(ctx context.Context, projectID string) (*domain.NotifyCredentials, error) // TestConnection verifies the admin API key and notify service are reachable. TestConnection(ctx context.Context) error }