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

package models

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

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

	"github.com/go-openapi/errors"
	"github.com/go-openapi/swag"
	"github.com/go-openapi/validate"
)

// GetCharactersCharacterIDNotificationsContactsOKBodyItems get_characters_character_id_notifications_contacts_200_ok
//
// 200 ok object
// swagger:model getCharactersCharacterIdNotificationsContactsOKBodyItems

type GetCharactersCharacterIDNotificationsContactsOKBodyItems struct {

	// get_characters_character_id_notifications_contacts_message
	//
	// message string
	// Required: true
	Message *string `json:"message"`

	// get_characters_character_id_notifications_contacts_notification_id
	//
	// notification_id integer
	// Required: true
	NotificationID *int32 `json:"notification_id"`

	// get_characters_character_id_notifications_contacts_send_date
	//
	// send_date string
	// Required: true
	SendDate *strfmt.DateTime `json:"send_date"`

	// get_characters_character_id_notifications_contacts_sender_character_id
	//
	// sender_character_id integer
	// Required: true
	SenderCharacterID *int32 `json:"sender_character_id"`

	// get_characters_character_id_notifications_contacts_standing_level
	//
	// A number representing the standing level the receiver has been added at by the sender. The standing levels are as follows: -10 -> Terrible | -5 -> Bad |  0 -> Neutral |  5 -> Good |  10 -> Excellent
	// Required: true
	StandingLevel *float32 `json:"standing_level"`
}

/* polymorph getCharactersCharacterIdNotificationsContactsOKBodyItems message false */

/* polymorph getCharactersCharacterIdNotificationsContactsOKBodyItems notification_id false */

/* polymorph getCharactersCharacterIdNotificationsContactsOKBodyItems send_date false */

/* polymorph getCharactersCharacterIdNotificationsContactsOKBodyItems sender_character_id false */

/* polymorph getCharactersCharacterIdNotificationsContactsOKBodyItems standing_level false */

// Validate validates this get characters character Id notifications contacts o k body items
func (m *GetCharactersCharacterIDNotificationsContactsOKBodyItems) Validate(formats strfmt.Registry) error {
	var res []error

	if err := m.validateMessage(formats); err != nil {
		// prop
		res = append(res, err)
	}

	if err := m.validateNotificationID(formats); err != nil {
		// prop
		res = append(res, err)
	}

	if err := m.validateSendDate(formats); err != nil {
		// prop
		res = append(res, err)
	}

	if err := m.validateSenderCharacterID(formats); err != nil {
		// prop
		res = append(res, err)
	}

	if err := m.validateStandingLevel(formats); err != nil {
		// prop
		res = append(res, err)
	}

	if len(res) > 0 {
		return errors.CompositeValidationError(res...)
	}
	return nil
}

func (m *GetCharactersCharacterIDNotificationsContactsOKBodyItems) validateMessage(formats strfmt.Registry) error {

	if err := validate.Required("message", "body", m.Message); err != nil {
		return err
	}

	return nil
}

func (m *GetCharactersCharacterIDNotificationsContactsOKBodyItems) validateNotificationID(formats strfmt.Registry) error {

	if err := validate.Required("notification_id", "body", m.NotificationID); err != nil {
		return err
	}

	return nil
}

func (m *GetCharactersCharacterIDNotificationsContactsOKBodyItems) validateSendDate(formats strfmt.Registry) error {

	if err := validate.Required("send_date", "body", m.SendDate); err != nil {
		return err
	}

	if err := validate.FormatOf("send_date", "body", "date-time", m.SendDate.String(), formats); err != nil {
		return err
	}

	return nil
}

func (m *GetCharactersCharacterIDNotificationsContactsOKBodyItems) validateSenderCharacterID(formats strfmt.Registry) error {

	if err := validate.Required("sender_character_id", "body", m.SenderCharacterID); err != nil {
		return err
	}

	return nil
}

func (m *GetCharactersCharacterIDNotificationsContactsOKBodyItems) validateStandingLevel(formats strfmt.Registry) error {

	if err := validate.Required("standing_level", "body", m.StandingLevel); err != nil {
		return err
	}

	return nil
}

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

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