# Copyright 2017-present Open Networking Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


from django.forms import widgets
from rest_framework import serializers
from core.models import *


class DeploymentSerializer(serializers.HyperlinkedModelSerializer):

    # HyperlinkedModelSerializer doesn't include the id by default
    id = serializers.Field()
    sites = serializers.HyperlinkedRelatedField(view_name="site-detail")

    class Meta:
        model = Deployment
        fields = ("id", "url", "name", "sites")


class ImageSerializer(serializers.HyperlinkedModelSerializer):
    # HyperlinkedModelSerializer doesn't include the id by default
    id = serializers.Field()

    class Meta:
        model = Image
        fields = ("id", "url", "image_id", "name", "disk_format", "container_format")


class NodeSerializer(serializers.HyperlinkedModelSerializer):
    # HyperlinkedModelSerializer doesn't include the id by default
    id = serializers.Field()

    class Meta:
        model = Node
        fields = ("id", "url", "name")


class ProjectSerializer(serializers.HyperlinkedModelSerializer):
    # HyperlinkedModelSerializer doesn't include the id by default
    id = serializers.Field()

    class Meta:
        model = Project
        fields = ("id", "url", "name")


class ReservationSerializer(serializers.HyperlinkedModelSerializer):
    # HyperlinkedModelSerializer doesn't include the id by default
    id = serializers.Field()

    class Meta:
        model = Reservation
        fields = ("id", "url", "startTime", "slice", "duration", "endTime")


class RoleSerializer(serializers.HyperlinkedModelSerializer):
    # HyperlinkedModelSerializer doesn't include the id by default
    id = serializers.Field()

    class Meta:
        model = Role
        fields = ("id", "url", "role", "role_type")


class ServiceClassSerializer(serializers.HyperlinkedModelSerializer):
    # HyperlinkedModelSerializer doesn't include the id by default
    id = serializers.Field()

    class Meta:
        model = ServiceClass
        fields = (
            "id",
            "url",
            "name",
            "description",
            "commitment",
            "membershipFee",
            "membershipFeeMonths",
            "upgradeRequiresApproval",
            "upgradeFrom",
        )


class ServiceResourceSerializer(serializers.HyperlinkedModelSerializer):
    # HyperlinkedModelSerializer doesn't include the id by default
    id = serializers.Field()
    serviceClass = serializers.HyperlinkedRelatedField(view_name="serviceclass-detail")

    class Meta:
        model = ServiceResource
        fields = (
            "id",
            "url",
            "name",
            "serviceClass",
            "maxUnitsDeployment",
            "maxUnitsNode",
            "maxDuration",
            "bucketInRate",
            "bucketMaxSize",
            "cost",
            "calendarReservable",
        )


class SliceSerializer(serializers.HyperlinkedModelSerializer):
    # HyperlinkedModelSerializer doesn't include the id by default
    id = serializers.Field()
    site = serializers.HyperlinkedRelatedField(view_name="site-detail")
    instances = serializers.HyperlinkedRelatedField(view_name="instance-detail")

    class Meta:
        model = Slice
        fields = (
            "id",
            "url",
            "tenant_id",
            "enabled",
            "name",
            "url",
            "omf_friendly",
            "description",
            "slice_url",
            "network_id",
            "router_id",
            "subnet_id",
            "imagePreference",
            "network",
            "mountDataSets",
            "site",
            "instances",
            "updated",
            "created",
        )


class SlicePrivilegeSerializer(serializers.HyperlinkedModelSerializer):
    id = serializers.Field()
    slice = serializers.HyperlinkedRelatedField(view_name="slice-detail")
    user = serializers.HyperlinkedRelatedField(view_name="user-detail")
    role = serializers.HyperlinkedRelatedField(view_name="role-detail")

    class Meta:
        model = SlicePrivilege
        fields = ("id", "url", "user", "slice", "role")


