// 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 sf_gate_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"
)

// TaxType tax type
//
// swagger:model TaxType
type TaxType struct {

	// Authority Account Id
	Accountid string `json:"accountid,omitempty"`

	// The Accounting Rule Code used for GL Post
	Accountingrulecode string `json:"accountingrulecode,omitempty"`

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

	// Agency Type
	Agencytype string `json:"agencytype,omitempty"`

	// Collection Agent Id
	Agentid string `json:"agentid,omitempty"`

	// Category
	Category string `json:"category,omitempty"`

	// Collector Domain Id
	Collectordomainid string `json:"collectordomainid,omitempty"`

	// Company ID
	Companyid string `json:"companyid,omitempty"`

	// Authority Contact Id
	Contactid string `json:"contactid,omitempty"`

	// Created By User ID
	Createdbyid string `json:"createdbyid,omitempty"`

	// Created Date
	Createddate string `json:"createddate,omitempty"`

	// Description
	Description string `json:"description,omitempty"`

	// Effective Date
	Effectivedate string `json:"effectivedate,omitempty"`

	// End Date
	Enddate string `json:"enddate,omitempty"`

	// Enrollment Status
	Enrollmentstatus string `json:"enrollmentstatus,omitempty"`

	// Filing City
	Filingcity string `json:"filingcity,omitempty"`

	// Filing Country
	Filingcountry string `json:"filingcountry,omitempty"`

	// Filing Email
	Filingemail string `json:"filingemail,omitempty"`

	// Filing Method
	Filingmethod string `json:"filingmethod,omitempty"`

	// Filing Postal Code
	Filingpostalcode string `json:"filingpostalcode,omitempty"`

	// Filing State
	Filingstate string `json:"filingstate,omitempty"`

	// Filing Street
	Filingstreet string `json:"filingstreet,omitempty"`

	// Does this Tax Type use a Fractional Basis for calculation?
	Fractional bool `json:"fractional,omitempty"`

	// Frequency
	Frequency string `json:"frequency,omitempty"`

	// Geocode String
	Geocodestring string `json:"geocodestring,omitempty"`

	// Taxnexus Record Id
	ID string `json:"id,omitempty"`

	// Interest Rate
	Interestrate float64 `json:"interestrate,omitempty"`

	// Business Tax?
	Ismedicinal bool `json:"ismedicinal,omitempty"`

	// Cannabis Tax?
	Isrecreational bool `json:"isrecreational,omitempty"`

	// Rollup Amount
	Itemamount float64 `json:"itemamount,omitempty"`

	// Rollup Tax Items
	Itemcount float64 `json:"itemcount,omitempty"`

	// Last Modified By User ID
	Lastmodifiedbyid string `json:"lastmodifiedbyid,omitempty"`

	// Last Modified Date
	Lastmodifieddate string `json:"lastmodifieddate,omitempty"`

	// The wholesale markup rate for Excise tax (CA cannabis)
	Markuprate float64 `json:"markuprate,omitempty"`

	// Tax Type Name (unique)
	Name string `json:"name,omitempty"`

	// Is this tax allowed to be passed-through to retail customers?
	Passthrough bool `json:"passthrough,omitempty"`

	// Number of days until penalty is assessed
	Penaltydays int64 `json:"penaltydays,omitempty"`

	// The percentage rate of a penalty (per month)
	Penaltyrate float64 `json:"penaltyrate,omitempty"`

	// Tax Rate
	Rate float64 `json:"rate,omitempty"`

	// Tax Website Reference
	Reference string `json:"reference,omitempty"`

	// Salesregulation Code for this TaxType
	Salesregulation string `json:"salesregulation,omitempty"`

	// TaxType Document Status
	Status string `json:"status,omitempty"`

	// Taxnexus Code Id
	Taxnexuscodeid string `json:"taxnexuscodeid,omitempty"`

	// The Tax Type number assigned by Taxnexus
	Taxnexusnumber string `json:"taxnexusnumber,omitempty"`

	// Rendering Template Id
	Templateid string `json:"templateid,omitempty"`

	// Rollup Unit Base
	Unitbase float64 `json:"unitbase,omitempty"`

	// Units
	Units string `json:"units,omitempty"`
}

// Validate validates this tax type
func (m *TaxType) Validate(formats strfmt.Registry) error {
	return nil
}

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

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