88 lines
2.8 KiB
Python
88 lines
2.8 KiB
Python
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)
|