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

// ProductCategory product category
//
// swagger:model ProductCategory
type ProductCategory struct {

	// can be remediated
	CanBeRemediated bool `json:"CanBeRemediated,omitempty"`

	// can contain seeds
	CanContainSeeds bool `json:"CanContainSeeds,omitempty"`

	// name
	Name string `json:"Name,omitempty"`

	// product category type
	ProductCategoryType string `json:"ProductCategoryType,omitempty"`

	// quantity type
	QuantityType string `json:"QuantityType,omitempty"`

	// requires administration method
	RequiresAdministrationMethod bool `json:"RequiresAdministrationMethod,omitempty"`

	// requires ingredients
	RequiresIngredients bool `json:"RequiresIngredients,omitempty"`

	// requires item brand
	RequiresItemBrand bool `json:"RequiresItemBrand,omitempty"`

	// requires product photo
	RequiresProductPhoto bool `json:"RequiresProductPhoto,omitempty"`

	// requires serving size
	RequiresServingSize bool `json:"RequiresServingSize,omitempty"`

	// requires strain
	RequiresStrain bool `json:"RequiresStrain,omitempty"`

	// requires supply duration days
	RequiresSupplyDurationDays bool `json:"RequiresSupplyDurationDays,omitempty"`

	// requires unit cbd content
	RequiresUnitCbdContent bool `json:"RequiresUnitCbdContent,omitempty"`

	// requires unit cbd percent
	RequiresUnitCbdPercent bool `json:"RequiresUnitCbdPercent,omitempty"`

	// requires unit thc content
	RequiresUnitThcContent bool `json:"RequiresUnitThcContent,omitempty"`

	// requires unit thc percent
	RequiresUnitThcPercent bool `json:"RequiresUnitThcPercent,omitempty"`

	// requires unit volume
	RequiresUnitVolume bool `json:"RequiresUnitVolume,omitempty"`

	// requires unit weight
	RequiresUnitWeight bool `json:"RequiresUnitWeight,omitempty"`
}

// Validate validates this product category
func (m *ProductCategory) Validate(formats strfmt.Registry) error {
	return nil
}

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

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