# -*- coding: utf-8 -*-
from collections import OrderedDict

from rest_framework.response import Response


class TimerFieldSupportMixin:
    def options(self, request, *args, **kwargs):
        """
        Add information about the optional "timer" field.
        """
        meta = self.metadata_class()
        data = meta.determine_metadata(request, self)
        post = data.get("actions").get("POST")  # type: OrderedDict
        post["timer"] = OrderedDict(
            {
                "type": "integer",
                "required": False,
                "read_only": False,
                "label": "Timer",
                "details": "ID for an existing Timer, may be used in place of the "
                "`start`, `end`, and/or `child` fields. ",
            }
        )
        details = "Required unless a value is provided in the `timer` field."
        post["child"]["details"] = details
        post["start"]["details"] = details
        post["end"]["details"] = details
        return Response(data)