VWED_server/data/models/interfacedef.py

48 lines
1.8 KiB
Python
Raw Normal View History

2025-04-30 16:57:46 +08:00
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
接口定义历史模型
对应interfacedefhistory表
"""
import datetime
from sqlalchemy import Column, String, Integer, DateTime, UniqueConstraint, Index
from sqlalchemy.dialects.mysql import LONGTEXT
from data.models.base import BaseModel
class InterfaceDefHistory(BaseModel):
"""
接口定义历史模型
对应interfacedefhistory表
功能存储系统接口的定义和版本历史
"""
__tablename__ = 'interfacedefhistory'
# 唯一约束和索引
__table_args__ = (
UniqueConstraint('method', 'url', 'version', name='uniq'),
Index('idx_interfacedefhistory_method', 'method'),
Index('idx_interfacedefhistory_url', 'url'),
Index('idx_interfacedefhistory_version', 'version'),
Index('idx_interfacedefhistory_project_id', 'project_id'),
Index('idx_interfacedefhistory_created_at', 'created_at'),
{
'mysql_engine': 'InnoDB',
'mysql_charset': 'utf8mb4',
'mysql_collate': 'utf8mb4_general_ci',
'info': {'order_by': 'created_at DESC'}
}
)
id = Column(String(255), primary_key=True, nullable=False, comment='接口定义历史记录ID')
create_date = Column(DateTime, default=datetime.datetime.now, comment='创建日期')
detail = Column(LONGTEXT, comment='接口详细定义JSON格式')
method = Column(String(255), nullable=False, comment='请求方法(GET, POST, PUT, DELETE等)')
project_id = Column(String(255), comment='关联的项目ID')
url = Column(String(255), nullable=False, comment='接口URL')
version = Column(Integer, comment='版本号')
def __repr__(self):
return f"<InterfaceDefHistory(id='{self.id}', method='{self.method}', url='{self.url}', version='{self.version}')>"