38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
from datetime import datetime, timezone
|
|
|
|
from ereuse_devicehub.db import db
|
|
|
|
STR_SIZE = 64
|
|
STR_BIG_SIZE = 128
|
|
STR_SM_SIZE = 32
|
|
STR_XSM_SIZE = 16
|
|
|
|
|
|
class Thing(db.Model):
|
|
"""The base class of all Devicehub resources.
|
|
|
|
This is a loose copy of
|
|
`schema.org's Thing class <https://schema.org/Thing>`_
|
|
using only needed fields.
|
|
"""
|
|
__abstract__ = True
|
|
updated = db.Column(db.TIMESTAMP(timezone=True),
|
|
nullable=False,
|
|
index=True,
|
|
server_default=db.text('CURRENT_TIMESTAMP'))
|
|
updated.comment = """
|
|
The last time Devicehub recorded a change for this thing.
|
|
"""
|
|
created = db.Column(db.TIMESTAMP(timezone=True),
|
|
nullable=False,
|
|
index=True,
|
|
server_default=db.text('CURRENT_TIMESTAMP'))
|
|
created.comment = """
|
|
When Devicehub created this.
|
|
"""
|
|
|
|
def __init__(self, **kwargs) -> None:
|
|
super().__init__(**kwargs)
|
|
if not self.created:
|
|
self.created = datetime.now(timezone.utc)
|