mirror of
https://github.com/creyD/creyPY.git
synced 2026-04-13 11:50:31 +02:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 52307f6028 | |||
| 8019b566f2 |
@@ -1,5 +1,5 @@
|
|||||||
import uuid
|
import uuid
|
||||||
from datetime import datetime
|
from datetime import datetime, timezone
|
||||||
|
|
||||||
from sqlalchemy import Column, DateTime, String
|
from sqlalchemy import Column, DateTime, String
|
||||||
from sqlalchemy.dialects.postgresql import UUID
|
from sqlalchemy.dialects.postgresql import UUID
|
||||||
@@ -14,15 +14,30 @@ class Base:
|
|||||||
# Primary key as uuid
|
# Primary key as uuid
|
||||||
id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
|
id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
|
||||||
created_at = Column(DateTime(timezone=True), server_default=func.now())
|
created_at = Column(DateTime(timezone=True), server_default=func.now())
|
||||||
updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
|
updated_at = Column(
|
||||||
|
DateTime(timezone=True),
|
||||||
|
default=lambda: datetime.now(timezone.utc),
|
||||||
|
onupdate=lambda: datetime.now(timezone.utc),
|
||||||
|
)
|
||||||
created_by_id = Column(String)
|
created_by_id = Column(String)
|
||||||
|
|
||||||
__name__: str
|
__name__: str
|
||||||
|
|
||||||
# TODO: Add default representation string
|
|
||||||
# TODO: Add automated foreign key resolution
|
# TODO: Add automated foreign key resolution
|
||||||
|
|
||||||
# Generate __tablename__ automatically
|
# Generate __tablename__ automatically
|
||||||
@declared_attr
|
@declared_attr
|
||||||
def __tablename__(cls) -> str:
|
def __tablename__(cls) -> str:
|
||||||
return cls.__name__.lower()
|
return cls.__name__.lower()
|
||||||
|
|
||||||
|
def __str__(self) -> str:
|
||||||
|
# if the object has a name, title or similar attribute, return it
|
||||||
|
if hasattr(self, "name"):
|
||||||
|
return str(self.name) # type: ignore
|
||||||
|
|
||||||
|
# if the object has a title attribute, return it
|
||||||
|
if hasattr(self, "title"):
|
||||||
|
return str(self.title) # type: ignore
|
||||||
|
|
||||||
|
# otherwise return the object's id
|
||||||
|
return str(self.id)
|
||||||
|
|||||||
Reference in New Issue
Block a user