26 lines
1.1 KiB
Python
26 lines
1.1 KiB
Python
"""
|
|
MCP bot credential model.
|
|
"""
|
|
from sqlalchemy import Column, BigInteger, String, DateTime, SmallInteger
|
|
from sqlalchemy.sql import func
|
|
|
|
from app.core.database import Base
|
|
|
|
|
|
class MCPBot(Base):
|
|
"""Stores MCP access credentials mapped to a NexDocs user."""
|
|
|
|
__tablename__ = "mcp_bots"
|
|
|
|
id = Column(BigInteger, primary_key=True, autoincrement=True, comment="Bot credential ID")
|
|
user_id = Column(BigInteger, nullable=False, unique=True, index=True, comment="Owner user ID")
|
|
bot_id = Column(String(64), nullable=False, unique=True, index=True, comment="External MCP bot id")
|
|
bot_secret = Column(String(255), nullable=False, comment="External MCP bot secret")
|
|
status = Column(SmallInteger, default=1, index=True, comment="Status: 0-disabled 1-enabled")
|
|
last_used_at = Column(DateTime, comment="Last successful MCP access time")
|
|
created_at = Column(DateTime, server_default=func.now(), comment="Created at")
|
|
updated_at = Column(DateTime, server_default=func.now(), onupdate=func.now(), comment="Updated at")
|
|
|
|
def __repr__(self):
|
|
return f"<MCPBot(user_id={self.user_id}, bot_id='{self.bot_id}')>"
|