package models import ( "log" "time" ) type AbsenceType struct { Value int8 Label string } const ( AbsenceNone int8 = iota AbsenceUrlaub AbsenceKurzarbeit AbsenceKrank AbsenceKindkrank ) var AbsenceTypes = []AbsenceType{ // {Value: AbsenceNone, Label: "Abwesenheit"}, {Value: AbsenceUrlaub, Label: "Urlaub"}, {Value: AbsenceKurzarbeit, Label: "Kurzarbeit"}, {Value: AbsenceKrank, Label: "Krank"}, {Value: AbsenceKindkrank, Label: "Kindkrank"}, } var AbsenceTypesLabel = map[int8]string{ 0: "None", AbsenceUrlaub: "Urlaub", AbsenceKurzarbeit: "Kurzarbeit", AbsenceKrank: "Krank", AbsenceKindkrank: "Kindkrank", } type Absence struct { CounterId int CardUID string AbwesenheitTyp int8 Datum time.Time } func NewAbsence(card_uid string, abwesenheit_typ int8, datum time.Time) Absence { return Absence{ CardUID: card_uid, AbwesenheitTyp: abwesenheit_typ, Datum: datum, } } func (a *Absence) Insert() error { qStr, err := DB.Prepare(`INSERT INTO abwesenheit (card_uid, abwesenheit_typ, datum) VALUES ($1, $2, $3) RETURNING counter_id;`) if err != nil { log.Println("Error preparing sql Statement", err) return err } err = qStr.QueryRow(a.CardUID, a.AbwesenheitTyp, a.Datum).Scan(&a.CounterId) if err != nil { log.Println("Error executing insert statement", err) return err } return nil } func (a *Absence) GetStringType() string { return AbsenceTypesLabel[a.AbwesenheitTyp] }