from django.shortcuts import render
from django.http import JsonResponse
from .models import Medicine
from django.db.models import Case, When, Value, IntegerField

def see_medicine(request):
    return render(request, 'index.html')

def medicine_search(request):
    query = request.GET.get('q', '').strip()
    results = []
    if query:
        medicines = Medicine.objects.filter(name__icontains=query).annotate(
            starts_with=Case(
                When(name__istartswith=query, then=Value(0)),
                default=Value(1),
                output_field=IntegerField()
            )
        ).order_by('starts_with', 'name')[:10]

        for med in medicines:
            results.append({
                'id': med.id,
                'name': med.name,
                'generic': med.generic or '',
                'strength': med.strength or '',
                'manufacturer': med.manufacturer or '',
                'dosage_form': med.dosage_form or ''
            })
    return JsonResponse(results, safe=False)

def medicine_save(request):
    # Save medicine if not exists (called via AJAX when doctor types unknown medicine)
    if request.method == 'POST':
        name = request.POST.get('medicine', '').strip()
        generic = request.POST.get('generic', '').strip()
        strength = request.POST.get('strength', '').strip()
        manufacturer = request.POST.get('manufacturer', '').strip()
        dosage_form = request.POST.get('dosage_form', '').strip()
        if name and not Medicine.objects.filter(name__iexact=name).exists():
            Medicine.objects.create(name=name, generic=generic, strength=strength, manufacturer=manufacturer, dosage_form=dosage_form)
        return JsonResponse({'status': 'ok'})
    return JsonResponse({'status': 'error'}, status=400)
