35 lines
1.0 KiB
Python
35 lines
1.0 KiB
Python
import enum
|
|
|
|
from sqlalchemy import Table, Column, Integer, String, Enum as SQLAEnum, JSON, ForeignKey, DateTime, Index
|
|
from sqlalchemy.sql import func
|
|
from enum import Enum, auto
|
|
|
|
from api.db.sql_types import UnsignedInt
|
|
|
|
from api.db import metadata
|
|
|
|
|
|
class EventState(enum.StrEnum):
|
|
AUTO = "AUTO"
|
|
DESCRIPTED = "DESCRIPTED"
|
|
|
|
|
|
class EventStatus(enum.StrEnum):
|
|
ACTIVE = "ACTIVE"
|
|
DISABLED = "DISABLED"
|
|
DELETED = "DELETED"
|
|
|
|
|
|
list_events_table = Table(
|
|
"list_events",
|
|
metadata,
|
|
Column("id", UnsignedInt, primary_key=True, autoincrement=True),
|
|
Column("name", String(40, collation="latin1_bin"), nullable=False, unique=True),
|
|
Column("title", String(64), nullable=False),
|
|
Column("creator_id", UnsignedInt, ForeignKey("account.id"), nullable=False),
|
|
Column("created_at", DateTime(timezone=True), server_default=func.now()),
|
|
Column("schema", JSON, default={}),
|
|
Column("state", SQLAEnum(EventState), nullable=False),
|
|
Column("status", SQLAEnum(EventStatus), nullable=False),
|
|
)
|