from django.db import models from apps.core.models import BaseModel class PaymentCompany(BaseModel): name_fa = models.CharField(max_length=250, null=True) name_en = models.CharField(max_length=250, null=True) activation = models.BooleanField(default=False) def __str__(self): return f'Payment Company: {self.name_fa}-{self.id}' def save(self, *args, **kwargs): return super(PaymentCompany, self).save(*args, **kwargs) class Device(BaseModel): acceptor = models.IntegerField(default=0) terminal = models.IntegerField(default=0) serial = models.TextField(null=True) password = models.CharField(max_length=25, null=True) multi_device = models.BooleanField(default=False) server_in = models.BooleanField(default=False) latitude = models.DecimalField(max_digits=20, decimal_places=10, null=True) longitude = models.DecimalField(max_digits=20, decimal_places=10, null=True) company = models.ForeignKey( PaymentCompany, on_delete=models.CASCADE, related_name='devices', null=True ) def __str__(self): return f'Device: {self.serial} - {self.id}' def save(self, *args, **kwargs): return super(Device, self).save(*args, **kwargs) class DeviceVersion(BaseModel): device = models.ForeignKey( Device, on_delete=models.CASCADE, related_name='devices', null=True ) company = models.ForeignKey( PaymentCompany, on_delete=models.CASCADE, related_name='devices', null=True ) name = models.CharField(max_length=250, null=True) code = models.IntegerField(default=0) description = models.TextField(null=True) enable = models.BooleanField(default=True) remove = models.BooleanField(default=False) def __str__(self): return f'Version: {self.name}-{self.device.serial}' def save(self, *args, **kwargs): return super(DeviceVersion, self).save(*args, **kwargs) class Sessions(BaseModel): device = models.ForeignKey( Device, on_delete=models.CASCADE, related_name='devices', null=True ) name = models.CharField(max_length=125, null=True) password = models.CharField(max_length=25, null=True) version = models.IntegerField(default=0) mac = models.CharField(max_length=50, null=True) ip = models.CharField(max_length=15, default='0.0.0.0') sdk = models.TextField(null=True) serial = models.TextField(null=True) latitude = models.DecimalField(max_digits=20, decimal_places=10, null=True) longitude = models.DecimalField(max_digits=20, decimal_places=10, null=True) def __str__(self): return f'Session: {self.name}-{self.version}-{self.id}' def save(self, *args, **kwargs): return super(Sessions, self).save(*args, **kwargs)