Documentation
¶
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AuthenticSource ¶
type EHICDocument ¶
type EHICDocument struct {
PersonalAdministrativeNumber string `json:"personal_administrative_number" bson:"personalAdministrativeNumber" validate:"required,min=4,max=50"`
IssuingAuthority IssuingAuthority `json:"issuing_authority" bson:"issuingAuthority" validate:"required"`
IssuingCountry string `json:"issuing_country" bson:"issuingCountry" validate:"required,iso3166_1_alpha2"`
DateOfExpiry string `json:"date_of_expiry" bson:"dateOfExpiry" validate:"required"`
DateOfIssuance string `json:"date_of_issuance" bson:"dateOfIssuance" validate:"required"`
DocumentNumber string `json:"document_number" bson:"documentNumber" validate:"required,min=4,max=50"`
AuthenticSource AuthenticSource `json:"authentic_source" bson:"authenticSource" validate:"required"`
EndingDate string `json:"ending_date" bson:"endingDate" validate:"required"`
StartingDate string `json:"starting_date" bson:"startingDate" validate:"required"`
}
EHICDocument is the EHIC model
func (*EHICDocument) Marshal ¶
func (d *EHICDocument) Marshal() (map[string]any, error)
Marshal marshals the document to a map
Example ¶
package main
import (
"fmt"
"github.com/SUNET/vc/pkg/socialsecurity"
)
func main() {
doc := &socialsecurity.EHICDocument{
PersonalAdministrativeNumber: "123456789",
IssuingAuthority: socialsecurity.IssuingAuthority{
ID: "auth-001",
Name: "National Health Authority",
},
IssuingCountry: "SE",
DateOfExpiry: "2026-12-31",
DateOfIssuance: "2024-01-01",
DocumentNumber: "EHIC-0001",
AuthenticSource: socialsecurity.AuthenticSource{
ID: "src-001",
Name: "Swedish Social Insurance Agency",
},
EndingDate: "2026-12-31",
StartingDate: "2024-01-01",
}
m, err := doc.Marshal()
if err != nil {
fmt.Println("error:", err)
return
}
fmt.Println("issuing_country:", m["issuing_country"])
fmt.Println("document_number:", m["document_number"])
fmt.Println("date_of_expiry:", m["date_of_expiry"])
}
Output: issuing_country: SE document_number: EHIC-0001 date_of_expiry: 2026-12-31
type IssuingAuthority ¶
type PDA1Document ¶
type PDA1Document struct {
PersonalAdministrativeNumber string `json:"personal_administrative_number" bson:"personal_administrative_number" validate:"required,min=4,max=50"`
Employer Employer `json:"employer" bson:"employer" validate:"required"`
WorkAddress WorkAddress `json:"work_address" bson:"work_address" validate:"required"`
IssuingAuthority IssuingAuthority `json:"issuing_authority" bson:"issuing_authority" validate:"required,iso3166_1_alpha2"`
LegislationCountry string `json:"legislation_country" bson:"legislation_country" validate:"required,iso3166_1_alpha2"`
StatusConfirmation string `json:"status_confirmation" bson:"status_confirmation" validate:"required,oneof=02 03 04 05 06 07 08 09 10 11 12"`
IssuingCountry string `json:"issuing_country" bson:"issuing_country" validate:"required,iso3166_1_alpha2"`
DateOfExpiry string `json:"date_of_expiry" bson:"date_of_expiry" validate:"required"`
DateOfIssuance string `json:"date_of_issuance" bson:"date_of_issuance" validate:"required"`
DocumentNumber string `json:"document_number" bson:"document_number" validate:"required,min=4,max=50"`
AuthenticSource AuthenticSource `json:"authentic_source" bson:"authentic_source" validate:"required"`
EndingDate string `json:"ending_date" bson:"endingDate" validate:"required"`
StartingDate string `json:"starting_date" bson:"startingDate" validate:"required"`
}
PDA1Document model for PDA1
func (*PDA1Document) Marshal ¶
func (d *PDA1Document) Marshal() (map[string]any, error)
Marshal marshals the document to a map
Example ¶
package main
import (
"fmt"
"github.com/SUNET/vc/pkg/socialsecurity"
)
func main() {
doc := &socialsecurity.PDA1Document{
PersonalAdministrativeNumber: "987654321",
Employer: socialsecurity.Employer{
ID: "emp-001",
Name: "Example Corp",
Country: "SE",
},
WorkAddress: socialsecurity.WorkAddress{
Locality: "Stockholm",
Country: "SE",
},
IssuingAuthority: socialsecurity.IssuingAuthority{
ID: "auth-002",
Name: "Swedish Social Insurance Agency",
},
LegislationCountry: "SE",
StatusConfirmation: "02",
IssuingCountry: "SE",
DateOfExpiry: "2026-12-31",
DateOfIssuance: "2024-01-01",
DocumentNumber: "PDA1-0001",
AuthenticSource: socialsecurity.AuthenticSource{
ID: "src-002",
Name: "Swedish Social Insurance Agency",
},
EndingDate: "2026-12-31",
StartingDate: "2024-01-01",
}
m, err := doc.Marshal()
if err != nil {
fmt.Println("error:", err)
return
}
fmt.Println("issuing_country:", m["issuing_country"])
fmt.Println("document_number:", m["document_number"])
fmt.Println("status_confirmation:", m["status_confirmation"])
}
Output: issuing_country: SE document_number: PDA1-0001 status_confirmation: 02
type WorkAddress ¶
type WorkAddress struct {
Formatted string `json:"formatted" bson:"formatted" validate:"omitempty,min=2,max=512"`
Street_address string `json:"street_address" bson:"street_address" validate:"omitempty,min=1,max=100"`
House_number string `json:"house_number" bson:"house_number" validate:"omitempty,min=1,max=20"`
Postal_code string `json:"postal_code" bson:"postal_code" validate:"omitempty,min=1,max=20"`
Locality string `json:"locality" bson:"locality" validate:"required,min=1,max=100"`
Region string `json:"region" bson:"region" validate:"omitempty,min=1,max=100"`
Country string `json:"country" bson:"country" validate:"required,iso3166_1_alpha2"`
}
Click to show internal directories.
Click to hide internal directories.