class SiteSerializer(serializers.HyperlinkedModelSerializer):

    # Experimenting with whether to use ids, hyperlinks, or nested includes
    # slices = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
    # slices = serializers.RelatedField(many=True, read_only=True)
    # slices = SliceSerializer(many=True)
    # HyperlinkedModelSerializer doesn't include the id by default
    id = serializers.Field()
    slices = serializers.HyperlinkedRelatedField(
        many=True, read_only=True, view_name="slice-detail"
    )

    class Meta:
        model = Site
        fields = (
            "id",
            "url",
            "name",
            "slices",
            "site_url",
            "enabled",
            "longitude",
            "latitude",
            "login_base",
            "tenant_id",
            "is_public",
            "abbreviated_name",
            "updated",
            "created",
        )


class SitePrivilegeSerializer(serializers.HyperlinkedModelSerializer):
    id = serializers.Field()
    site = serializers.HyperlinkedRelatedField(view_name="site-detail")
    user = serializers.HyperlinkedRelatedField(view_name="user-detail")
    role = serializers.HyperlinkedRelatedField(view_name="role-detail")

    class Meta:
        model = SitePrivilege
        fields = ("id", "url", "user", "site", "role")


class InstanceSerializer(serializers.HyperlinkedModelSerializer):
    # HyperlinkedModelSerializer doesn't include the id by default
    id = serializers.Field()
    image = serializers.HyperlinkedRelatedField(view_name="image-detail")
    slice = serializers.HyperlinkedRelatedField(view_name="slice-detail")
    deploymentNetwork = serializers.HyperlinkedRelatedField(
        view_name="deployment-detail"
    )
    node = serializers.HyperlinkedRelatedField(view_name="node-detail")

    # slice = serializers.PrimaryKeyRelatedField(read_only=True)

    class Meta:
        model = Instance
        fields = (
            "id",
            "url",
            "instance_id",
            "name",
            "instance_name",
            "ip",
            "image",
            "slice",
            "deploymentNetwork",
            "node",
        )


class UserSerializer(serializers.HyperlinkedModelSerializer):
    # HyperlinkedModelSerializer doesn't include the id by default
    id = serializers.Field()
    site = serializers.HyperlinkedRelatedField(view_name="site-detail")
    slice_privileges = serializers.HyperlinkedRelatedField(
        view_name="sliceprivilege-detail"
    )
    site_privileges = serializers.HyperlinkedRelatedField(
        view_name="siteprivilege-detail"
    )

    class Meta:
        model = User
        fields = (
            "id",
            "url",
            "kuser_id",
            "firstname",
            "lastname",
            "email",
            "password",
            "phone",
            "public_key",
            "user_url",
            "is_admin",
            "slice_privileges",
            "site_privileges",
        )


class TagSerializer(serializers.HyperlinkedModelSerializer):
    # HyperlinkedModelSerializer doesn't include the id by default
    id = serializers.Field()
    project = serializers.HyperlinkedRelatedField(view_name="project-detail")
    # content_type = serializers.PrimaryKeyRelatedField(read_only=True)
    content_type = serializers.RelatedField(source="content_type")
    content_object = serializers.RelatedField(source="content_object")

    class Meta:
        model = Tag
        fields = (
            "id",
            "url",
            "project",
            "value",
            "content_type",
            "object_id",
            "content_object",
            "name",
        )


serializerLookUp = {
    Deployment: DeploymentSerializer,
    Image: ImageSerializer,
    Node: NodeSerializer,
    Project: ProjectSerializer,
    Reservation: ReservationSerializer,
    Role: RoleSerializer,
    ServiceClass: ServiceClassSerializer,
    ServiceResource: ServiceResourceSerializer,
    Site: SiteSerializer,
    SitePrivilege: SitePrivilegeSerializer,
    Slice: SliceSerializer,
    SlicePrivilege: SlicePrivilegeSerializer,
    Instance: InstanceSerializer,
    Tag: TagSerializer,
    User: UserSerializer,
    None: None,
}
