from django.shortcuts import render, get_object_or_404
from django.http import JsonResponse
from django.utils.html import strip_tags
from .models import Article, Innovation

def home(request):
    return render(request, 'blog/home.html')

def article_detail(request, pk):
    article = get_object_or_404(Article, pk=pk)
    context = {
        'article': article
    }
    return render(request, 'blog/article_detail.html', context)

def article_list(request):
    articles = Article.objects.all().order_by('-created_at')
    return render(request, 'blog/article_list.html', {'articles': articles})

# ------------------------------------------------------------
# API: ส่ง JSON "รายการบทความ"
# ------------------------------------------------------------
def article_list_api(request):
    articles = Article.objects.all().order_by('-created_at')
    data = []
    for a in articles:
        data.append({
            'id': a.id,
            'title': a.title,
            'content': strip_tags(a.content),  # ตัดแท็ก HTML ออก (ถ้าต้องการ)
            'cover_image': a.cover_image.url if a.cover_image else None,
            'created_at': a.created_at.strftime("%Y-%m-%d %H:%M:%S"),
            'category': a.category,
        })
    return JsonResponse(data, safe=False)

# ------------------------------------------------------------
# API: ส่ง JSON "ดูรายละเอียดบทความเดียว"
# พร้อมส่ง gallery ด้วย (ถ้ามี)
# ------------------------------------------------------------
def article_detail_api(request, pk):
    article = get_object_or_404(Article, pk=pk)
    gallery_list = []
    if hasattr(article, 'gallery'):
        for img_obj in article.gallery.all():
            if img_obj.image:
                gallery_list.append(img_obj.image.url)

   
    
    data = {
        'id': article.id,
        'title': article.title,
        'content': strip_tags(article.content),
        'cover_image': article.cover_image.url if article.cover_image else None,
        'created_at': article.created_at.strftime("%Y-%m-%d %H:%M:%S"),
        'gallery': gallery_list,

    }
    return JsonResponse(data)

# ------------------------------------------------------------
# API: ส่ง JSON "รายการบทความ" เฉพาะสำหรับประเภท SCTC
# ------------------------------------------------------------
def article_list_sctc_api(request):
    articles = Article.objects.filter(category='sctc').order_by('-created_at')
    data = []
    for a in articles:
        data.append({
            'id': a.id,
            'title': a.title,
            'content': strip_tags(a.content),
            'cover_image': a.cover_image.url if a.cover_image else None,
            'created_at': a.created_at.strftime("%Y-%m-%d %H:%M:%S"),
            'category': a.category,
        })
    return JsonResponse(data, safe=False)

# ------------------------------------------------------------
# API: ส่ง JSON "รายการบทความ" เฉพาะสำหรับประเภท CSSC
# ------------------------------------------------------------
def article_list_cssc_api(request):
    articles = Article.objects.filter(category='cssc').order_by('-created_at')
    data = []
    for a in articles:
        data.append({
            'id': a.id,
            'title': a.title,
            'content': strip_tags(a.content),
            'cover_image': a.cover_image.url if a.cover_image else None,
            'created_at': a.created_at.strftime("%Y-%m-%d %H:%M:%S"),
            'category': a.category,
        })
    return JsonResponse(data, safe=False)



# --- ฟังก์ชัน API สำหรับ Innovation ---
def innovation_list_api(request):
    """
    ส่ง JSON array ของนวัตกรรมทั้งหมด
    """
    innovations = Innovation.objects.all().order_by('-created_at')
    data = []
    for i in innovations:
        data.append({
            'id': i.id,
            'title': i.title,
            'content': strip_tags(i.content),
            'cover_image': i.cover_image.url if i.cover_image else None,
            'created_at': i.created_at.strftime("%Y-%m-%d %H:%M:%S"),
            'category': i.category,
        })
    return JsonResponse(data, safe=False)

def innovation_detail_api(request, pk):
    """
    ส่ง JSON รายละเอียดนวัตกรรมเดียว
    """
    innovation = get_object_or_404(Innovation, pk=pk)
    gallery_list = []
    if hasattr(innovation, 'gallery'):
        for img_obj in innovation.gallery.all():
            if img_obj.image:
                gallery_list.append(img_obj.image.url)
    data = {
        'id': innovation.id,
        'title': innovation.title,
        'content': strip_tags(innovation.content),
        'cover_image': innovation.cover_image.url if innovation.cover_image else None,
        'created_at': innovation.created_at.strftime("%Y-%m-%d %H:%M:%S"),
        'gallery': gallery_list,
        'category': innovation.category,
    }
    return JsonResponse(data)