from django.contrib import admin

from apps.projects.models import (
    Project,
    ProjectDocumentMeta,
    ProjectFinancialLine,
    ProjectGalleryItem,
    ProjectInvestmentTerms,
    ProjectMilestone,
    ProjectVideo,
)


class FinancialInline(admin.TabularInline):
    model = ProjectFinancialLine
    extra = 0


class DocumentInline(admin.TabularInline):
    model = ProjectDocumentMeta
    extra = 0


class GalleryInline(admin.TabularInline):
    model = ProjectGalleryItem
    extra = 0


class VideoInline(admin.TabularInline):
    model = ProjectVideo
    extra = 0


class MilestoneInline(admin.TabularInline):
    model = ProjectMilestone
    extra = 0


@admin.register(Project)
class ProjectAdmin(admin.ModelAdmin):
    list_display = ("name", "slug", "location", "status", "progress_percent", "is_published")
    list_filter = ("status", "is_published")
    search_fields = ("name", "slug", "location")
    prepopulated_fields = {"slug": ("name",)}
    inlines = [FinancialInline, DocumentInline, GalleryInline, VideoInline, MilestoneInline]


@admin.register(ProjectInvestmentTerms)
class ProjectInvestmentTermsAdmin(admin.ModelAdmin):
    list_display = ("project", "status", "investment_pool", "rule_model", "is_published")
    list_filter = ("status", "rule_model", "is_published")
