Files
dify-plus/api/models/api_token_money_extend.py
2025-03-28 15:18:33 +08:00

83 lines
4.4 KiB
Python

from extensions.ext_database import db
from .types import StringUUID
class ApiTokenMoneyExtend(db.Model):
__tablename__ = "api_token_money_extend"
__table_args__ = (
db.PrimaryKeyConstraint("id", name="api_token_money_extend_pkey"),
db.Index("api_tokens_money_app_token_id_idx", "app_token_id"),
)
id = db.Column(StringUUID, server_default=db.text("uuid_generate_v4()"))
app_token_id = db.Column(StringUUID, nullable=True) # 密钥ID
accumulated_quota = db.Column(db.Numeric(16, 7)) # 已使用额度(累计不归零)
day_used_quota = db.Column(db.Numeric(16, 7)) # 当天使用额度(定时脚本每日更新)
month_used_quota = db.Column(db.Numeric(16, 7)) # 当月使用额度(定时脚本每月更新)
day_limit_quota = db.Column(db.Numeric(16, 7)) # 每天使用额度限制(创建密钥时设置)
month_limit_quota = db.Column(db.Numeric(16, 7)) # 每月使用额度限制(创建密钥时设置)
description = db.Column(db.String(50)) # 密钥描述
is_deleted = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
# 日快照统计表
class ApiTokenMoneyDailyStatExtend(db.Model):
__tablename__ = "api_token_money_daily_stat_extend"
__table_args__ = (
db.PrimaryKeyConstraint("id", name="api_token_money_daily_stat_pkey"),
db.Index("idx_api_token_money_daily_stat_app_token_id", "app_token_id"),
)
id = db.Column(StringUUID, server_default=db.text("uuid_generate_v4()"))
app_token_id = db.Column(StringUUID, nullable=False)
accumulated_quota = db.Column(db.Numeric(16, 7)) # 已使用额度(累计不归零)
day_used_quota = db.Column(db.Numeric(16, 7)) # 当天使用额度(定时脚本每日更新)
day_limit_quota = db.Column(db.Numeric(16, 7)) # 每天使用额度限制(创建密钥时设置)
stat_at = db.Column(db.DateTime, nullable=False)
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
# 月快照统计表
class ApiTokenMoneyMonthlyStatExtend(db.Model):
__tablename__ = "api_token_money_monthly_stat_extend"
__table_args__ = (
db.PrimaryKeyConstraint("id", name="api_token_money_monthly_stat_pkey"),
db.Index("idx_api_token_money_monthly_stat_app_token_id", "app_token_id"),
)
id = db.Column(StringUUID, server_default=db.text("uuid_generate_v4()"))
app_token_id = db.Column(StringUUID, nullable=False)
accumulated_quota = db.Column(db.Numeric(16, 7)) # 已使用额度(累计不归零)
month_used_quota = db.Column(db.Numeric(16, 7)) # 当月使用额度(定时脚本每月更新)
month_limit_quota = db.Column(db.Numeric(16, 7)) # 每月使用额度限制(创建密钥时设置)
stat_at = db.Column(db.DateTime, nullable=False)
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
# 密钥 - 对话消息关联表
class ApiTokenMessageJoinsExtend(db.Model):
__tablename__ = "api_token_message_joins_extend"
__table_args__ = (
db.PrimaryKeyConstraint("id", name="api_token_message_joins_extend_pkey"),
db.Index("api_token_message_joins_extend_app_token_id_idx", "app_token_id"),
db.Index("api_token_message_joins_extend_record_id_idx", "record_id"),
)
id = db.Column(StringUUID, server_default=db.text("uuid_generate_v4()"))
app_token_id = db.Column(StringUUID, nullable=True) # 密钥ID
record_id = db.Column(StringUUID, nullable=True) # 关联记录ID
app_mode = db.Column(db.String(255), nullable=True) # 应用类型
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
def add_app_token_record_id(self):
db.session.add(
ApiTokenMessageJoinsExtend(app_token_id=self.app_token_id, record_id=self.record_id, app_mode=self.app_mode)
)
db.session.commit()