feat: add billing core models

This commit is contained in:
QiuSW
2026-07-02 15:06:00 +08:00
parent 2f93374193
commit cbc56ee15d
16 changed files with 660 additions and 24 deletions
+58 -1
View File
@@ -1,3 +1,60 @@
from django.contrib import admin
# Register your models here.
from .models import CallRecord, PointsLedger
class ReadOnlyLedgerAdmin(admin.ModelAdmin):
def get_readonly_fields(self, request, obj=None):
return tuple(field.name for field in self.model._meta.fields)
def has_add_permission(self, request):
return False
def has_change_permission(self, request, obj=None):
return False
def has_delete_permission(self, request, obj=None):
return False
@admin.register(PointsLedger)
class PointsLedgerAdmin(ReadOnlyLedgerAdmin):
list_display = (
"created_at",
"user",
"change_type",
"points_delta",
"balance_after",
"ref_order_id",
"ref_call",
)
list_filter = ("change_type", "created_at")
search_fields = ("user__username", "user__email", "reason")
ordering = ("-created_at", "-id")
@admin.register(CallRecord)
class CallRecordAdmin(ReadOnlyLedgerAdmin):
list_display = (
"created_at",
"user",
"api_key",
"operation_type",
"alias",
"model_used",
"points_cost",
"status",
"upstream_latency_ms",
)
list_filter = ("operation_type", "status", "created_at")
search_fields = (
"user__username",
"user__email",
"api_key__key_prefix",
"alias",
"model_used",
"error_message",
"result_ref",
"result_summary",
)
ordering = ("-created_at", "-id")