package com.shulead.datasync.portalprice;

import org.apache.axis.description.ElementDesc;
import org.apache.axis.description.TypeDesc;
import org.apache.axis.encoding.Deserializer;
import org.apache.axis.encoding.Serializer;
import org.apache.axis.encoding.ser.BeanDeserializer;
import org.apache.axis.encoding.ser.BeanSerializer;

import javax.xml.namespace.QName;
import java.io.Serializable;

/**
 * @Classname PortalPriceParams
 * @Description TODO
 * @Version 1.0.0
 * @Date 2024/4/28 18:31
 * @Created by liuxiangshun
 */
public class PortalPriceParams implements Serializable {
        private String bookFees;
        private String classFees;
        private String classId;
        private String classLevelId;
        private String companyCode;
        private String effectiveDate;
        private String nurseFees;
        private String totalClassFees;
        private String totalFees;
        private Object __equalsCalc = null;
        private boolean __hashCodeCalc = false;
        private static TypeDesc typeDesc = new TypeDesc(PortalPriceParams.class, true);

        static {
            typeDesc.setXmlType(new QName("http://webservice.promotions.cos.rise.com/", "portalPriceParams"));
            ElementDesc elemField = new ElementDesc();
            elemField.setFieldName("bookFees");
            elemField.setXmlName(new QName("", "bookFees"));
            elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string"));
            elemField.setMinOccurs(0);
            elemField.setNillable(false);
            typeDesc.addFieldDesc(elemField);
            elemField = new ElementDesc();
            elemField.setFieldName("classFees");
            elemField.setXmlName(new QName("", "classFees"));
            elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string"));
            elemField.setMinOccurs(0);
            elemField.setNillable(false);
            typeDesc.addFieldDesc(elemField);
            elemField = new ElementDesc();
            elemField.setFieldName("classId");
            elemField.setXmlName(new QName("", "classId"));
            elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string"));
            elemField.setMinOccurs(0);
            elemField.setNillable(false);
            typeDesc.addFieldDesc(elemField);
            elemField = new ElementDesc();
            elemField.setFieldName("classLevelId");
            elemField.setXmlName(new QName("", "classLevelId"));
            elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string"));
            elemField.setMinOccurs(0);
            elemField.setNillable(false);
            typeDesc.addFieldDesc(elemField);
            elemField = new ElementDesc();
            elemField.setFieldName("companyCode");
            elemField.setXmlName(new QName("", "companyCode"));
            elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string"));
            elemField.setMinOccurs(0);
            elemField.setNillable(false);
            typeDesc.addFieldDesc(elemField);
            elemField = new ElementDesc();
            elemField.setFieldName("effectiveDate");
            elemField.setXmlName(new QName("", "effectiveDate"));
            elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string"));
            elemField.setMinOccurs(0);
            elemField.setNillable(false);
            typeDesc.addFieldDesc(elemField);
            elemField = new ElementDesc();
            elemField.setFieldName("nurseFees");
            elemField.setXmlName(new QName("", "nurseFees"));
            elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string"));
            elemField.setMinOccurs(0);
            elemField.setNillable(false);
            typeDesc.addFieldDesc(elemField);
            elemField = new ElementDesc();
            elemField.setFieldName("totalClassFees");
            elemField.setXmlName(new QName("", "totalClassFees"));
            elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string"));
            elemField.setMinOccurs(0);
            elemField.setNillable(false);
            typeDesc.addFieldDesc(elemField);
            elemField = new ElementDesc();
            elemField.setFieldName("totalFees");
            elemField.setXmlName(new QName("", "totalFees"));
            elemField.setXmlType(new QName("http://www.w3.org/2001/XMLSchema", "string"));
            elemField.setMinOccurs(0);
            elemField.setNillable(false);
            typeDesc.addFieldDesc(elemField);
        }

        public PortalPriceParams() {
        }

        public PortalPriceParams(String bookFees, String classFees, String classId, String classLevelId, String companyCode, String effectiveDate, String nurseFees, String totalClassFees, String totalFees) {
            this.bookFees = bookFees;
            this.classFees = classFees;
            this.classId = classId;
            this.classLevelId = classLevelId;
            this.companyCode = companyCode;
            this.effectiveDate = effectiveDate;
            this.nurseFees = nurseFees;
            this.totalClassFees = totalClassFees;
            this.totalFees = totalFees;
        }

        public String getBookFees() {
            return this.bookFees;
        }

        public void setBookFees(String bookFees) {
            this.bookFees = bookFees;
        }

        public String getClassFees() {
            return this.classFees;
        }

