from django.contrib import admin from .models import Order, PromoCode, Referral @admin.register(Order) class OrderAdmin(admin.ModelAdmin): list_display = ( "id", "student", "course", "base_amount_toman", "discount_amount_toman", "amount_toman", "instructor_share_toman", "gateway", "status", "created_at", "paid_at", ) list_filter = ("status", "gateway", "course") search_fields = ("student__phone_number", "course__slug", "authority", "ref_id", "promo_code__code") raw_id_fields = ("student", "course", "promo_code", "referrer") readonly_fields = ( "base_amount_toman", "discount_amount_toman", "amount_toman", "ilo_fee_toman", "instructor_share_toman", "commission_percent_snapshot", "gateway", "authority", "ref_id", "created_at", "paid_at", "failed_at", "last_error", ) date_hierarchy = "created_at" @admin.register(PromoCode) class PromoCodeAdmin(admin.ModelAdmin): list_display = ("code", "discount_percent", "discount_amount_toman", "course", "used_count", "max_uses", "is_active", "valid_until") list_filter = ("is_active", "course") search_fields = ("code",) raw_id_fields = ("course",) @admin.register(Referral) class ReferralAdmin(admin.ModelAdmin): list_display = ("referrer", "buyer", "course", "buyer_discount_toman", "referrer_credit_toman", "settled_at") search_fields = ("referrer__phone_number", "buyer__phone_number", "course__slug") raw_id_fields = ("referrer", "buyer", "order", "course") readonly_fields = ("settled_at",)