feat(C-02):工具热榜周榜+最近使用

新增ToolUsageRecord使用日志(tool+created_at索引);/tool/top/总榜按累计排序、周榜按近7天聚合(无日志回退总榜,兼容period旧参);/tool/recent/登录去重倒序;seed新增AI图片放大/代码运行两个工具。
This commit is contained in:
chunyu
2026-09-15 15:20:27 +08:00
parent 37cad3947d
commit 24874aae23
7 changed files with 300 additions and 2 deletions
@@ -0,0 +1,37 @@
# Generated by Django 5.2.12 on 2026-09-08 08:24
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('tool', '0006_merge_0005'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.AlterField(
model_name='colorhistory',
name='id',
field=models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.CreateModel(
name='ToolUsageRecord',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('session_id', models.CharField(blank=True, default='', max_length=64, verbose_name='会话ID')),
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='使用时间')),
('tool', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='usage_records', to='tool.tool', verbose_name='工具')),
('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='tool_usage_records', to=settings.AUTH_USER_MODEL, verbose_name='用户')),
],
options={
'verbose_name': '工具使用记录',
'verbose_name_plural': '工具使用记录',
'ordering': ['-created_at'],
'indexes': [models.Index(fields=['tool', 'created_at'], name='tool_toolus_tool_id_4e72d1_idx')],
},
),
]