        public void setClassFees(String classFees) {
            this.classFees = classFees;
        }

        public String getClassId() {
            return this.classId;
        }

        public void setClassId(String classId) {
            this.classId = classId;
        }

        public String getClassLevelId() {
            return this.classLevelId;
        }

        public void setClassLevelId(String classLevelId) {
            this.classLevelId = classLevelId;
        }

        public String getCompanyCode() {
            return this.companyCode;
        }

        public void setCompanyCode(String companyCode) {
            this.companyCode = companyCode;
        }

        public String getEffectiveDate() {
            return this.effectiveDate;
        }

        public void setEffectiveDate(String effectiveDate) {
            this.effectiveDate = effectiveDate;
        }

        public String getNurseFees() {
            return this.nurseFees;
        }

        public void setNurseFees(String nurseFees) {
            this.nurseFees = nurseFees;
        }

        public String getTotalClassFees() {
            return this.totalClassFees;
        }

        public void setTotalClassFees(String totalClassFees) {
            this.totalClassFees = totalClassFees;
        }

        public String getTotalFees() {
            return this.totalFees;
        }

        public void setTotalFees(String totalFees) {
            this.totalFees = totalFees;
        }

        public synchronized boolean equals(Object obj) {
            if (!(obj instanceof PortalPriceParams)) {
                return false;
            } else {
                PortalPriceParams other = (PortalPriceParams)obj;
                if (obj == null) {
                    return false;
                } else if (this == obj) {
                    return true;
                } else if (this.__equalsCalc != null) {
                    return this.__equalsCalc == obj;
                } else {
                    this.__equalsCalc = obj;
                    boolean _equals = (this.bookFees == null && other.getBookFees() == null || this.bookFees != null && this.bookFees.equals(other.getBookFees())) && (this.classFees == null && other.getClassFees() == null || this.classFees != null && this.classFees.equals(other.getClassFees())) && (this.classId == null && other.getClassId() == null || this.classId != null && this.classId.equals(other.getClassId())) && (this.classLevelId == null && other.getClassLevelId() == null || this.classLevelId != null && this.classLevelId.equals(other.getClassLevelId())) && (this.companyCode == null && other.getCompanyCode() == null || this.companyCode != null && this.companyCode.equals(other.getCompanyCode())) && (this.effectiveDate == null && other.getEffectiveDate() == null || this.effectiveDate != null && this.effectiveDate.equals(other.getEffectiveDate())) && (this.nurseFees == null && other.getNurseFees() == null || this.nurseFees != null && this.nurseFees.equals(other.getNurseFees())) && (this.totalClassFees == null && other.getTotalClassFees() == null || this.totalClassFees != null && this.totalClassFees.equals(other.getTotalClassFees())) && (this.totalFees == null && other.getTotalFees() == null || this.totalFees != null && this.totalFees.equals(other.getTotalFees()));
                    this.__equalsCalc = null;
                    return _equals;
                }
            }
        }

        public synchronized int hashCode() {
            if (this.__hashCodeCalc) {
                return 0;
            } else {
                this.__hashCodeCalc = true;
                int _hashCode = 1;
                if (this.getBookFees() != null) {
                    _hashCode += this.getBookFees().hashCode();
                }

                if (this.getClassFees() != null) {
                    _hashCode += this.getClassFees().hashCode();
                }

                if (this.getClassId() != null) {
                    _hashCode += this.getClassId().hashCode();
                }

                if (this.getClassLevelId() != null) {
                    _hashCode += this.getClassLevelId().hashCode();
                }

                if (this.getCompanyCode() != null) {
                    _hashCode += this.getCompanyCode().hashCode();
                }

                if (this.getEffectiveDate() != null) {
                    _hashCode += this.getEffectiveDate().hashCode();
                }

                if (this.getNurseFees() != null) {
                    _hashCode += this.getNurseFees().hashCode();
                }

                if (this.getTotalClassFees() != null) {
                    _hashCode += this.getTotalClassFees().hashCode();
                }

                if (this.getTotalFees() != null) {
                    _hashCode += this.getTotalFees().hashCode();
                }

                this.__hashCodeCalc = false;
                return _hashCode;
            }
        }

        public static TypeDesc getTypeDesc() {
            return typeDesc;
        }

        public static Serializer getSerializer(String mechType, Class _javaType, QName _xmlType) {
            return new BeanSerializer(_javaType, _xmlType, typeDesc);
        }

        public static Deserializer getDeserializer(String mechType, Class _javaType, QName _xmlType) {
            return new BeanDeserializer(_javaType, _xmlType, typeDesc);
        }
}
