chore: fix pre commit format and pipeline issue (#1144)

This commit is contained in:
Wendong-Fan 2026-02-04 00:06:29 +00:00 committed by GitHub
parent 2256497dff
commit 893f51fc82
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
970 changed files with 11235 additions and 9533 deletions

View file

@ -12,90 +12,89 @@
# limitations under the License.
# ========= Copyright 2025-2026 @ Eigent.ai All Rights Reserved. =========
from datetime import datetime
from typing import Optional
from sqlmodel import SQLModel, Field, Column, select
from pydantic import BaseModel
from enum import Enum
from app.model.abstract.model import AbstractModel, DefaultTimes
class UserStatActionEnum(str, Enum):
download_count = "download_count"
register_count = "register_count"
task_complete_count = "task_complete_count"
task_failed_count = "task_failed_count"
file_download_count = "file_download_count"
file_generate_count = "file_generate_count"
paid_amount_on_avg_task = "paid_amount_on_avg_task"
class UserStatActionIn(BaseModel):
user_id: int | None = None
action: UserStatActionEnum
value: int = 1
model_type: str | None = None
class UserStat(AbstractModel, DefaultTimes, table=True):
id: int = Field(default=None, primary_key=True)
user_id: int = Field(foreign_key="user.id", index=True, description="User ID")
# Model usage type: 'cloud' or 'local'
model_type: str = Field(default="unused", description="Model usage type: 'cloud' or 'local'")
# Product page statistics
download_count: int = Field(default=0, description="Number of downloads by the user")
register_count: int = Field(default=0, description="Number of registrations (for product page)")
task_complete_count: int = Field(default=0, description="Number of tasks completed by the user")
task_failed_count: int = Field(default=0, description="Number of tasks failed by the user")
file_download_count: int = Field(default=0, description="Number of files downloaded by the user")
file_generate_count: int = Field(default=0, description="Number of files generated by the user")
# Payment statistics
paid_amount_on_avg_task: int = Field(default=0, description="Total paid amount on average task completion")
@classmethod
def record_action(cls, session, action_in: UserStatActionIn):
"""
Record or update user operation statistics using a Pydantic model.
If no record exists for the user, create one. Otherwise, update the corresponding field.
Supported actions: download_count, register_count, task_complete_count, task_failed_count, file_download_count, file_generate_count, paid_amount_on_avg_task.
If model_type is provided, update it as well.
"""
stat = session.exec(select(cls).where(cls.user_id == action_in.user_id)).first()
if not stat:
stat = cls(user_id=action_in.user_id)
session.add(stat)
if action_in.action in [
UserStatActionEnum.download_count,
UserStatActionEnum.register_count,
UserStatActionEnum.task_complete_count,
UserStatActionEnum.task_failed_count,
UserStatActionEnum.file_download_count,
UserStatActionEnum.file_generate_count,
]:
setattr(stat, action_in.action.value, getattr(stat, action_in.action.value, 0) + action_in.value)
elif action_in.action == UserStatActionEnum.paid_amount_on_avg_task:
stat.paid_amount_on_avg_task += action_in.value
else:
raise ValueError(f"Unsupported action: {action_in.action}")
if action_in.model_type is not None:
stat.model_type = action_in.model_type
session.add(stat)
session.commit()
session.refresh(stat)
return stat
class UserStatOut(BaseModel):
model_type: str | None = None
download_count: int = 0
register_count: int = 0
task_complete_count: int = 0
task_failed_count: int = 0
file_download_count: int = 0
file_generate_count: int = 0
paid_amount_on_avg_task: int = 0
# cusotmer
task_queries: int = 0
mcp_install_count: int = 0
storage_used: float = 0
from enum import Enum
from pydantic import BaseModel
from sqlmodel import Field, select
from app.model.abstract.model import AbstractModel, DefaultTimes
class UserStatActionEnum(str, Enum):
download_count = "download_count"
register_count = "register_count"
task_complete_count = "task_complete_count"
task_failed_count = "task_failed_count"
file_download_count = "file_download_count"
file_generate_count = "file_generate_count"
paid_amount_on_avg_task = "paid_amount_on_avg_task"
class UserStatActionIn(BaseModel):
user_id: int | None = None
action: UserStatActionEnum
value: int = 1
model_type: str | None = None
class UserStat(AbstractModel, DefaultTimes, table=True):
id: int = Field(default=None, primary_key=True)
user_id: int = Field(foreign_key="user.id", index=True, description="User ID")
# Model usage type: 'cloud' or 'local'
model_type: str = Field(default="unused", description="Model usage type: 'cloud' or 'local'")
# Product page statistics
download_count: int = Field(default=0, description="Number of downloads by the user")
register_count: int = Field(default=0, description="Number of registrations (for product page)")
task_complete_count: int = Field(default=0, description="Number of tasks completed by the user")
task_failed_count: int = Field(default=0, description="Number of tasks failed by the user")
file_download_count: int = Field(default=0, description="Number of files downloaded by the user")
file_generate_count: int = Field(default=0, description="Number of files generated by the user")
# Payment statistics
paid_amount_on_avg_task: int = Field(default=0, description="Total paid amount on average task completion")
@classmethod
def record_action(cls, session, action_in: UserStatActionIn):
"""
Record or update user operation statistics using a Pydantic model.
If no record exists for the user, create one. Otherwise, update the corresponding field.
Supported actions: download_count, register_count, task_complete_count, task_failed_count, file_download_count, file_generate_count, paid_amount_on_avg_task.
If model_type is provided, update it as well.
"""
stat = session.exec(select(cls).where(cls.user_id == action_in.user_id)).first()
if not stat:
stat = cls(user_id=action_in.user_id)
session.add(stat)
if action_in.action in [
UserStatActionEnum.download_count,
UserStatActionEnum.register_count,
UserStatActionEnum.task_complete_count,
UserStatActionEnum.task_failed_count,
UserStatActionEnum.file_download_count,
UserStatActionEnum.file_generate_count,
]:
setattr(stat, action_in.action.value, getattr(stat, action_in.action.value, 0) + action_in.value)
elif action_in.action == UserStatActionEnum.paid_amount_on_avg_task:
stat.paid_amount_on_avg_task += action_in.value
else:
raise ValueError(f"Unsupported action: {action_in.action}")
if action_in.model_type is not None:
stat.model_type = action_in.model_type
session.add(stat)
session.commit()
session.refresh(stat)
return stat
class UserStatOut(BaseModel):
model_type: str | None = None
download_count: int = 0
register_count: int = 0
task_complete_count: int = 0
task_failed_count: int = 0
file_download_count: int = 0
file_generate_count: int = 0
paid_amount_on_avg_task: int = 0
# cusotmer
task_queries: int = 0
mcp_install_count: int = 0
storage_used: float = 0