63 lines
1.6 KiB
Go
63 lines
1.6 KiB
Go
package holiday
|
|
|
|
import (
|
|
"github.com/google/uuid"
|
|
"time"
|
|
)
|
|
|
|
type Holiday struct {
|
|
Id uuid.UUID `db:"id"`
|
|
Country string `db:"country"`
|
|
Date time.Time `db:"date"`
|
|
Name string `db:"name"`
|
|
Description string `db:"description"`
|
|
IsStateHoliday bool `db:"is_state"`
|
|
IsReligiousHoliday bool `db:"is_religious"`
|
|
}
|
|
|
|
type Country struct {
|
|
Id uuid.UUID `db:"id"`
|
|
IsoName string `db:"iso_name"`
|
|
Name string `db:"name"`
|
|
}
|
|
|
|
type Paging struct {
|
|
PageSize int `form:"page_size" binging:"min=0"`
|
|
Page int `form:"page" binging:"min=0"`
|
|
}
|
|
|
|
type Search struct {
|
|
Country string `form:"country" binding:"len=2"`
|
|
Year *int `form:"year" binding:"omitempty,min=0"`
|
|
Date *time.Time `form:"date" time_format:"2006-01-02"`
|
|
RangeStart *time.Time `form:"range_start" time_format:"2006-01-02"`
|
|
RangeEnd *time.Time `form:"range_end" time_format:"2006-01-02"`
|
|
StateHoliday string `form:"state_holiday,omitempty" binding:"omitempty"`
|
|
ReligiousHoliday string `form:"religious_holiday,omitempty" binding:"omitempty"`
|
|
Type *string `form:"type,omitempty" binding:"omitempty"`
|
|
}
|
|
|
|
func (s Search) IsStateHoliday() *bool {
|
|
var value bool
|
|
if s.StateHoliday == "true" {
|
|
value = true
|
|
} else if s.StateHoliday == "false" {
|
|
value = false
|
|
} else {
|
|
return nil
|
|
}
|
|
return &value
|
|
}
|
|
|
|
func (s Search) IsReligiousHoliday() *bool {
|
|
var value bool
|
|
if s.ReligiousHoliday == "true" {
|
|
value = true
|
|
} else if s.ReligiousHoliday == "false" {
|
|
value = false
|
|
} else {
|
|
return nil
|
|
}
|
|
return &value
|
|
}
|