from django.shortcuts import render

# Create your views here.
# geo/views.py
from rest_framework.decorators import api_view, permission_classes
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from .models import Location, LocationPart

@api_view(["GET"])
@permission_classes([IsAuthenticated])
def validate_pincode(request):
    pincode = (request.GET.get("pincode") or "").strip()
    if not pincode.isdigit() or len(pincode) != 6:
        return Response({"ok": False, "message": "Invalid pincode"}, status=400)

    loc = Location.objects.filter(pincode=pincode).select_related("state","district").first()
    if not loc:
        return Response({"ok": False, "message": "Pincode not found"}, status=404)

    parts = list(
        LocationPart.objects
        .filter(pincode=pincode)
        .values_list("nearby_location", flat=True)
        .order_by("nearby_location")
    )
    # If no parts, allow at least the base location name
    if not parts:
        parts = [loc.name]

    return Response({
        "ok": True,
        "pincode": pincode,
        "state": loc.state.name,
        "district": loc.district.name,
        "locations": parts,
        "city": loc.name,  # optional
    })
