package model import ( "fmt" "github.com/tech/sendico/pkg/merrors" "go.mongodb.org/mongo-driver/bson" ) type RussianBankAccountPaymentData struct { RecipientName string `bson:"recipientName" json:"recipientName"` Inn string `bson:"inn" json:"inn"` Kpp string `bson:"kpp" json:"kpp"` BankName string `bson:"bankName" json:"bankName"` Bik string `bson:"bik" json:"bik"` AccountNumber string `bson:"accountNumber" json:"accountNumber"` CorrespondentAccount string `bson:"correspondentAccount" json:"correspondentAccount"` } func (m *PaymentMethod) AsRussianBankAccount() (*RussianBankAccountPaymentData, error) { if m.Type != PaymentTypeBankAccount { return nil, merrors.InvalidArgument(fmt.Sprintf("payment method type is %s, not bankAccount", m.Type), "type") } var d RussianBankAccountPaymentData if err := bson.Unmarshal(m.Data, &d); err != nil { return nil, err } return &d, nil }