text: from marshmallow import fields, post_load
  from portals.wwits.apis.rest import BaseSchemaExcludeFields as Schema
  from .models import (
      UpdateTechClassModel,
      ParmModel,
  )
  
  
  class ParmSchema(Schema):
      UserID = fields.Str()
      Version = fields.Str()
      Env = fields.Str()
      Source = fields.Str()
      Session = fields.Integer()
      RC = fields.Integer()
      ResultMsg = fields.Str()
      Entity = fields.Str(allow_none=True)
      EntityRecID = fields.Integer()
      EntityCount = fields.Integer()
      Mode = fields.Str()
      Class = fields.Str(allow_none=True)
      Name = fields.Str(allow_none=True)
      ToSite = fields.Str(allow_none=True)
      Home = fields.Str(allow_none=True)
      LaborOn = fields.Boolean()
      LaborLimitsOn = fields.Boolean()
      TravelOn = fields.Boolean()
      TravelLimitsOn = fields.Boolean()
      DisplayTravel = fields.Str(allow_none=True)
      MiKmOn = fields.Boolean()
      MiKmLimitsOn = fields.Boolean()
      DisplayDistance = fields.Str(allow_none=True)
      ExpenseMiKmOn = fields.Boolean()
      SkipWoLimitChecks = fields.Boolean()
      MaxNbrPodUnresolved = fields.Integer()
      AllowTechOverlap = fields.Boolean()
      MaxEtaWos = fields.Integer()
      InclForSbdAssign = fields.Boolean()
      MaxClWoPerPayPeriod = fields.Integer()
      IgnoreSkillRqmt = fields.Boolean()
      MaxWrkHrsPerPeriod = fields.Integer()
      ToMilePayType = fields.Str(allow_none=True)
      FromMilePayType = fields.Str(allow_none=True)
      CallTypes = fields.Str(allow_none=True)
      CustomerPartMstrs = fields.Str(allow_none=True)
  
      @post_load
      def make_schema(self, data, **kwargs):
          return ParmModel(**data)
  
  
  class UpdateTechClassSchema(Schema):
      Parms = fields.Nested(ParmSchema)
  
      @post_load
      def make_schema(self, data, **kwargs):
          return UpdateTechClassModel(**data)
  