Projeto bot pontos
This commit is contained in:
44
backend/internal/domain/day.go
Normal file
44
backend/internal/domain/day.go
Normal file
@@ -0,0 +1,44 @@
|
||||
package domain
|
||||
|
||||
import "time"
|
||||
|
||||
// DayStatus é a situação de um usuário num dia (ARQUITETURA.md 9.12).
|
||||
type DayStatus string
|
||||
|
||||
const (
|
||||
DayAwaiting DayStatus = "awaiting"
|
||||
DayNoPoints DayStatus = "no_points"
|
||||
DayWorking DayStatus = "working"
|
||||
DayNotWorking DayStatus = "not_working"
|
||||
DayFinished DayStatus = "finished"
|
||||
)
|
||||
|
||||
type ResumeSource string
|
||||
|
||||
const (
|
||||
ResumeAtivarPonto ResumeSource = "ativarponto"
|
||||
ResumeEntrada2 ResumeSource = "entrada2"
|
||||
ResumeSaida2 ResumeSource = "saida2"
|
||||
ResumeWeb ResumeSource = "web"
|
||||
)
|
||||
|
||||
type UserDay struct {
|
||||
UserID int64
|
||||
Day string
|
||||
Status DayStatus
|
||||
ZeroPointChecks int
|
||||
LastPointCount int
|
||||
NextCheckAt *time.Time
|
||||
ResumedBy *ResumeSource
|
||||
UpdatedAt time.Time
|
||||
}
|
||||
|
||||
// NewUserDay é a situação inicial de um dia ainda não consultado.
|
||||
func NewUserDay(userID int64, day string) UserDay {
|
||||
return UserDay{UserID: userID, Day: day, Status: DayAwaiting}
|
||||
}
|
||||
|
||||
// IsClosedWithoutPoints indica um dia sem pontos (em reverificação ou encerrado).
|
||||
func (d UserDay) IsClosedWithoutPoints() bool {
|
||||
return d.Status == DayNoPoints || d.Status == DayNotWorking
|
||||
}
|
||||
Reference in New Issue
Block a user