-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodels.py
More file actions
78 lines (62 loc) · 2.71 KB
/
models.py
File metadata and controls
78 lines (62 loc) · 2.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import peewee
import uuid
from secrets import token_urlsafe
import re
from database import db
import datetime
from user import User
from playhouse.postgres_ext import *
# from playhouse.postgres_ext import ArrayField
import logging
logger = logging.getLogger('peewee')
logger.setLevel(logging.ERROR)
class Server(peewee.Model):
uuid = peewee.UUIDField(primary_key=True, default=uuid.uuid4)
nft = peewee.CharField(unique=True) #: ['openvpn', 'mess']
updated_at = peewee.DateTimeField(default=datetime.datetime.now)
created_at = peewee.DateTimeField(default=datetime.datetime.now)
name = peewee.CharField(null=False, unique = True)
description = peewee.TextField(null=True)
address = peewee.CharField(null=False)
type = peewee.CharField(null=True, default='OpenVPN') #: ['openvpn', 'mess']
port = peewee.IntegerField(default=1194)
status = peewee.CharField(null=False, default='active') #: ['active', 'inactive']
icon = peewee.CharField(null=True) #: ['free', 'premium']
countryISO = peewee.CharField(null=True)
platform = peewee.CharField(null=True) #: ['android', 'free']
raw_config = peewee.TextField(null=True)
class Meta:
database = db
class ServerRequest(peewee.Model):
uuid = peewee.UUIDField(primary_key=True, default=uuid.uuid4)
updated_at = peewee.DateTimeField(default=datetime.datetime.now)
created_at = peewee.DateTimeField(default=datetime.datetime.now)
email = peewee.CharField(null=True)
user_id = peewee.ForeignKeyField(User, backref="user")
type = peewee.CharField(null=False, default='OpenVPN') #: ['openvpn', 'mess']
raw_config = peewee.TextField(null=True)
class Meta:
database = db
class Subscription(peewee.Model):
user_id = peewee.ForeignKeyField(User, backref="user")
uuid = peewee.UUIDField(primary_key=True, default=uuid.uuid4)
txid = peewee.CharField(null=True)
expires_at = peewee.DateTimeField(null=True)
type = peewee.CharField(null=False, default="SUBSCRIPTION")
status = peewee.CharField(null=False, default='')
deviceLimit = peewee.IntegerField(default=3)
devicesLinked = peewee.IntegerField(default=0)
updatedAt = peewee.DateTimeField(null=True)
raw = JSONField(null=True)
class Meta:
database = db
class Session(peewee.Model):
user_id = peewee.ForeignKeyField(User, backref="user")
address = peewee.CharField(null=False)
uuid = peewee.UUIDField(primary_key=True, default=uuid.uuid4)
started_at = peewee.DateTimeField(null=False, default=datetime.datetime.now)
state = peewee.CharField(null=False, default="start")
end_at = peewee.DateTimeField(null=True)
device_data = JSONField(null=True)
class Meta:
database = db