package model import ( "fmt" "github.com/tech/sendico/pkg/merrors" "go.mongodb.org/mongo-driver/bson" ) type IbanPaymentData struct { Iban string `bson:"iban" json:"iban"` AccountHolder string `bson:"accountHolder" json:"accountHolder"` Bic *string `bson:"bic,omitempty" json:"bic,omitempty"` BankName *string `bson:"bankName,omitempty" json:"bankName,omitempty"` } func (m *PaymentMethod) AsIban() (*IbanPaymentData, error) { if m.Type != PaymentTypeIban { return nil, merrors.InvalidArgument(fmt.Sprintf("payment method type is %s, not iban", m.Type), "type") } var d IbanPaymentData if err := bson.Unmarshal(m.Data, &d); err != nil { return nil, err } return &d, nil }