add from v002
This commit is contained in:
73
001.BACKEND/kupci/serializers.py
Normal file
73
001.BACKEND/kupci/serializers.py
Normal file
@@ -0,0 +1,73 @@
|
||||
from rest_framework import serializers
|
||||
from .models import Kupac
|
||||
from fleet.models import Stroj
|
||||
|
||||
from fleet.serializers import StrojSerializer
|
||||
|
||||
class KupacSerializer(serializers.ModelSerializer):
|
||||
"""
|
||||
Serializer za listu kupaca.
|
||||
Fokus je na brzini i osnovnim kontaktnim podacima.
|
||||
"""
|
||||
# Izračunato polje iz modela (@property broj_strojeva)
|
||||
broj_strojeva = serializers.IntegerField(read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = Kupac
|
||||
fields = [
|
||||
'id',
|
||||
'naziv',
|
||||
'grad',
|
||||
'telefon',
|
||||
'email',
|
||||
'tip',
|
||||
'aktivno',
|
||||
'broj_strojeva' # Korisno za prikaz u tablici (npr. "5 strojeva")
|
||||
]
|
||||
|
||||
class KupacDetaljiSerializer(serializers.ModelSerializer):
|
||||
# Ugniježđeni strojevi - prikazujemo puni objekt, ne samo ID
|
||||
strojevi = StrojSerializer(many=True, read_only=True)
|
||||
|
||||
# Dodatna polja koja nisu u bazi, ali su korisna za Astro frontend
|
||||
ukupan_broj_strojeva = serializers.IntegerField(source='broj_strojeva', read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = Kupac
|
||||
fields = [
|
||||
'id',
|
||||
'naziv',
|
||||
'oib',
|
||||
'email',
|
||||
'telefon',
|
||||
'adresa',
|
||||
'grad',
|
||||
'postanski_broj',
|
||||
'tip',
|
||||
'napomena',
|
||||
'aktivno',
|
||||
'datum_kreiranja',
|
||||
'ukupan_broj_strojeva',
|
||||
'strojevi' # Lista svih strojeva s punim detaljima
|
||||
]
|
||||
|
||||
class KupacListaSerializer(serializers.ModelSerializer):
|
||||
"""
|
||||
Optimizirani serializer za prikaz u tablici (listi).
|
||||
Vraća samo osnovne podatke potrebne za pregled svih klijenata.
|
||||
"""
|
||||
# Dohvaćamo property iz modela koji broji strojeve
|
||||
broj_strojeva = serializers.IntegerField(read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = Kupac
|
||||
fields = [
|
||||
'id',
|
||||
'naziv',
|
||||
'grad',
|
||||
'oib',
|
||||
'telefon',
|
||||
'tip',
|
||||
'aktivno',
|
||||
'broj_strojeva'
|
||||
]
|
||||
Reference in New Issue
Block a user