from django.shortcuts import render
from rest_framework.decorators import api_view, permission_classes
from rest_framework.response import Response
from rest_framework import status, permissions
from drf_yasg.utils import swagger_auto_schema
from drf_yasg import openapi
from Models.estado_oportunidad_venta import EstadoOportunidadVenta
from .serializers import EstadoOportunidadVentaSerializer

@swagger_auto_schema(
    method='get',
    operation_summary="Listar estados de oportunidad de venta",
    operation_description="Devuelve la lista de todos los estados de oportunidad de venta disponibles con sus atributos: id, nombre_estado, orden y es_final.",
    responses={200: EstadoOportunidadVentaSerializer(many=True)}
)
@api_view(['GET'])
@permission_classes([permissions.IsAuthenticated])
def listar_estados_oportunidad(request):
    """
    Lista todos los estados de oportunidad de venta disponibles.
    """
    try:
        estados = EstadoOportunidadVenta.objects.all()
        serializer = EstadoOportunidadVentaSerializer(estados, many=True)
        return Response(serializer.data, status=status.HTTP_200_OK)
    except Exception as e:
        return Response(
            {"error": f"Error al obtener los estados de oportunidad: {str(e)}"},
            status=status.HTTP_500_INTERNAL_SERVER_ERROR
        )