from rest_framework import serializers
from .models import StockshelfModel
from utils import datasolve


class stockShelfSerializer(serializers.ModelSerializer):

    warehouse_code = serializers.CharField(read_only=False, required=False)
    # warehouse_name = serializers.CharField(read_only=False, required=False)
    shelf_name = serializers.CharField(read_only=False, required=False)
    shelf_type = serializers.CharField(read_only=False, required=False)
    row = serializers.IntegerField(read_only=False, required=False)
    col = serializers.IntegerField(read_only=False, required=False)
    layer = serializers.IntegerField(read_only=False, required=False)


    class Meta:
        model = StockshelfModel
        ref_name = 'StockShelfSerializer'
        exclude = ['create_time','update_time','ip_address','port','status','warehouse_name','empty_label',
        'shelf_department', 'shelf_status', 'goods_code', 'goods_name', 'goods_std', 'goods_desc', 'goods_qty', 'goods_unit', 'goods_price', 'goods_batch', 'goods_notes', 'goods_in', 'goods_out']


class stockShelfpartialSerializer(serializers.ModelSerializer):

    warehouse_code = serializers.CharField(read_only=False, required=False)
    warehouse_name = serializers.CharField(read_only=False, required=False)
    shelf_name = serializers.CharField(read_only=False, required=False)
    shelf_type = serializers.CharField(read_only=False, required=False)
    row = serializers.IntegerField(read_only=False, required=False)
    col = serializers.IntegerField(read_only=False, required=False)
    layer = serializers.IntegerField(read_only=False, required=False)
    ip_address = serializers.CharField(read_only=False, required=False)
    port = serializers.IntegerField(read_only=False, required=False)
    status = serializers.CharField(read_only=False, required=False)
    shelf_department = serializers.CharField(read_only=False, required=False)
    shelf_status = serializers.CharField(read_only=False, required=False)
    goods_code = serializers.CharField(read_only=False, required=False)
    goods_name = serializers.CharField(read_only=False, required=False)
    goods_std = serializers.CharField(read_only=False, required=False)
    goods_desc = serializers.CharField(read_only=False, required=False)
    goods_qty = serializers.IntegerField(read_only=False, required=False)
    goods_unit = serializers.CharField(read_only=False, required=False)
    goods_price = serializers.DecimalField(read_only=False, required=False, max_digits=10, decimal_places=2)
    goods_batch = serializers.CharField(read_only=False, required=False)
    goods_notes = serializers.CharField(read_only=False, required=False)
    goods_in = serializers.IntegerField(read_only=False, required=False)
    goods_out = serializers.IntegerField(read_only=False, required=False)

    class Meta:
        model = StockshelfModel
        ref_name = 'StockShelfpartialSerializer'
        exclude = ['create_time', 'update_time','empty_label',]

class stocklistSerializer(serializers.ModelSerializer):
    warehouse_code = serializers.CharField(read_only=False, required=False)
    warehouse_name = serializers.CharField(read_only=False, required=False)
    shelf_name = serializers.CharField(read_only=False, required=False)
    shelf_type = serializers.CharField(read_only=False, required=False)
    row = serializers.IntegerField(read_only=False, required=False)
    col = serializers.IntegerField(read_only=False, required=False)
    layer = serializers.IntegerField(read_only=False, required=False)
    empty_label = serializers.BooleanField(read_only=False, required=False)
    goods_code   = serializers.CharField(read_only=False, required=False)
    goods_name   = serializers.CharField(read_only=False, required=False)
    goods_std    = serializers.CharField(read_only=False, required=False)
    goods_in     = serializers.IntegerField(read_only=False, required=False)
    goods_out    = serializers.IntegerField(read_only=False, required=False)
    goods_qty    = serializers.IntegerField(read_only=False, required=False)

    class Meta:
        model = StockshelfModel
        ref_name = 'StocklistSerializer'
        exclude = ['create_time','update_time','ip_address','port','status',
        'shelf_department', 'shelf_status','goods_batch',
          'goods_desc', 'goods_unit', 'goods_price',  'goods_notes',]