feat: production branch with deploy config for baota panel

- Add deploy/ directory with production env, supervisor, nginx, migration configs
- Include all latest features: admin management, feedback, footer with ICP/beian
- Database: foreign_trade (PostgreSQL), user: foreign_trade
- Frontend: trade.yuzhiran.com, backend proxy via Nginx
This commit is contained in:
TradeMate Dev
2026-05-14 09:19:30 +08:00
parent 23a31f7c00
commit 5a1af9f82f
15 changed files with 1377 additions and 71 deletions
+2
View File
@@ -10,6 +10,7 @@ from .subscription import Subscription
from .preference import PreferenceAnalysis, MarketingEffect
from .device import Device
from .followup import FollowupStrategy, FollowupLog
from .system_config import SystemConfig
__all__ = [
"User", "Product",
@@ -24,4 +25,5 @@ __all__ = [
"PreferenceAnalysis", "MarketingEffect",
"Device",
"FollowupStrategy", "FollowupLog",
"SystemConfig",
]
+15
View File
@@ -0,0 +1,15 @@
from sqlalchemy import Column, String, DateTime, Text
from sqlalchemy.dialects.postgresql import UUID, JSONB
from datetime import datetime
from app.database import Base
import uuid
class SystemConfig(Base):
__tablename__ = "system_configs"
id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
key = Column(String(100), unique=True, nullable=False, index=True)
value = Column(JSONB, nullable=False, default={})
description = Column(Text, default="")
updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
+3
View File
@@ -17,6 +17,9 @@ class User(Base):
tier = Column(String(50), default="free")
role = Column(String(20), default="user")
is_active = Column(Boolean, default=True)
email = Column(String(255))
last_login_at = Column(DateTime, nullable=True)
login_count = Column(Integer, default=0)
created_at = Column(DateTime, default=datetime.utcnow)
updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
settings = Column(JSONB, default={