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"` CombinedGroupName string `json:"combined_group_name" validate:"optional"` 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"` SelfServiceLink string `json:"self_service_link" validate:"required"` } 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"` SepaConfig *SepaConfig `json:"sepa_config"` } type SepaConfig struct { IBAN string `json:"iban" validate:"required"` HolderName string `json:"holder_name" validate:"required"` BIC string `json:"bic" validate:"required"` CurrencyIdentifier string `json:"currency_identifier" validate:"required"` }