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
+53 -1
View File
@@ -1,7 +1,7 @@
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin as DjangoUserAdmin
from .models import User
from .models import ApiKey, User, UserWallet
@admin.register(User)
@@ -20,3 +20,55 @@ class UserAdmin(DjangoUserAdmin):
)
list_filter = DjangoUserAdmin.list_filter + ("status",)
search_fields = ("username", "email", "payment_user_id")
@admin.register(UserWallet)
class UserWalletAdmin(admin.ModelAdmin):
list_display = ("user", "points_balance", "updated_at")
search_fields = ("user__username", "user__email")
readonly_fields = ("user", "points_balance", "created_at", "updated_at")
ordering = ("user__username",)
def has_add_permission(self, request):
return False
def has_delete_permission(self, request, obj=None):
return False
@admin.register(ApiKey)
class ApiKeyAdmin(admin.ModelAdmin):
list_display = ("key_prefix", "user", "name", "status", "last_used_at", "created_at")
list_filter = ("status", "created_at")
search_fields = ("key_prefix", "user__username", "user__email", "name")
readonly_fields = (
"user",
"key_prefix",
"key_hash_masked",
"last_used_at",
"created_at",
"updated_at",
)
fields = (
"user",
"name",
"status",
"key_prefix",
"key_hash_masked",
"last_used_at",
"created_at",
"updated_at",
)
ordering = ("-created_at", "-id")
@admin.display(description="key hash")
def key_hash_masked(self, obj):
if not obj.key_hash:
return ""
return f"{obj.key_hash[:8]}...{obj.key_hash[-6:]}"
def has_add_permission(self, request):
return False
def has_delete_permission(self, request, obj=None):
return False