45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
from datetime import datetime
|
|
|
|
from peewee import *
|
|
|
|
database = DatabaseProxy() # use a proxy object, as we will init real db client inside web.py
|
|
|
|
|
|
class BaseModel(Model):
|
|
class Meta:
|
|
database = database
|
|
|
|
|
|
class Config(BaseModel):
|
|
|
|
id = BigAutoField()
|
|
key = CharField(unique=True)
|
|
value = TextField()
|
|
created_at = DateTimeField(default=datetime.now)
|
|
updated_at = DateTimeField(default=datetime.now)
|
|
|
|
# define table name
|
|
class Meta:
|
|
table_name = "config"
|
|
|
|
|
|
class LxmfMessage(BaseModel):
|
|
|
|
id = BigAutoField()
|
|
hash = CharField(unique=True) # unique lxmf message hash
|
|
source_hash = CharField(index=True)
|
|
destination_hash = CharField(index=True)
|
|
state = CharField() # state is converted from internal int to a human friendly string
|
|
progress = FloatField() # progress is converted from internal float 0.00-1.00 to float between 0.00/100 (2 decimal places)
|
|
is_incoming = BooleanField() # if true, we should ignore state, it's set to draft by default on incoming messages
|
|
title = TextField()
|
|
content = TextField()
|
|
fields = TextField() # json string
|
|
timestamp = FloatField() # timestamp of when the message was originally created (before ever being sent)
|
|
created_at = DateTimeField(default=datetime.now)
|
|
updated_at = DateTimeField(default=datetime.now)
|
|
|
|
# define table name
|
|
class Meta:
|
|
table_name = "lxmf_messages"
|