"""
Minimal Django REST Framework setup for /api/students/ CRUD.

Project layout (see Lab 6 / Lecture 8c for the full picture):
  backend/
    settings.py     # add 'rest_framework', 'students' to INSTALLED_APPS
    urls.py         # include the students router
  students/
    models.py
    serializers.py
    views.py        <- this file
    urls.py
"""

# ---- models.py ----
from django.db import models

class Student(models.Model):
    name   = models.CharField(max_length=100)
    email  = models.EmailField(unique=True)
    course = models.CharField(max_length=20, blank=True)
    created_at = models.DateTimeField(auto_now_add=True)

    class Meta:
        ordering = ["name"]

    def __str__(self):
        return self.name


# ---- serializers.py ----
from rest_framework import serializers

class StudentSerializer(serializers.ModelSerializer):
    class Meta:
        model = Student
        fields = ["id", "name", "email", "course", "created_at"]
        read_only_fields = ["id", "created_at"]


# ---- views.py ----
from rest_framework import viewsets

class StudentViewSet(viewsets.ModelViewSet):
    queryset = Student.objects.all()
    serializer_class = StudentSerializer


# ---- students/urls.py ----
from rest_framework.routers import DefaultRouter
from django.urls import path, include

router = DefaultRouter()
router.register(r"students", StudentViewSet)

urlpatterns = [
    path("", include(router.urls)),
]


# ---- backend/urls.py (top-level) ----
# from django.urls import path, include
# urlpatterns = [path("api/", include("students.urls"))]
