from enum import Enum
from typing import ClassVar

from django.db import models


class ApplicationType(str, Enum):
    INDIVIDUAL = "individual"
    BUSINESS = "business"


class SMSVerification(models.Model):
    phone_number = models.CharField(max_length=20)
    verification_code = models.CharField(max_length=10)
    created_at = models.DateTimeField(auto_now_add=True)
    verified = models.BooleanField(default=False)

    class Meta:
        ordering: ClassVar[list[str]] = ["-created_at"]

    def __str__(self) -> str:
        return f"SMS verification for {self.phone_number}"

    def is_expired(self) -> bool:
        from datetime import timedelta

        from django.utils import timezone

        return timezone.now() - self.created_at > timedelta(minutes=10)


class IndividualApplication(models.Model):
    ktp = models.CharField(max_length=16)
    created_at = models.DateTimeField(auto_now_add=True)

    class Meta:
        ordering: ClassVar[list[str]] = ["-created_at"]

    def __str__(self) -> str:
        return f"Individual application - KTP: {self.ktp}"


class BusinessApplication(models.Model):
    director_id = models.CharField(max_length=16)
    akta = models.FileField(upload_to="applications/akta/")
    sk_kemenkumham = models.FileField(upload_to="applications/sk/")
    created_at = models.DateTimeField(auto_now_add=True)

    class Meta:
        ordering: ClassVar[list[str]] = ["-created_at"]

    def __str__(self) -> str:
        return f"Business application - Director: {self.director_id}"

Homonyms

cyberia/research/events/backend/cyber_valley/shaman_verification/models.py
cyberia/research/events/backend/cyber_valley/telegram_bot/models.py
cyberia/research/events/backend/cyber_valley/users/models.py
cyberia/research/events/backend/cyber_valley/geodata/models.py
cyberia/research/events/backend/cyber_valley/indexer/models.py
cyberia/research/events/backend/cyber_valley/notifications/models.py
cyberia/research/events/backend/cyber_valley/scripts/models.py
cyberia/research/events/backend/cyber_valley/events/models.py

Graph