| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- from datetime import datetime
- from typing import Optional
- from fastapi import Query
- from pydantic import BaseModel, Field
- class TenantApiKeyCreate(BaseModel):
- """创建API Key的请求模型"""
- tenant_id: Optional[int] = Field(None, description="租户ID,默认使用当前用户的租户ID")
- description: Optional[str] = Field(None, description="备注")
- expired_days: Optional[int] = Field(365, description="过期天数,默认365天")
- class TenantApiKeyResponse(BaseModel):
- """API Key的响应模型"""
- id: int
- api_key: str
- api_secret: str
- status: str
- expired_at: Optional[datetime]
- created_time: datetime
- class Config:
- from_attributes = True
- class TenantApiKeyListResponse(BaseModel):
- """API Key列表的响应模型"""
- id: int
- api_key: str
- status: str
- expired_at: Optional[datetime]
- last_used_at: Optional[datetime]
- created_time: datetime
- description: Optional[str]
- class Config:
- from_attributes = True
- class TenantApiKeyUpdate(BaseModel):
- """更新API Key的请求模型"""
- status: str = Field(..., description="状态:0-正常,1-禁用")
- class TenantApiLogCreate(BaseModel):
- """创建API调用日志的请求模型"""
- api_key_id: Optional[int] = Field(None, description="API Key ID")
- tenant_id: int = Field(..., description="租户ID")
- endpoint: str = Field(..., description="调用的接口")
- method: str = Field(..., description="请求方法")
- request_ip: str = Field(..., description="请求IP")
- request_data: Optional[str] = Field(None, description="请求数据")
- response_code: int = Field(..., description="响应码")
- response_time: float = Field(..., description="响应时间(毫秒)")
- class TenantApiLogResponse(BaseModel):
- """API调用日志的响应模型"""
- id: int
- endpoint: str
- method: str
- request_ip: str
- response_code: int
- response_time: float
- created_time: datetime
- class Config:
- from_attributes = True
- class ApiKeyQueryParam:
- """API Key管理查询参数"""
- def __init__(
- self,
- tenant_id: int | None = Query(None, description="租户ID,默认使用当前用户的租户ID"),
- status: str | None = Query(None, description="状态:0-正常,1-禁用"),
- ) -> None:
- self.tenant_id = tenant_id
- self.status = status
|