from django.db import models

# Create your models here.
from django.db import models

class NominationPlace(models.Model):
    place_id = models.BigIntegerField(primary_key=True)
    osm_type = models.CharField(max_length=10)
    osm_id = models.BigIntegerField(null=True, blank=True)
    lat = models.FloatField()
    lon = models.FloatField()
    category = models.CharField(max_length=50, null=True, blank=True)
    type = models.CharField(max_length=50, null=True, blank=True)
    name = models.CharField(max_length=255, null=True, blank=True)
    display_name = models.TextField(null=True, blank=True)
    addresstype = models.CharField(max_length=50, null=True, blank=True)
    place_rank = models.IntegerField(null=True, blank=True)
    importance = models.FloatField(null=True, blank=True)
    boundingbox = models.JSONField(null=True, blank=True)

    # Address components
    neighbourhood = models.CharField(max_length=255, null=True, blank=True)
    suburb = models.CharField(max_length=255, null=True, blank=True)
    city_district = models.CharField(max_length=255, null=True, blank=True)
    city = models.CharField(max_length=255, null=True, blank=True)
    county = models.CharField(max_length=255, null=True, blank=True)
    state_district = models.CharField(max_length=255, null=True, blank=True)
    state = models.CharField(max_length=255, null=True, blank=True)
    postcode = models.CharField(max_length=20, null=True, blank=True)
    country = models.CharField(max_length=255, null=True, blank=True)
    country_code = models.CharField(max_length=10, null=True, blank=True)
    iso3166_lvl4 = models.CharField(max_length=20, null=True, blank=True)

    def __str__(self):
        return self.display_name or self.name or f"Place {self.place_id}"


# geoapi/models.py

class PincodeUsageLog(models.Model):
    client_id = models.CharField(max_length=100)
    pincode = models.CharField(max_length=6)
    used_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return f"{self.client_id} - {self.pincode} at {self.used_at}"
