feat: Added travel models, travel creation command, travels list command with pagination, set help message, improvements and fixes

This commit is contained in:
ITQ
2024-03-23 02:47:05 +03:00
parent 675e5ab891
commit 1802ce81b0
15 changed files with 623 additions and 15 deletions
+8 -6
View File
@@ -1,20 +1,16 @@
__all__ = ("User",)
import re
from typing import Any
import sqlalchemy as sa
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import validates
from sqlalchemy.orm import relationship, validates
from app import session
from app.models import Base
from app.utils import geo
from app.utils.db import utcnow
Base: Any = declarative_base()
class User(Base):
__tablename__ = "users"
@@ -38,6 +34,9 @@ class User(Base):
server_default=utcnow(),
)
notes = relationship("Note", backref="author")
owned_travels = relationship("Travel", backref="author")
@validates("username")
def validate_username(self, key, value):
regex_pattern = re.compile(r"^[a-zA-Z0-9_]{5,20}$")
@@ -98,6 +97,9 @@ class User(Base):
return normalized_value
def get_user_travels(self):
return self.owned_travels + self.travels
def get_human_readable_datejoined(self):
return self.date_joined.strftime("%Y-%m-%d %H:%M:%S")