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

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

package sfgate_models

import (
	"context"

	"github.com/go-openapi/strfmt"
	"github.com/go-openapi/swag/jsonutils"
)

// Prompt A prompt
//
// swagger:model Prompt
type Prompt struct {

	// The ID of the user who created the prompt
	CreatedByID *string `json:"CreatedByID,omitempty"`

	// The date the prompt was created
	CreatedDate *string `json:"CreatedDate,omitempty"`

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

	// The icon for the prompt
	Icon *string `json:"Icon,omitempty"`

	// The alt text for the prompt image
	ImageAltText *string `json:"ImageAltText,omitempty"`

	// The URL of the prompt image
	ImageURL *string `json:"ImageURL,omitempty"`

	// The ID of the user who last modified the prompt
	LastModifiedByID *string `json:"LastModifiedByID,omitempty"`

	// The date the prompt was last modified
	LastModifiedDate *string `json:"LastModifiedDate,omitempty"`

	// The logo for the prompt
	Logo *string `json:"Logo,omitempty"`

	// The model for the prompt
	Model *string `json:"Model,omitempty"`

	// The name of the prompt
	Name *string `json:"Name,omitempty"`

	// The order of the prompt
	Order *float64 `json:"Order,omitempty"`

	// A list of parameters encoded as JSON
	Parameters *string `json:"Parameters,omitempty"`

	// The prompt text
	Prompt *string `json:"Prompt,omitempty"`

	// The ID of the prompt category
	PromptCategoryID *string `json:"PromptCategoryID,omitempty"`

	// A list of research project IDs
	ResearchProjectIDs []string `json:"ResearchProjectIDs"`

	// The slug for the prompt
	Slug *string `json:"Slug,omitempty"`

	// The System prompt to be used
	SystemPrompt *string `json:"SystemPrompt,omitempty"`

	// A list of tags (from salesforce newline separated)
	Tags *string `json:"Tags,omitempty"`

	// The temperature of the prompt
	Temperature *float64 `json:"Temperature,omitempty"`

	// The ID of the tenant
	TenantID *string `json:"TenantID,omitempty"`

	// The title of the prompt
	Title *string `json:"Title,omitempty"`

	// The number of times the prompt has been used
	UsedCount *float64 `json:"UsedCount,omitempty"`

	// The ID of the user who created the prompt
	UserID *string `json:"UserID,omitempty"`
}

// Validate validates this prompt
func (m *Prompt) Validate(formats strfmt.Registry) error {
	return nil
}

// ContextValidate validates this prompt based on context it is used
func (m *Prompt) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
	return nil
}

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

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