package ports

import "context"

// AuthService defines the interface for authentication logic.
type AuthService interface {
	HashPassword(password string) (string, error)
	VerifyPassword(hash, password string) bool
	GenerateToken(userID, tenantID string, roles []string) (string, error)
	ValidateToken(token string) (map[string]interface{}, error)
}

// EmailService defines the interface for sending emails.
type EmailService interface {
	SendTemplateEmail(ctx context.Context, to, templateSlug string, variables map[string]interface{}) error
}
