44 lines
1.0 KiB
Go
44 lines
1.0 KiB
Go
package usecase
|
|
|
|
import (
|
|
"code.30cm.net/digimon/app-cloudep-notification-service/pkg/domain/repository"
|
|
"context"
|
|
)
|
|
|
|
type DeliveryUseCase interface {
|
|
SendMessage(ctx context.Context, req SMSMessageRequest) error
|
|
SendEmail(ctx context.Context, req MailReq) error
|
|
}
|
|
|
|
type MailReq struct {
|
|
To []string
|
|
From string
|
|
Subject string
|
|
Body string
|
|
}
|
|
|
|
type SMSMessageRequest struct {
|
|
PhoneNumber string `json:"phone_number" validate:"required,e164"` // 接收者號碼 (e164 格式用於驗證國際號碼)
|
|
RecipientName string `json:"recipient_name" validate:"required"` // 接收者姓名
|
|
MessageContent string `json:"message_content" validate:"required"` // 要傳送的訊息
|
|
}
|
|
|
|
type EmailTemplateResp struct {
|
|
Subject string `json:"subject"` // 郵件主題
|
|
Body string `json:"body"` // 郵件內容
|
|
}
|
|
|
|
type SMSTemplateResp struct {
|
|
Body string `json:"body"`
|
|
}
|
|
|
|
type SMSProvider struct {
|
|
Sort int64
|
|
Repo repository.SMSClientRepository
|
|
}
|
|
|
|
type EmailProvider struct {
|
|
Sort int64
|
|
Repo repository.MailRepository
|
|
}
|