Projeto bot pontos
This commit is contained in:
51
backend/internal/domain/notification.go
Normal file
51
backend/internal/domain/notification.go
Normal file
@@ -0,0 +1,51 @@
|
||||
package domain
|
||||
|
||||
import "time"
|
||||
|
||||
type NotificationType string
|
||||
|
||||
const (
|
||||
NotificationEntrada2 NotificationType = "entrada2"
|
||||
NotificationSaida2 NotificationType = "saida2"
|
||||
)
|
||||
|
||||
type NotificationStatus string
|
||||
|
||||
const (
|
||||
NotificationScheduled NotificationStatus = "scheduled"
|
||||
NotificationSending NotificationStatus = "sending"
|
||||
NotificationSent NotificationStatus = "sent"
|
||||
NotificationFailed NotificationStatus = "failed"
|
||||
NotificationCancelled NotificationStatus = "cancelled"
|
||||
NotificationExpired NotificationStatus = "expired"
|
||||
)
|
||||
|
||||
type Notification struct {
|
||||
ID int64
|
||||
UserID int64
|
||||
ReferenceDate string
|
||||
Type NotificationType
|
||||
ScheduledAt time.Time // quando o aviso deve sair
|
||||
PredictedAt time.Time // horário previsto do ponto (retorno ou saída)
|
||||
Status NotificationStatus
|
||||
Attempts int
|
||||
LockedAt *time.Time
|
||||
SentAt *time.Time
|
||||
TelegramMessageID *int64
|
||||
ErrorMessage *string
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
}
|
||||
|
||||
func ValidNotificationType(t string) bool {
|
||||
return t == string(NotificationEntrada2) || t == string(NotificationSaida2)
|
||||
}
|
||||
|
||||
func ValidNotificationStatus(s string) bool {
|
||||
switch NotificationStatus(s) {
|
||||
case NotificationScheduled, NotificationSending, NotificationSent,
|
||||
NotificationFailed, NotificationCancelled, NotificationExpired:
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
Reference in New Issue
Block a user