from __future__ import annotations

from rest_framework import serializers


class GuestXmlExportRequestSerializer(serializers.Serializer):
    structure_id = serializers.IntegerField(min_value=1)
    start_date = serializers.DateField()
    end_date = serializers.DateField()

    def validate(self, attrs):
        if attrs["end_date"] < attrs["start_date"]:
            raise serializers.ValidationError(
                {"end_date": "end_date must be greater than or equal to start_date."}
            )
        return attrs


class C59XmlExportRequestSerializer(serializers.Serializer):
    structure_id = serializers.IntegerField(min_value=1)
    report_date = serializers.DateField()
    validate_xsd = serializers.BooleanField(required=False, default=False)
    xsd_path = serializers.CharField(required=False, allow_blank=False)


class C59ZipExportRequestSerializer(serializers.Serializer):
    structure_id = serializers.IntegerField(min_value=1)
    start_date = serializers.DateField()
    end_date = serializers.DateField()

    def validate(self, attrs):
        if attrs["end_date"] < attrs["start_date"]:
            raise serializers.ValidationError(
                {"end_date": "end_date must be greater than or equal to start_date."}
            )
        return attrs
