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"` }