1
0
Fork 0
This repository has been archived on 2025-09-02. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
mareshq-yggdrasil/pkg/training/model.go

77 lines
1.4 KiB
Go

package training
import (
"time"
"github.com/google/uuid"
"github.com/shopspring/decimal"
"gitlab.mareshq.com/hq/yggdrasil/internal/money"
)
type TrainingID = uuid.UUID
func NewTrainingID() TrainingID {
return uuid.Must(uuid.NewV7())
}
type Training struct {
ID TrainingID
Name string
Days int8
Description string
Pricing []TrainingPrice
}
type TrainingPrice struct {
Amount decimal.Decimal
Currency money.Currency
Type TrainingPriceType
}
type TrainingPriceType string
const (
OpenTrainingPrice TrainingPriceType = "OPEN"
CorporateTrainingPrice TrainingPriceType = "CORPORATE"
)
type TrainingDateID = uuid.UUID
func NewTrainingDateID() TrainingDateID {
return uuid.Must(uuid.NewV7())
}
type TrainingDate struct {
trainingID TrainingID
ID TrainingDateID
Date time.Time
StartTime time.Time
Days int8
IsOnline bool
Location string
Address string
Capacity int8
Price money.Price
}
type TrainingDateAttendeeID = uuid.UUID
func NewTrainingDateAttendeeID() TrainingDateAttendeeID {
return uuid.Must(uuid.NewV7())
}
type TrainingDateAttendee struct {
trainingDateID TrainingDateID
ID TrainingDateAttendeeID
Name string
Email string
Phone string
Company string
Position string
Bill money.Price
IsStudent bool
HasPaid bool
HasAttended bool
}