# coding: utf-8

from __future__ import absolute_import
from image_hash.models.metadata import Metadata
from .base_model_ import Model
from datetime import date, datetime
from typing import List, Dict
from ..util import deserialize_model


class ImageMatchSearchItem(Model):
    """
    NOTE: This class is auto generated by the swagger code generator program.
    Do not edit the class manually.
    """
    def __init__(self, score=None, filepath=None, metadata=None):
        """
        ImageMatchSearchItem - a model defined in Swagger

        :param score: The score of this ImageMatchSearchItem.
        :type score: float
        :param filepath: The filepath of this ImageMatchSearchItem.
        :type filepath: str
        :param metadata: The metadata of this ImageMatchSearchItem.
        :type metadata: Metadata
        """
        self.swagger_types = {
            'score': float,
            'filepath': str,
            'metadata': Metadata
        }

        self.attribute_map = {
            'score': 'score',
            'filepath': 'filepath',
            'metadata': 'metadata'
        }

        self._score = score
        self._filepath = filepath
        self._metadata = metadata

    @classmethod
    def from_dict(cls, dikt):
        """
        Returns the dict as a model

        :param dikt: A dict.
        :type: dict
        :return: The ImageMatchSearchItem of this ImageMatchSearchItem.
        :rtype: ImageMatchSearchItem
        """
        return deserialize_model(dikt, cls)

    @property
    def score(self):
        """
        Gets the score of this ImageMatchSearchItem.

        :return: The score of this ImageMatchSearchItem.
        :rtype: float
        """
        return self._score

    @score.setter
    def score(self, score):
        """
        Sets the score of this ImageMatchSearchItem.

        :param score: The score of this ImageMatchSearchItem.
        :type score: float
        """

        self._score = score

    @property
    def filepath(self):
        """
        Gets the filepath of this ImageMatchSearchItem.

        :return: The filepath of this ImageMatchSearchItem.
        :rtype: str
        """
        return self._filepath

    @filepath.setter
    def filepath(self, filepath):
        """
        Sets the filepath of this ImageMatchSearchItem.

        :param filepath: The filepath of this ImageMatchSearchItem.
        :type filepath: str
        """

        self._filepath = filepath

    @property
    def metadata(self):
        """
        Gets the metadata of this ImageMatchSearchItem.

        :return: The metadata of this ImageMatchSearchItem.
        :rtype: Metadata
        """
        return self._metadata

    @metadata.setter
    def metadata(self, metadata):
        """
        Sets the metadata of this ImageMatchSearchItem.

        :param metadata: The metadata of this ImageMatchSearchItem.
        :type metadata: Metadata
        """

        self._metadata = metadata

