package notify

import (
	"context"
	"time"

	"git.huangwc.com/pig/pig-farm-controller/internal/infra/models"
)

// DefaultTimeFormat 定义了所有通知中统一使用的时间格式。
const DefaultTimeFormat = "2006-01-02 15:04:05"

// AlarmContent 定义了通知的内容
type AlarmContent struct {
	// 通知标题
	Title string
	// 通知信息
	Message string
	// 通知级别
	Level models.SeverityLevel
	// 通知时间
	Timestamp time.Time
}

// Notifier 定义了通知发送器的接口
type Notifier interface {
	// Send 发送通知
	Send(ctx context.Context, content AlarmContent, toAddr string) error
	// Type 返回通知器的类型
	Type() models.NotifierType
}
