from rest_framework import serializers

from .models import DeviceModel,LocationModel,LocationGroupModel,LocationContainerLink,LocationChangeLog
from container.models import ContainerListModel
class ContainerSimpleSerializer(serializers.ModelSerializer):
    class Meta:
        model = ContainerListModel
        # fields = ['id', 'container_code', 'status']  # 按需选择字段
        fields = '__all__'  # 或者展示全部字段

class LocationSerializer(serializers.ModelSerializer):
    class Meta:
        model = LocationModel
        fields = '__all__'
class LocationListSerializer(serializers.ModelSerializer):
    current_containers = ContainerSimpleSerializer(
        many=True,
        source='active_containers',  
        read_only=True
    )

    class Meta:
        model = LocationModel
        fields = '__all__'
        read_only_fields = ['id']

class LocationPostSerializer(serializers.ModelSerializer):
    class Meta:
        model = LocationModel
        fields = '__all__'
        read_only_fields = ['id','row','col','layer', 'max_capacity', 'current_quantity', 'coordinate','access_priority','location_code','location_group','location_type','is_active','shelf_type']

class LocationGroupSerializer(serializers.ModelSerializer):
    class Meta:
        model = LocationGroupModel
        fields = '__all__'
        read_only_fields = ['id']
class LocationGroupListSerializer(serializers.ModelSerializer ):
    class Meta:
        model = LocationGroupModel
        fields = '__all__'
        read_only_fields = ['id ']
class LocationGroupPostSerializer(serializers.ModelSerializer):
    class Meta:
        model = LocationGroupModel
        fields = '__all__'
        read_only_fields = ['id']