from django.contrib import admin

from apps.distributions.models import (
    ApprovalRecord,
    ApprovalWorkflow,
    DistributionItem,
    ProfitCalculation,
    ProfitDistribution,
    ProjectLedgerLine,
)


class ApprovalInline(admin.TabularInline):
    model = ApprovalRecord
    extra = 0


@admin.register(ApprovalWorkflow)
class ApprovalWorkflowAdmin(admin.ModelAdmin):
    list_display = ("object_type", "object_id", "current_step", "status")
    inlines = [ApprovalInline]


@admin.register(ProjectLedgerLine)
class LedgerAdmin(admin.ModelAdmin):
    list_display = ("project", "kind", "category", "amount", "recognized", "occurred_on")
    list_filter = ("kind", "recognized")


class DistItemInline(admin.TabularInline):
    model = DistributionItem
    extra = 0


@admin.register(ProfitDistribution)
class ProfitDistributionAdmin(admin.ModelAdmin):
    list_display = ("project", "status", "executed_at")
    inlines = [DistItemInline]


@admin.register(ProfitCalculation)
class ProfitCalculationAdmin(admin.ModelAdmin):
    list_display = ("project", "distributable_profit", "status")
    list_filter = ("status",)
