feat: publish standalone worker

Separate worker packaging and service lifecycle from the control plane.
Этот коммит содержится в:
Gleb Tv
2026-07-13 17:55:14 +03:00
Коммит 2c7a0236da
309 изменённых файлов: 44004 добавлений и 0 удалений

54
internal/workdays/workdays.go Обычный файл
Просмотреть файл

@@ -0,0 +1,54 @@
// Package workdays provides functionality.
package workdays
import (
"strconv"
"time"
"github.com/rickar/cal/v2"
)
// NewHoliday provides functionality.
func NewHoliday(month time.Month, day int) *cal.Holiday {
return &cal.Holiday{
Name: month.String() + " " + strconv.Itoa(day),
Month: month,
Day: day,
Func: cal.CalcDayOfMonth,
}
}
// GetCalendar provides functionality.
func GetCalendar() *cal.BusinessCalendar {
c := cal.NewBusinessCalendar()
// add holidays for the business
c.AddHoliday(
NewHoliday(time.January, 1),
NewHoliday(time.January, 2),
NewHoliday(time.January, 3),
NewHoliday(time.January, 4),
NewHoliday(time.January, 5),
NewHoliday(time.January, 6),
NewHoliday(time.January, 7),
NewHoliday(time.January, 8),
NewHoliday(time.February, 23),
NewHoliday(time.March, 8),
NewHoliday(time.May, 1),
NewHoliday(time.May, 9),
NewHoliday(time.June, 12),
NewHoliday(time.November, 4),
NewHoliday(time.December, 30),
NewHoliday(time.December, 31),
)
// optionally change the holiday calculation behavior
// (the default is US-style where weekend holidays are
// observed on the closest weekday)
// c.Observed = cal.ObservedExact
c.SetWorkday(time.Saturday, true)
c.SetWorkday(time.Sunday, true)
return c
}