// Code generated by go-swagger; DO NOT EDIT.

// All Code Copyright(c) 2018-2020 by Taxnexus, Inc.
// All rights reserved worldwide.
// Proprietary product; unlicensed use is not allowed

package ops_models

// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command

import (
	"github.com/go-openapi/strfmt"
	"github.com/go-openapi/swag"
)

// PaymentMethod Describes the EFT or other payment information for an account and billing contact
//
// swagger:model PaymentMethod
type PaymentMethod struct {

	// Account
	AccountID string `json:"AccountID,omitempty"`

	// ACH Account Type
	AchAccountType string `json:"AchAccountType,omitempty"`

	// ACH Bank Account
	AchBankAccount string `json:"AchBankAccount,omitempty"`

	// ACH Routing
	AchRouting string `json:"AchRouting,omitempty"`

	// Active?
	Active bool `json:"Active,omitempty"`

	// Autopay?
	Autopay bool `json:"Autopay,omitempty"`

	// Bank Name
	BankName string `json:"BankName,omitempty"`

	// Billing Contact
	BillingContactID string `json:"BillingContactID,omitempty"`

	// Credit Card Number
	CCnumber string `json:"CCnumber,omitempty"`

	// CC Type
	CCtype string `json:"CCtype,omitempty"`

	// Company
	CompanyID string `json:"CompanyID,omitempty"`

	// Contract
	ContractID string `json:"ContractID,omitempty"`

	// Created By
	CreatedByID string `json:"CreatedByID,omitempty"`

	// Created Date
	CreatedDate string `json:"CreatedDate,omitempty"`

	// Default Payment Method?
	Default bool `json:"Default,omitempty"`

	// Expiration Date
	ExpirationDate string `json:"ExpirationDate,omitempty"`

	// Expiration Month
	ExpirationMonth string `json:"ExpirationMonth,omitempty"`

	// Expiration Year
	ExpirationYear string `json:"ExpirationYear,omitempty"`

	// Gateway
	Gateway string `json:"Gateway,omitempty"`

	// Gateway Key
	GatewayKey string `json:"GatewayKey,omitempty"`

	// Telnexus Record Id
	ID string `json:"ID,omitempty"`

	// Last Modified By
	LastModifiedByID string `json:"LastModifiedByID,omitempty"`

	// Last Modified Date
	LastModifiedDate string `json:"LastModifiedDate,omitempty"`

	// Nickname
	Nickname string `json:"Nickname,omitempty"`

	// Record Type
	RecordType string `json:"RecordType,omitempty"`

	// External Reference
	Ref string `json:"Ref,omitempty"`

	// ID of the Tenant that owns this object
	TenantID string `json:"TenantID,omitempty"`
}

// Validate validates this payment method
func (m *PaymentMethod) Validate(formats strfmt.Registry) error {
	return nil
}

// MarshalBinary interface implementation
func (m *PaymentMethod) MarshalBinary() ([]byte, error) {
	if m == nil {
		return nil, nil
	}
	return swag.WriteJSON(m)
}

// UnmarshalBinary interface implementation
func (m *PaymentMethod) UnmarshalBinary(b []byte) error {
	var res PaymentMethod
	if err := swag.ReadJSON(b, &res); err != nil {
		return err
	}
	*m = res
	return nil
}
