postgres default fix
This commit is contained in:
parent
b28e561a5f
commit
82758fb11a
|
|
@ -8,7 +8,7 @@ class ServiceConfigValue(AlchemyBase):
|
||||||
|
|
||||||
id = Column(Integer, autoincrement=True, primary_key=True)
|
id = Column(Integer, autoincrement=True, primary_key=True)
|
||||||
key = Column(String(128), nullable=False, unique=True)
|
key = Column(String(128), nullable=False, unique=True)
|
||||||
packed_value = Column(JSON, nullable=False, default={})
|
packed_value = Column(JSON, nullable=False, default=dict)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def value(self):
|
def value(self):
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
from sqlalchemy import Column, Integer, String, DateTime, JSON, Boolean
|
from sqlalchemy import Column, Integer, String, DateTime, JSON, Boolean
|
||||||
from sqlalchemy.orm import relationship
|
from sqlalchemy.orm import relationship
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
from app.core._defaults import DEFAULT_ASSET_INITOBJ
|
from app.core._defaults import DEFAULT_ASSET_INITOBJ
|
||||||
from app.core.models.base import AlchemyBase
|
from app.core.models.base import AlchemyBase
|
||||||
|
|
@ -15,10 +16,10 @@ class Asset(AlchemyBase):
|
||||||
|
|
||||||
network = Column(String(32), nullable=True)
|
network = Column(String(32), nullable=True)
|
||||||
address = Column(String(1024), nullable=True)
|
address = Column(String(1024), nullable=True)
|
||||||
meta = Column(JSON, nullable=False, default={})
|
meta = Column(JSON, nullable=False, default=dict)
|
||||||
rates = Column(JSON, nullable=False, default={})
|
rates = Column(JSON, nullable=False, default=dict)
|
||||||
|
|
||||||
created = Column(DateTime, nullable=False, default=0)
|
created = Column(DateTime, nullable=False, default=datetime.utcnow)
|
||||||
is_active = Column(Boolean, nullable=False, default=True)
|
is_active = Column(Boolean, nullable=False, default=True)
|
||||||
|
|
||||||
balances = relationship('UserBalance', back_populates='asset')
|
balances = relationship('UserBalance', back_populates='asset')
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ from sqlalchemy import Column, BigInteger, Integer, String, ForeignKey, DateTime
|
||||||
from sqlalchemy.orm import relationship
|
from sqlalchemy.orm import relationship
|
||||||
from app.core.models.base import AlchemyBase
|
from app.core.models.base import AlchemyBase
|
||||||
from app.core.models.content.indexation_mixins import UserContentIndexationMixin
|
from app.core.models.content.indexation_mixins import UserContentIndexationMixin
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
|
||||||
class UserContent(AlchemyBase, UserContentIndexationMixin):
|
class UserContent(AlchemyBase, UserContentIndexationMixin):
|
||||||
|
|
@ -14,12 +15,12 @@ class UserContent(AlchemyBase, UserContentIndexationMixin):
|
||||||
owner_address = Column(String(1024), nullable=True)
|
owner_address = Column(String(1024), nullable=True)
|
||||||
code_hash = Column(String(128), nullable=True)
|
code_hash = Column(String(128), nullable=True)
|
||||||
data_hash = Column(String(128), nullable=True)
|
data_hash = Column(String(128), nullable=True)
|
||||||
updated = Column(DateTime, nullable=False, default=0)
|
updated = Column(DateTime, nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow)
|
||||||
|
|
||||||
content_id = Column(Integer, ForeignKey('node_storage.id'), nullable=True)
|
content_id = Column(Integer, ForeignKey('node_storage.id'), nullable=True)
|
||||||
created = Column(DateTime, nullable=False, default=0)
|
created = Column(DateTime, nullable=False, default=datetime.utcnow)
|
||||||
|
|
||||||
meta = Column(JSON, nullable=False, default={})
|
meta = Column(JSON, nullable=False, default=dict)
|
||||||
user_id = Column(Integer, ForeignKey('users.id'), nullable=False)
|
user_id = Column(Integer, ForeignKey('users.id'), nullable=False)
|
||||||
wallet_connection_id = Column(Integer, ForeignKey('wallet_connections.id'), nullable=True)
|
wallet_connection_id = Column(Integer, ForeignKey('wallet_connections.id'), nullable=True)
|
||||||
status = Column(String(64), nullable=False, default='active') # 'transaction_requested'
|
status = Column(String(64), nullable=False, default='active') # 'transaction_requested'
|
||||||
|
|
@ -41,9 +42,8 @@ class UserAction(AlchemyBase):
|
||||||
to_address = Column(String(1024), nullable=True)
|
to_address = Column(String(1024), nullable=True)
|
||||||
from_address = Column(String(1024), nullable=True)
|
from_address = Column(String(1024), nullable=True)
|
||||||
status = Column(String(128), nullable=True)
|
status = Column(String(128), nullable=True)
|
||||||
meta = Column(JSON, nullable=False, default={})
|
meta = Column(JSON, nullable=False, default=dict)
|
||||||
created = Column(DateTime, nullable=False, default=0)
|
created = Column(DateTime, nullable=False, default=datetime.utcnow)
|
||||||
|
|
||||||
user = relationship('User', uselist=False, foreign_keys=[user_id])
|
user = relationship('User', uselist=False, foreign_keys=[user_id])
|
||||||
content = relationship('StoredContent', uselist=False, foreign_keys=[content_id])
|
content = relationship('StoredContent', uselist=False, foreign_keys=[content_id])
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
from base58 import b58decode
|
from base58 import b58decode
|
||||||
from sqlalchemy import Column, Integer, String, DateTime, JSON
|
from sqlalchemy import Column, Integer, String, DateTime, JSON
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
from .base import AlchemyBase
|
from .base import AlchemyBase
|
||||||
|
|
||||||
|
|
@ -15,12 +16,12 @@ class KnownKey(AlchemyBase):
|
||||||
public_key_hash = Column(String(64), nullable=False, unique=True) # base58
|
public_key_hash = Column(String(64), nullable=False, unique=True) # base58
|
||||||
|
|
||||||
algo = Column(String(32), nullable=True, default=None)
|
algo = Column(String(32), nullable=True, default=None)
|
||||||
meta = Column(JSON, nullable=False, default={})
|
meta = Column(JSON, nullable=False, default=dict)
|
||||||
# {
|
# {
|
||||||
# "I_user_id": TRUSTED_USER_ID,
|
# "I_user_id": TRUSTED_USER_ID,
|
||||||
# }
|
# }
|
||||||
|
|
||||||
created = Column(DateTime, nullable=False, default=0)
|
created = Column(DateTime, nullable=False, default=datetime.utcnow)
|
||||||
|
|
||||||
# stored_content = relationship('StoredContent', back_populates='key')
|
# stored_content = relationship('StoredContent', back_populates='key')
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,9 +12,9 @@ class KnownNode(AlchemyBase):
|
||||||
public_key = Column(String(256), nullable=False)
|
public_key = Column(String(256), nullable=False)
|
||||||
codebase_hash = Column(String(512), nullable=True) # Node software version
|
codebase_hash = Column(String(512), nullable=True) # Node software version
|
||||||
reputation = Column(Integer, nullable=False, default=0)
|
reputation = Column(Integer, nullable=False, default=0)
|
||||||
last_sync = Column(DateTime, nullable=False, default=datetime.now)
|
last_sync = Column(DateTime, nullable=False, default=datetime.utcnow)
|
||||||
meta = Column(JSON, nullable=False, default={})
|
meta = Column(JSON, nullable=False, default=dict)
|
||||||
located_at = Column(DateTime, nullable=False, default=datetime.now)
|
located_at = Column(DateTime, nullable=False, default=datetime.utcnow)
|
||||||
|
|
||||||
|
|
||||||
class KnownNodeIncident(AlchemyBase):
|
class KnownNodeIncident(AlchemyBase):
|
||||||
|
|
@ -28,7 +28,7 @@ class KnownNodeIncident(AlchemyBase):
|
||||||
severity = Column(Integer, nullable=False, default=1) # Severity level (1-low to 5-critical)
|
severity = Column(Integer, nullable=False, default=1) # Severity level (1-low to 5-critical)
|
||||||
resolved = Column(Boolean, nullable=False, default=False) # Whether the incident has been resolved
|
resolved = Column(Boolean, nullable=False, default=False) # Whether the incident has been resolved
|
||||||
resolved_at = Column(DateTime, nullable=True) # Timestamp when the incident was resolved
|
resolved_at = Column(DateTime, nullable=True) # Timestamp when the incident was resolved
|
||||||
meta = Column(JSON, nullable=False, default={}) # Additional metadata if needed
|
meta = Column(JSON, nullable=False, default=dict) # Additional metadata if needed
|
||||||
|
|
||||||
|
|
||||||
class RemoteContentIndex(AlchemyBase):
|
class RemoteContentIndex(AlchemyBase):
|
||||||
|
|
@ -41,7 +41,6 @@ class RemoteContentIndex(AlchemyBase):
|
||||||
decrypted_hash = Column(String(128), nullable=True) # Decrypted content hash, available once permission is granted
|
decrypted_hash = Column(String(128), nullable=True) # Decrypted content hash, available once permission is granted
|
||||||
ton_address = Column(String(128), nullable=True) # TON network address for the content
|
ton_address = Column(String(128), nullable=True) # TON network address for the content
|
||||||
onchain_index = Column(Integer, nullable=True) # Onchain index or reference on a blockchain
|
onchain_index = Column(Integer, nullable=True) # Onchain index or reference on a blockchain
|
||||||
meta = Column(JSON, nullable=False, default={}) # Additional metadata for flexible content description
|
meta = Column(JSON, nullable=False, default=dict) # Additional metadata for flexible content description
|
||||||
last_updated = Column(DateTime, nullable=False, default=datetime.utcnow) # Timestamp of the last update
|
last_updated = Column(DateTime, nullable=False, default=datetime.utcnow) # Timestamp of the last update
|
||||||
created_at = Column(DateTime, nullable=False, default=datetime.utcnow) # Record creation timestamp
|
created_at = Column(DateTime, nullable=False, default=datetime.utcnow) # Record creation timestamp
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,8 @@ class StoredContent(AlchemyBase, AudioContentMixin):
|
||||||
|
|
||||||
status = Column(String(32), nullable=True)
|
status = Column(String(32), nullable=True)
|
||||||
filename = Column(String(1024), nullable=False)
|
filename = Column(String(1024), nullable=False)
|
||||||
meta = Column(JSON, nullable=False, default={})
|
# Use a factory for JSON default to avoid shared mutable dict
|
||||||
|
meta = Column(JSON, nullable=False, default=dict)
|
||||||
|
|
||||||
user_id = Column(Integer, ForeignKey('users.id'), nullable=True)
|
user_id = Column(Integer, ForeignKey('users.id'), nullable=True)
|
||||||
owner_address = Column(String(1024), nullable=True)
|
owner_address = Column(String(1024), nullable=True)
|
||||||
|
|
@ -35,9 +36,11 @@ class StoredContent(AlchemyBase, AudioContentMixin):
|
||||||
telegram_cid = Column(String(1024), nullable=True)
|
telegram_cid = Column(String(1024), nullable=True)
|
||||||
|
|
||||||
codebase_version = Column(Integer, nullable=True)
|
codebase_version = Column(Integer, nullable=True)
|
||||||
created = Column(DateTime, nullable=False, default=0)
|
# Use proper datetime defaults; updated also auto-updates on change
|
||||||
updated = Column(DateTime, nullable=False, default=0)
|
created = Column(DateTime, nullable=False, default=datetime.utcnow)
|
||||||
disabled = Column(DateTime, nullable=False, default=0)
|
updated = Column(DateTime, nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow)
|
||||||
|
# Timestamp of when content was disabled; None means active
|
||||||
|
disabled = Column(DateTime, nullable=True, default=None)
|
||||||
disabled_by = Column(Integer, ForeignKey('users.id'), nullable=True, default=None)
|
disabled_by = Column(Integer, ForeignKey('users.id'), nullable=True, default=None)
|
||||||
|
|
||||||
encrypted = Column(Boolean, nullable=False, default=False)
|
encrypted = Column(Boolean, nullable=False, default=False)
|
||||||
|
|
|
||||||
|
|
@ -13,4 +13,4 @@ class PromoAction(AlchemyBase):
|
||||||
action_type = Column(String(64), nullable=False) # Type of action, e.g., 'referral', 'discount'
|
action_type = Column(String(64), nullable=False) # Type of action, e.g., 'referral', 'discount'
|
||||||
action_ref = Column(String(512), nullable=False) # Reference to the action, e.g., promo code
|
action_ref = Column(String(512), nullable=False) # Reference to the action, e.g., promo code
|
||||||
|
|
||||||
created = Column(DateTime, nullable=False, default=datetime.now)
|
created = Column(DateTime, nullable=False, default=datetime.utcnow)
|
||||||
|
|
|
||||||
|
|
@ -15,11 +15,11 @@ class BlockchainTask(AlchemyBase):
|
||||||
epoch = Column(Integer, nullable=True)
|
epoch = Column(Integer, nullable=True)
|
||||||
seqno = Column(Integer, nullable=True)
|
seqno = Column(Integer, nullable=True)
|
||||||
|
|
||||||
created = Column(DateTime, nullable=False, default=datetime.now)
|
created = Column(DateTime, nullable=False, default=datetime.utcnow)
|
||||||
updated = Column(DateTime, nullable=False, default=datetime.now)
|
updated = Column(DateTime, nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow)
|
||||||
|
|
||||||
user_id = Column(Integer, ForeignKey('users.id'), nullable=True)
|
user_id = Column(Integer, ForeignKey('users.id'), nullable=True)
|
||||||
meta = Column(JSON, nullable=False, default={})
|
meta = Column(JSON, nullable=False, default=dict)
|
||||||
status = Column(String(256), nullable=False)
|
status = Column(String(256), nullable=False)
|
||||||
|
|
||||||
transaction_hash = Column(String(1024), nullable=True)
|
transaction_hash = Column(String(1024), nullable=True)
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,8 @@ class UserBalance(AlchemyBase):
|
||||||
asset_id = Column(Integer, ForeignKey('assets.id'), nullable=False)
|
asset_id = Column(Integer, ForeignKey('assets.id'), nullable=False)
|
||||||
balance = Column(Float, nullable=False, default=0)
|
balance = Column(Float, nullable=False, default=0)
|
||||||
|
|
||||||
updated = Column(DateTime, nullable=False, default=0)
|
updated = Column(DateTime, nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow)
|
||||||
created = Column(DateTime, nullable=False, default=0)
|
created = Column(DateTime, nullable=False, default=datetime.utcnow)
|
||||||
|
|
||||||
user = relationship('User', uselist=False, foreign_keys=[user_id], back_populates='balances')
|
user = relationship('User', uselist=False, foreign_keys=[user_id], back_populates='balances')
|
||||||
asset = relationship('Asset', uselist=False, foreign_keys=[asset_id], back_populates='balances')
|
asset = relationship('Asset', uselist=False, foreign_keys=[asset_id], back_populates='balances')
|
||||||
|
|
@ -32,7 +32,7 @@ class InternalTransaction(AlchemyBase):
|
||||||
spent_transaction_id = Column(Integer, ForeignKey('internal_transactions.id'), nullable=True)
|
spent_transaction_id = Column(Integer, ForeignKey('internal_transactions.id'), nullable=True)
|
||||||
type = Column(String(256), nullable=False, default="NOT_SPECIFIED")
|
type = Column(String(256), nullable=False, default="NOT_SPECIFIED")
|
||||||
|
|
||||||
created = Column(DateTime, nullable=False, default=0)
|
created = Column(DateTime, nullable=False, default=datetime.utcnow)
|
||||||
|
|
||||||
user = relationship('User', uselist=False, back_populates='internal_transactions', foreign_keys=[user_id])
|
user = relationship('User', uselist=False, back_populates='internal_transactions', foreign_keys=[user_id])
|
||||||
asset = relationship('Asset', uselist=False, foreign_keys=[asset_id])
|
asset = relationship('Asset', uselist=False, foreign_keys=[asset_id])
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ class User(AlchemyBase, DisplayMixin, TranslationCore, AuthenticationMixin_V1, W
|
||||||
|
|
||||||
username = Column(String(512), nullable=True)
|
username = Column(String(512), nullable=True)
|
||||||
lang_code = Column(String(8), nullable=False, default="en")
|
lang_code = Column(String(8), nullable=False, default="en")
|
||||||
meta = Column(JSON, nullable=False, default={})
|
meta = Column(JSON, nullable=False, default=dict)
|
||||||
|
|
||||||
last_use = Column(DateTime, nullable=False, default=datetime.utcnow)
|
last_use = Column(DateTime, nullable=False, default=datetime.utcnow)
|
||||||
updated = Column(DateTime, nullable=False, default=datetime.utcnow)
|
updated = Column(DateTime, nullable=False, default=datetime.utcnow)
|
||||||
|
|
@ -32,4 +32,3 @@ class User(AlchemyBase, DisplayMixin, TranslationCore, AuthenticationMixin_V1, W
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f"User, {self.id}_{self.telegram_id} | Username: {self.username} " + '\\'
|
return f"User, {self.id}_{self.telegram_id} | Username: {self.username} " + '\\'
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
from sqlalchemy import Column, BigInteger, Integer, String, ForeignKey, DateTime, JSON, Boolean
|
from sqlalchemy import Column, BigInteger, Integer, String, ForeignKey, DateTime, JSON, Boolean
|
||||||
from sqlalchemy.orm import relationship
|
from sqlalchemy.orm import relationship
|
||||||
from .base import AlchemyBase
|
from .base import AlchemyBase
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
|
||||||
class UserActivity(AlchemyBase):
|
class UserActivity(AlchemyBase):
|
||||||
|
|
@ -9,10 +10,10 @@ class UserActivity(AlchemyBase):
|
||||||
|
|
||||||
id = Column(Integer, autoincrement=True, primary_key=True)
|
id = Column(Integer, autoincrement=True, primary_key=True)
|
||||||
type = Column(String(64), nullable=False)
|
type = Column(String(64), nullable=False)
|
||||||
meta = Column(JSON, nullable=False, default={})
|
meta = Column(JSON, nullable=False, default=dict)
|
||||||
|
|
||||||
user_id = Column(Integer, ForeignKey('users.id'), nullable=True)
|
user_id = Column(Integer, ForeignKey('users.id'), nullable=True)
|
||||||
user_ip = Column(String(64), nullable=True)
|
user_ip = Column(String(64), nullable=True)
|
||||||
created = Column(DateTime, nullable=False, default=0)
|
created = Column(DateTime, nullable=False, default=datetime.utcnow)
|
||||||
|
|
||||||
user = relationship('User', uselist=False, foreign_keys=[user_id])
|
user = relationship('User', uselist=False, foreign_keys=[user_id])
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
from sqlalchemy import Column, Integer, String, ForeignKey, DateTime, JSON, Boolean
|
from sqlalchemy import Column, Integer, String, ForeignKey, DateTime, JSON, Boolean
|
||||||
from sqlalchemy.orm import relationship
|
from sqlalchemy.orm import relationship
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
from .base import AlchemyBase
|
from .base import AlchemyBase
|
||||||
|
|
||||||
|
|
@ -15,11 +16,11 @@ class WalletConnection(AlchemyBase):
|
||||||
|
|
||||||
wallet_address = Column(String(1024), nullable=False)
|
wallet_address = Column(String(1024), nullable=False)
|
||||||
|
|
||||||
keys = Column(JSON, nullable=False, default={})
|
keys = Column(JSON, nullable=False, default=dict)
|
||||||
meta = Column(JSON, nullable=False, default={})
|
meta = Column(JSON, nullable=False, default=dict)
|
||||||
|
|
||||||
created = Column(DateTime, nullable=False, default=0)
|
created = Column(DateTime, nullable=False, default=datetime.utcnow)
|
||||||
updated = Column(DateTime, nullable=False, default=0)
|
updated = Column(DateTime, nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow)
|
||||||
invalidated = Column(Boolean, nullable=False, default=True)
|
invalidated = Column(Boolean, nullable=False, default=True)
|
||||||
without_pk = Column(Boolean, nullable=False, default=False)
|
without_pk = Column(Boolean, nullable=False, default=False)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue