from django.contrib import admin
from import_export import resources
from import_export.admin import ImportExportModelAdmin
from .models import CaraBayar, Kelas, Layanan, SubLayanan, TarifLayanan, InvoiceLayanan, LogProgressInvoiceLayanan, \
    Kamar, InvoiceBed, Signature, InvoiceLab


class SignatureResource(resources.ModelResource):
    class Meta:
        model = Signature


class CaraBayarResource(resources.ModelResource):
    class Meta:
        model = CaraBayar


class KelasResource(resources.ModelResource):
    class Meta:
        model = Kelas


class LayananResource(resources.ModelResource):
    class Meta:
        model = Layanan


class SubLayananResource(resources.ModelResource):
    class Meta:
        model = SubLayanan


class TarifLayananResource(resources.ModelResource):
    class Meta:
        model = TarifLayanan


class InvoiceLayananResource(resources.ModelResource):
    class Meta:
        model = InvoiceLayanan
        
class InvoiceLabResource(resources.ModelResource):
    class Meta:
        model = InvoiceLab


class LogProgressInvoiceLayananResource(resources.ModelResource):
    class Meta:
        model = LogProgressInvoiceLayanan


@admin.register(CaraBayar)
class CaraBayarAdmin(ImportExportModelAdmin):
    resource_class = CaraBayarResource
    list_display = ['nama', 'catatan', 'created_at']
    search_fields = ['nama', 'catatan']
    list_filter = ['created_at']


@admin.register(Kelas)
class KelasAdmin(ImportExportModelAdmin):
    resource_class = KelasResource
    list_display = ['nama', 'catatan', 'created_at']
    search_fields = ['nama', 'catatan']
    list_filter = ['created_at']


@admin.register(Layanan)
class LayananAdmin(ImportExportModelAdmin):
    resource_class = LayananResource
    list_display = ['nama', 'catatan', 'created_at']
    search_fields = ['nama', 'catatan']
    list_filter = ['created_at']


@admin.register(SubLayanan)
class SubLayananAdmin(ImportExportModelAdmin):
    resource_class = SubLayananResource
    list_display = ['relasi', 'nama', 'catatan', 'created_at']
    search_fields = ['relasi__nama', 'nama', 'catatan']
    list_filter = ['created_at']


@admin.register(TarifLayanan)
class TarifLayananAdmin(ImportExportModelAdmin):
    resource_class = TarifLayananResource
    list_display = ['relasi', 'nama', 'kelas', 'cara_bayar', 'harga', 'catatan', 'created_at']
    search_fields = ['relasi__nama', 'nama', 'kelas__nama', 'cara_bayar__nama', 'catatan']
    list_filter = ['relasi__relasi', 'kelas', 'cara_bayar', 'created_at']
    list_editable = ('harga',)


@admin.register(InvoiceLayanan)
class InvoiceLayananAdmin(ImportExportModelAdmin):
    resource_class = InvoiceLayananResource
    list_display = ['kode', 'tarif_layanan', 'kuantitas', 'progress', 'diskon_pembelian', 'tipe_diskon', 'catatan', 'created_at']
    search_fields = ['kode', 'progress', 'catatan']
    list_filter = ['progress', 'created_at']
    list_editable = ('diskon_pembelian', 'tipe_diskon',)
    
@admin.register(InvoiceLab)
class InvoiceLabAdmin(ImportExportModelAdmin):
    resource_class = InvoiceLayananResource
    list_display = ['kode', 'tarif_lab', 'kuantitas', 'progress', 'diskon_pembelian', 'tipe_diskon', 'catatan', 'created_at']
    search_fields = ['kode', 'progress', 'catatan']
    list_filter = ['progress', 'created_at']
    list_editable = ('diskon_pembelian', 'tipe_diskon',)


@admin.register(LogProgressInvoiceLayanan)
class LogProgressInvoiceLayananAdmin(ImportExportModelAdmin):
    resource_class = LogProgressInvoiceLayananResource
    list_display = ['relasi', 'progress', 'catatan', 'created_at']
    search_fields = ['relasi__kode', 'progress', 'catatan']
    list_filter = ['progress', 'created_at']


@admin.register(Kamar)
class KamarAdmin(ImportExportModelAdmin):
    list_display = ['nama', 'harga', 'kapasitas', 'created_at']
    search_fields = ['nama', 'harga', 'kapasitas']
    list_filter = ['nama', 'kapasitas']


@admin.register(InvoiceBed)
class InvoiceBedAdmin(ImportExportModelAdmin):
    list_display = ['kode', 'pendaftaran', 'progress', 'catatan', 'is_dibayar']
    search_fields = ['kode', 'pendaftaran']
    list_filter = ['progress', 'is_dibayar']


@admin.register(Signature)
class SignatureAdmin(ImportExportModelAdmin):
    pass
