from django.contrib import admin

from .models import Categoria, Contato, Empresa, Galeria, Produto, Reserva, Post, Comment, Atracao
from .models import Passeio, PasseioFoto, PasseioComment, FotoPaginaPrincipal, FotoPaginaSobre
from .models import PaginaPrincipal, CategoriaGastro, ClienteGastro, ReferenciaFoto, GastroDetail


@admin.register(Empresa)
class EmpresaAdmin(admin.ModelAdmin):
    list_display = ('nome', 'titulo')


@admin.register(Produto)
class ProdutoAdmin(admin.ModelAdmin):
    list_display = ('nome', 'categoria', 'preco', 'promocao', 'modificado', 'ativo')


@admin.register(Categoria)
class CategoriaAdmin(admin.ModelAdmin):
    list_display = ('id', 'categoria', 'descricao', 'modificado')


@admin.register(CategoriaGastro)
class CategoriaGastroAdmin(admin.ModelAdmin):
    list_display = ('id', 'categoria_gastro', 'descricao', 'modificado')


@admin.register(ClienteGastro)
class ClienteGastroAdmin(admin.ModelAdmin):
    list_display = ('nome', 'categoria_gastro', 'valor_mensal', 'modificado', 'ativo')


@admin.register(GastroDetail)
class GastroDetailAdmin(admin.ModelAdmin):
    list_display = ('titulo_restaurante', 'restaurante', 'titulo_prato', 'modificado', 'ativo')


@admin.register(PaginaPrincipal)
class PaginaPrincipalAdmin(admin.ModelAdmin):
    list_display = ('titulo', 'descricao', 'rodape')


@admin.register(FotoPaginaPrincipal)
class FotoPaginaPrincipalAdmin(admin.ModelAdmin):
    list_display = ('titulo', 'modificado', 'alto', 'centro', 'baixo')


@admin.register(FotoPaginaSobre)
class FotoPaginaSobreAdmin(admin.ModelAdmin):
    list_display = ('titulo', 'modificado', 'alto', 'centro', 'baixo')


@admin.register(ReferenciaFoto)
class ReferenciaFotoAdmin(admin.ModelAdmin):
    list_display = ('id', 'referencia')


@admin.register(Galeria)
class GaleriaAdmin(admin.ModelAdmin):
    list_display = ('autor', 'titulo', 'modificado', 'referencia')


@admin.register(Contato)
class ContatoAdmin(admin.ModelAdmin):
    list_display = ('user', 'nome', 'email', 'assunto')


@admin.register(Reserva)
class ReservaAdmin(admin.ModelAdmin):
    list_display = ('user', 'nome', 'email', 'telefone', 'data', 'hora', 'pessoas', 'confirmacao')


@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
    list_display = ('title', 'slug', 'status','created_on')
    list_filter = ("status",)
    search_fields = ['title', 'content']
    prepopulated_fields = {'slug': ('title',)}


@admin.register(Comment)
class CommentAdmin(admin.ModelAdmin):
    list_display = ('name', 'body', 'post', 'created_on', 'active')
    list_filter = ('active', 'created_on')
    search_fields = ('name', 'email', 'body')
    actions = ['approve_comments']

    def approve_comments(self, request, queryset):
        queryset.update(active=True)


@admin.register(Passeio)
class PasseioAdmin(admin.ModelAdmin):
    list_display = ('title', 'slug', 'status','created_on')
    list_filter = ("status",)
    search_fields = ['title', 'content', 'pais', 'cidade', 'atracao']
    prepopulated_fields = {'slug': ('title',)}


@admin.register(PasseioComment)
class PasseioCommentAdmin(admin.ModelAdmin):
    list_display = ('name', 'body', 'passeio', 'created_on', 'active')
    list_filter = ('active', 'created_on')
    search_fields = ('name', 'email', 'body')
    actions = ['approve_passeio_comments']

    def approve_passeio_comments(self, request, queryset):
        queryset.update(active=True)


@admin.register(PasseioFoto)
class PasseioFotoAdmin(admin.ModelAdmin):
    list_display = ('titulo', 'texto', 'passeio', 'created_on', 'active')
    list_filter = ('active', 'created_on')
    search_fields = ('titulo', 'texto')


@admin.register(Atracao)
class AtracaoAdmin(admin.ModelAdmin):
    list_display = ('atracao', 'descricao')



