VWED_server/data/models/interfacedef.py
2025-04-30 16:57:46 +08:00

48 lines
1.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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}')>"