42 lines
1.8 KiB
Go
42 lines
1.8 KiB
Go
package models
|
|
|
|
type CertificateRequest struct {
|
|
Runners []RunnerWithDonations `json:"runners" validate:"required"`
|
|
Locale string `json:"locale" enums:"en,de" validate:"required"`
|
|
}
|
|
|
|
type RunnerWithDonations struct {
|
|
ID int `json:"id" validate:"required"`
|
|
FirstName string `json:"first_name" validate:"required"`
|
|
MiddleName string `json:"middle_name" validate:"optional"`
|
|
LastName string `json:"last_name" validate:"required"`
|
|
Group Group `json:"group" validate:"required"`
|
|
Distance int `json:"distance" validate:"required"`
|
|
DistanceDonations []DistanceDonation `json:"distance_donations" validate:"optional"`
|
|
TotalPerDistance int `json:"total_per_distance" validate:"optional"`
|
|
TotalDonations int `json:"total_donations" validate:"optional"`
|
|
}
|
|
|
|
type DistanceDonation struct {
|
|
ID int `json:"id" validate:"required"`
|
|
Amount int `json:"amount"`
|
|
PaidAmount int `json:"paid_amount" validate:"optional"`
|
|
AmountPerDistance int `json:"amount_per_distance" validate:"required"`
|
|
Donor Donor `json:"donor" validate:"required"`
|
|
}
|
|
|
|
type Donor struct {
|
|
ID int `json:"id" validate:"required"`
|
|
FirstName string `json:"first_name" validate:"required"`
|
|
MiddleName string `json:"middle_name" validate:"optional"`
|
|
LastName string `json:"last_name" validate:"required"`
|
|
}
|
|
|
|
type CertificateTemplateOptions struct {
|
|
Runners []RunnerWithDonations `json:"runners"`
|
|
EventName string `json:"event_name"`
|
|
Footer string `json:"footer"`
|
|
CurrencySymbol string `json:"currency_symbol"`
|
|
Locale string `json:"locale"`
|
|
}
|