fix
无故事王国
2024-02-28 4468d9f9b3b8c70597f04e5f1ecb61118c404d2c
WanPai/Model/CommonModels.swift
@@ -1,954 +1,963 @@
    //
    //  CommonModels.swift
    //  WanPai
    //
    //  Created by 无故事王国 on 2023/7/7.
    //
//
//  CommonModels.swift
//  WanPai
//
//  Created by 无故事王国 on 2023/7/7.
//
import HandyJSON
struct CourseItemModel:HandyJSON{
    var id = 0
    var storeName = ""
    var name = ""
    var coverDrawing = ""
    var classStartTime = [String]()
    var applicantsNumber = 0
    var payType:PaymentType = .cash
    var originalPrice:Double = 0
    var vipPrice:Double = 0
    var paymentPrice:Double = 0
    var playPaiCoin:Int = 0
    var distance:Double = 0
            var id = 0
            var storeName = ""
            var name = ""
            var coverDrawing = ""
            var classStartTime = [String]()
            var applicantsNumber = 0
            var payType:PaymentType = .cash
            var originalPrice:Double = 0
            var vipPrice:Double = 0
            var paymentPrice:Double = 0
            var playPaiCoin:Int = 0
            var distance:Double = 0
}
struct SignUpCourseItemModel:HandyJSON{
   var coursePackageId = 0
   var coursePayId = 0
   var packageImg = ""
   var courseNameStore = ""
   var courseTime = ""
   var courseTeacher = ""
   var courseNums = 0
   var payStatus:PayStateType = .unPayment
   var coursePackTypeId = 0
   var type:CourseType = .normal
   var orderId:Int = 0
            var coursePackageId = 0
            var coursePayId = 0
            var packageImg = ""
            var courseNameStore = ""
            var courseTime = ""
            var courseTeacher = ""
            var courseNums = 0
            var payStatus:PayStateType = .unPayment
            var coursePackTypeId = 0
            var type:CourseType = .normal
            var orderId:Int = 0
}
struct SignUpCourseItemDetailModel:HandyJSON{
   var amount: Int = 0
   var coursePackageId: Int = 0
   var coursePackageName: String = ""
   var coursePayId: Int = 0
   var courseTimeFrame: String = ""
   var coverDrawing: String = ""
   var introduceDrawing: String = ""
   var payStatus: PayStateType = .paymented // 1:未支付,2:续课
   var vipAmount: Int = 0
   var weeks: String = ""
   var wpGold: Int = 0
   var paymentPrice:Double = 0
   var time = ""
   var list = [CourseDetailListModel]()
   var chooseHours = 0
            var amount: Int = 0
            var coursePackageId: Int = 0
            var coursePackageName: String = ""
            var coursePayId: Int = 0
            var courseTimeFrame: String = ""
            var coverDrawing: String = ""
            var introduceDrawing: String = ""
            var payStatus: PayStateType = .paymented // 1:未支付,2:续课
            var vipAmount: Int = 0
            var weeks: String = ""
            var wpGold: Int = 0
            var paymentPrice:Double = 0
            var time = ""
            var list = [CourseDetailListModel]()
            var chooseHours = 0
   var payType:PayType = .aliPay
   var payPrice:Double = 0
   var orinPrice:Double = 0
   var coinPrice:Int = 0
   var stuIds = [Int]()
            var payType:PayType = .aliPay
            var payPrice:Double = 0
            var orinPrice:Double = 0
            var coinPrice:Int = 0
            var stuIds = [Int]()
}
struct CourseDetailModel:HandyJSON {
    var coverDrawing: String = ""
    var detailDrawing: String = ""
    var distance: Double = 0
    var id: Int = 0
    var introduceDrawing: String = ""
    var lat: String = ""
    var list = [CourseDetailListModel]()
    var lon: String = ""
    var name: String = ""
    var storeAddress: String = ""
    var storeCoverDrawing: String = ""
    var storeName: String = ""
    var student: CourseDetailStudentModel?
    var times = [String]()
    var weeks = [String]()
   var type:CourseType = .normal
   var time = ""
   var isVip = 0 //是否是会员:1:是 0:否
            var coverDrawing: String = ""
            var detailDrawing: String = ""
            var distance: Double = 0
            var id: Int = 0
            var introduceDrawing: String = ""
            var lat: String = ""
            var list = [CourseDetailListModel]()
            var lon: String = ""
            var name: String = ""
            var storeAddress: String = ""
            var storeCoverDrawing: String = ""
            var storeName: String = ""
            var student: CourseDetailStudentModel?
            var times = [String]()
            var weeks = [String]()
            var type:CourseType = .normal
            var time = ""
            var isVip = 0 //是否是会员:1:是 0:否
}
struct CourseDetailListModel:HandyJSON {
    var classHours: Int = 0
    var id: Int = 0
    var originalPrice:Double = 0
    var paymentPrice:Double = 0
    var payType: PaymentType = .cash
    var playPaiCoin:Int = 0
    var vipPrice:Double = 0
            var classHours: Int = 0
            var id: Int = 0
            var originalPrice:Double = 0
            var paymentPrice:Double = 0
            var payType: PaymentType = .cash
            var playPaiCoin:Int = 0
            var vipPrice:Double = 0
}
struct CourseDetailStudentModel:HandyJSON {
    var age: Int = 0
    var id: Int = 0
    var name = ""
    var phone:String = ""
            var age: Int = 0
            var id: Int = 0
            var name = ""
            var phone:String = ""
}
struct StudentProfileModel:HandyJSON{
    var birthday = ""
    var headImg = ""
    var height:Double = 0
    var idCard:String?
    var name = ""
    var phone:String?
    var sex:GenderType = .man
    var weight:Double = 0
            var birthday = ""
            var headImg = ""
            var height:Double = 0
            var idCard:String?
            var name = ""
            var phone:String?
            var sex:GenderType = .man
            var weight:Double = 0
   var stuId:Int?
            var stuId:Int?
}
struct StudentProfile1Model:HandyJSON{
    var birthday = ""
    var isNot = 2 //1. 是默认 2. 不是默认
    var stuAge:Int = 0
    var stuHeight:Double = 0
    var stuId = 0
    var stuName:String = ""
    var stuWeight:Double = 0
   var idCard:String = ""
   var stuPhone:String = ""
   var stuHeadImg:String = ""
   var sex:GenderType = .man
            var birthday = ""
            var isNot = 2 //1. 是默认 2. 不是默认
            var stuAge:Int = 0
            var stuHeight:Double = 0
            var stuId = 0
            var stuName:String = ""
            var stuWeight:Double = 0
            var idCard:String = ""
            var stuPhone:String = ""
            var stuHeadImg:String = ""
            var sex:GenderType = .man
}
struct StudentSimpleProfileModel:HandyJSON{
    var stuId = 0
    var stuName = ""
    var stuImage = ""
            var stuId = 0
            var stuName = ""
            var stuImage = ""
}
struct StudentProfile2Model:HandyJSON{
    var stuAge:Int = 0
    var stuId = 0
    var stuName:String = ""
    var stuPhone:String = ""
    var storeId:Int = 0
    var storeName:String = ""
            var stuAge:Int = 0
            var stuId = 0
            var stuName:String = ""
            var stuPhone:String = ""
            var storeId:Int = 0
            var storeName:String = ""
}
struct CouponInfoModel:HandyJSON{
        ///有效时间
    var effectiveTime: String = ""
        /// 优惠
    var favorable: Double = 0
    var id: Int = 0
    var name: String = ""
    var type:CouponType = .none
        /// 使用条件
    var useCondition: String = ""
            ///有效时间
            var effectiveTime: String = ""
            /// 优惠
            var favorable: Double = 0
            var id: Int = 0
            var name: String = ""
            var type:CouponType = .none
            /// 使用条件
            var useCondition: String = ""
}
struct CouponInfo_1_Model:HandyJSON{
      ///有效时间
   var effectiveTime: String = ""
      /// 优惠
   var favorable: String = ""
   var id: Int = 0
   var name: String = ""
   var type:CouponType = .none
      /// 使用条件
   var useCondition: String = ""
            ///有效时间
            var effectiveTime: String = ""
            /// 优惠
            var favorable: String = ""
            var id: Int = 0
            var name: String = ""
            var type:CouponType = .none
            /// 使用条件
            var useCondition: String = ""
}
struct PaymentModel:HandyJSON{
    var orderString = ""
   var returnId = 0
   var siteBooking:Int = 0
            var orderString = ""
            var returnId = 0
            var siteBooking:Int = 0
}
struct StoreWalfareModel:HandyJSON{
    var phone = ""
    var img = ""
            var phone = ""
            var img = ""
}
struct ActivityListModel:HandyJSON{
    var age: String = ""
    var cityName: String = ""
    var coverDrawing: String = ""
    var heat: Int = 0
    var id: Int = 0
    var introduction: String = ""
    var name: String = ""
    var registerCondition:RegisterAcitivyType = .allUser
    var registerEndTime: String = ""
    var status:SignupType = .all
            var age: String = ""
            var cityName: String = ""
            var coverDrawing: String = ""
            var heat: Int = 0
            var id: Int = 0
            var introduction: String = ""
            var name: String = ""
            var registerCondition:RegisterAcitivyType = .allUser
            var registerEndTime: String = ""
            var status:SignupType = .all
}
struct ActivityDetailModel:HandyJSON{
    var address: String = ""
    var age: String = ""
        ///是否报名
    var apply:Int = 0
    var city: String = ""
    var distance: Double = 0
    var endTime: String = ""
    var id: Int = 0
    var imgs: String = ""
    var introduction: String = ""
    var name: String = ""
    var participant = [ActivityDetailPartModel]()
    var payType: PayType = .aliPay
    var cashPrice: Double = 0
    var classPrice:Int = 0
    var playPaiCoin:Int = 0
    var province: String = ""
    var registerCondition:RegisterAcitivyType = .allUser
    var registerEndTime: String = ""
    var registrationNotes: String = ""
    var startTime: String = ""
    var status: SignupType = .all
    var storeAddress: String = ""
    var storeCoverDrawing: String = ""
    var storeLat: String = ""
    var storeLon: String = ""
    var storeName: String = ""
   var storeInfos = [ActivityDetailStoreModel]()
   var hasPass = 0 // 0:正常,1:截止
   var isReal:Int = 0
            var address: String = ""
            var age: String = ""
            ///是否报名
            var apply:Int = 0
            var city: String = ""
            var distance: Double = 0
            var endTime: String = ""
            var id: Int = 0
            var imgs: String = ""
            var introduction: String = ""
            var name: String = ""
            var participant = [ActivityDetailPartModel]()
            var payType: PayType = .aliPay
            var cashPrice: Double = 0
            var classPrice:Int = 0
            var playPaiCoin:Int = 0
            var province: String = ""
            var registerCondition:RegisterAcitivyType = .allUser
            var registerEndTime: String = ""
            var registrationNotes: String = ""
            var startTime: String = ""
            var status: SignupType = .all
            var storeAddress: String = ""
            var storeCoverDrawing: String = ""
            var storeLat: String = ""
            var storeLon: String = ""
            var storeName: String = ""
            var storeInfos = [ActivityDetailStoreModel]()
            var hasPass = 0 // 0:正常,1:截止
            var isReal:Int = 0
}
struct ActivityDetailStoreModel:HandyJSON{
   var address = ""
   var storeLon:Double = 0
   var distance:Double = 0
   var storeLat:Double = 0
   var name = ""
   var storeCoverDrawing = ""
            var address = ""
            var storeLon:Double = 0
            var distance:Double = 0
            var storeLat:Double = 0
            var name = ""
            var storeCoverDrawing = ""
}
struct ActivityDetailPartModel:HandyJSON{
    var age = 0
    var id = 0
    var idcard = ""
    var name = ""
    var residueClassHour = 0
    var phone = ""
   var birthday = ""
   var gender:GenderType = .man
   var height:Double = 0
   var weight:Double = 0
   var isStudent = 0 // 1:是学员, 0:否
            var age = 0
            var id = 0
            var idcard = ""
            var name = ""
            var residueClassHour = 0
            var phone = ""
            var birthday = ""
            var gender:GenderType = .man
            var height:Double = 0
            var weight:Double = 0
            var isStudent = 0 // 1:是学员, 0:否
}
struct CityProfileModel:HandyJSON {
    var id  = 0
    var code = 0
    var name = ""
            var id  = 0
            var code = 0
            var name = ""
}
struct BannerModel:HandyJSON{
    var id = 0
    var img = ""
    var jumpPage = ""
            var id = 0
            var img = ""
            var jumpPage = ""
   var page = ""
   var type = ""
   var turnId = 0
   var pid = 0
   var pageId = 0
   var typeId = 0
   var state = 0
   var name = ""
   var model = ""
            var page = ""
            var type = ""
            var turnId = 0
            var pid = 0
            var pageId = 0
            var typeId = 0
            var state = 0
            var name = ""
            var model = ""
            var isOpen = 0
            var isTop = 0
            var sort = 0
            var title = ""
            var buttonImage:String = ""
            var backgroundImage:String = ""
            var content:String = ""
}
struct VideosModel:HandyJSON{
    var id:Int = 0
    var list = [VideoDetailModel]()
    var name:String = ""
            var id:Int = 0
            var list = [VideoDetailModel]()
            var name:String = ""
}
struct VideoDetailModel:HandyJSON {
    var cover: String = ""
    var id:Int = 0
    var integral: Int = 0
    var introduce: String = ""
    var name: String = ""
        ///学习状态(0=未学习,1=已学习)
    var study: Int = 0
            var cover: String = ""
            var id:Int = 0
            var integral: Int = 0
            var introduce: String = ""
            var name: String = ""
            ///学习状态(0=未学习,1=已学习)
            var study: Int = 0
    var courseVideo:String = ""
    var introductionDrawing = ""
            var courseVideo:String = ""
            var introductionDrawing = ""
}
struct WeeklyItemModel:HandyJSON {
    var courseHours: Int = 0
    var coursePackageDiscountId: Int = 0
    var coursePackageName: String = ""
    var dataTime: String = ""
    var date: String = ""
    var discountPrice: Double = 0
    var donateHours: Int = 0
    var image: String = ""
    var originalPrice: Double = 0
        ///状态(1=查看详情 2=暂未开始)
    var status: Int = 0
    var storeDistance: Double = 0
            var courseHours: Int = 0
            var coursePackageDiscountId: Int = 0
            var coursePackageName: String = ""
            var dataTime: String = ""
            var date: String = ""
            var discountPrice: Double = 0
            var donateHours: Int = 0
            var image: String = ""
            var originalPrice: Double = 0
            ///状态(1=查看详情 2=暂未开始)
            var status: Int = 0
            var storeDistance: Double = 0
}
struct WeeklyItemDetailModel:HandyJSON {
    var classHours: Int = 0
    var costPrice: Double = 0
    var coursePackageDiscountId:Int = 0
    var coursePackageName: String = ""
    var coverDrawing:String = ""
        ///折扣价/会员价
    var discountPrice:Double = 0
    var distance:Double = 0
    var freeClassHours:Int = 0
    var introduceDrawing:String = ""
    var storeNameAddr:String = ""
    var time: String = ""
    var wanpaiGold:Int = 0
    var weekTime: String = ""
    var vipPrice:Double = 0
   var detailDrawing = ""
   var holiTime:String = ""
   var type = 1 // 1:常规课,2:假期课
   var payType:PaymentType = .cashCoin
            var classHours: Int = 0
            var costPrice: Double = 0
            var coursePackageDiscountId:Int = 0
            var coursePackageName: String = ""
            var coverDrawing:String = ""
            ///折扣价/会员价
            var discountPrice:Double = 0
            var distance:Double = 0
            var freeClassHours:Int = 0
            var introduceDrawing:String = ""
            var storeNameAddr:String = ""
            var time: String = ""
            var wanpaiGold:Int = 0
            var weekTime: String = ""
            var vipPrice:Double = 0
            var detailDrawing = ""
            var holiTime:String = ""
            var type = 1 // 1:常规课,2:假期课
            var payType:PaymentType = .cashCoin
}
struct SiteItemModel:HandyJSON{
    var distance: Double = 0
    var id: Int = 0
    var name: String = ""
    var price: Double = 0
    var siteTypeName: String = ""
    var storeAddress: String = ""
    var storeLat: String = ""
    var storeLon: String = ""
    var storeName: String = ""
    var times: String = ""
            var distance: Double = 0
            var id: Int = 0
            var name: String = ""
            var price: Double = 0
            var siteTypeName: String = ""
            var storeAddress: String = ""
            var storeLat: String = ""
            var storeLon: String = ""
            var storeName: String = ""
            var times: String = ""
}
struct SiteDetailModel:HandyJSON{
    var cashPrice: Double = 0
   var cashPriceOne:Double = 0
    var id: Int = 0
    var name: String = ""
    var playPaiCoin: Int = 0
   var playPaiCoinOne:Int = 0
    var siteTypeName: String = ""
    var storeAddress: String = ""
    var storeLat: String = ""
    var storeLon: String = ""
    var storeName: String = ""
    var storePhone: String = ""
    var storeCoverDrawing = ""
    var distance:Double = 0
   var imgs = ""
   var nextName = [String]() //场地名
   var halfName = [String]() //半场名
   var ishalf = 0 // 是否半场  1:是 2:否
   var introduce = ""
   var typeName = ""
            var cashPrice: Double = 0
            var cashPriceOne:Double = 0
            var id: Int = 0
            var name: String = ""
            var playPaiCoin: Int = 0
            var playPaiCoinOne:Int = 0
            var siteTypeName: String = ""
            var storeAddress: String = ""
            var storeLat: String = ""
            var storeLon: String = ""
            var storeName: String = ""
            var storePhone: String = ""
            var storeCoverDrawing = ""
            var distance:Double = 0
            var imgs = ""
            var nextName = [String]() //场地名
            var halfName = [String]() //半场名
            var ishalf = 0 // 是否半场  1:是 2:否
            var introduce = ""
            var typeName = ""
}
class SiteDetailDateTimeModel:HandyJSON,Equatable{
    var selectable = 0 //是否可选(0=否,1=是)
    var time = ""
            var selectable = 0 //是否可选(0=否,1=是)
            var time = ""
    static func ==(lhs: SiteDetailDateTimeModel, rhs: SiteDetailDateTimeModel) -> Bool {
        return (lhs.selectable == rhs.selectable) && (lhs.time == rhs.time)
    }
            static func ==(lhs: SiteDetailDateTimeModel, rhs: SiteDetailDateTimeModel) -> Bool {
                        return (lhs.selectable == rhs.selectable) && (lhs.time == rhs.time)
            }
   required init() {}
            required init() {}
}
class YardBookingModel:HandyJSON{
   var appointment: String = ""
   var id: Int = 0
   var insertTime: TimeInterval = 0
   var name: String = ""
   var payMoney:Double = 0
   var siteTypeName: String = ""
   var status: YardBookingType = .none
   var storeAddress: String = ""
   var storeLat: String = ""
   var storeLon: String = ""
   var storeName: String = ""
   var phone:String = ""
   var payType:PayType = .aliPay
            var appointment: String = ""
            var id: Int = 0
            var insertTime: TimeInterval = 0
            var name: String = ""
            var payMoney:Double = 0
            var siteTypeName: String = ""
            var status: YardBookingType = .none
            var storeAddress: String = ""
            var storeLat: String = ""
            var storeLon: String = ""
            var storeName: String = ""
            var phone:String = ""
            var payType:PayType = .aliPay
   required init() {}
            required init() {}
}
struct YardBookingContinuePriceModel:HandyJSON{
    var cash:Double = 0
    var playPaiCoin:Int = 0
            var cash:Double = 0
            var playPaiCoin:Int = 0
}
struct StartClouseHomeModel:HandyJSON{
    var bmi: Double = 0
    var courseList = [StartClouseListModel]()
    var deductedNums: Int = 0
    var exerciseVideoList = [StartClouseVideoListModel]()
    var height: Int = 0
    var imgs: String = ""
        ///是否有学员信息 (1. 有学员信息 2.没有学员信息)
    var isThere: Int = 2
    var remainingNums: Int = 0
    var stuAge: Int = 0
    var stuId: Int = 0
    var stuImg: String = ""
    var stuName: String = ""
    var stuSex: GenderType = .man
    var totalNums: Int = 0
    var weight: Int = 0
   var bodyStatus = ""
            var bmi: Double = 0
            var courseList = [StartClouseListModel]()
            var deductedNums: Int = 0
            var exerciseVideoList = [StartClouseVideoListModel]()
            var height: Int = 0
            var imgs: String = ""
            ///是否有学员信息 (1. 有学员信息 2.没有学员信息)
            var isThere: Int = 2
            var remainingNums: Int = 0
            var stuAge: Int = 0
            var stuId: Int = 0
            var stuImg: String = ""
            var stuName: String = ""
            var stuSex: GenderType = .man
            var totalNums: Int = 0
            var weight: Int = 0
            var bodyStatus = ""
//   func save(){
//      UserDefaults.standard.set(self.toJSONString(), forKey: "StartClouseHomeModel")
//      UserDefaults.standard.synchronize()
//   }
//
//   static func get()->StartClouseHomeModel?{
//      if let string = UserDefaults.standard.string(forKey: "StartClouseHomeModel"){
//         return StartClouseHomeModel.deserialize(from: string)
//      }else{
//         return nil
//      }
//
//   }
            //   func save(){
            //      UserDefaults.standard.set(self.toJSONString(), forKey: "StartClouseHomeModel")
            //      UserDefaults.standard.synchronize()
            //   }
            //
            //   static func get()->StartClouseHomeModel?{
            //      if let string = UserDefaults.standard.string(forKey: "StartClouseHomeModel"){
            //         return StartClouseHomeModel.deserialize(from: string)
            //      }else{
            //         return nil
            //      }
            //
            //   }
}
struct StartClouseListModel:HandyJSON{
    var courseId = 0
    var courseName = ""
    var deductedNums = 0
    var remainingNums = 0
    var totalNums = 0
    var periodOfValidity = ""
   var isAble = 0
   var id = 0
   var courseType = 0 //1:常规,2:假期
   var orderId:Int?
   var coursePayId:Int?
            var courseId = 0
            var courseName = ""
            var deductedNums = 0
            var remainingNums = 0
            var totalNums = 0
            var periodOfValidity = ""
            var isAble = 0
            var id = 0
            var courseType = 0 //1:常规,2:假期
            var orderId:Int?
            var coursePayId:Int?
}
struct StartClouseVideoListModel:HandyJSON {
    var videoCoverImgUrl: String = ""
    var videoName: String = ""
    var videoUrl: String = ""
   var videoId = 0
   var coursePackageId = 0
   var scId:Int = 0
            var videoCoverImgUrl: String = ""
            var videoName: String = ""
            var videoUrl: String = ""
            var videoId = 0
            var coursePackageId = 0
            var scId:Int = 0
}
struct StartClouseReportModel:HandyJSON{
    var bmi:Double = 0
    var height:Int = 0
    var urls = [String]()
    var weight:Int = 0
   var bodyStatus = ""
            var bmi:Double = 0
            var height:Int = 0
            var urls = [String]()
            var weight:Int = 0
            var bodyStatus = ""
}
class StartClouseExploreModel:HandyJSON{
    var distance:Double = 0
    var storeAddr = ""
    var storeId:Int = 0
    var storeImg = ""
    var storeName = ""
            var distance:Double = 0
            var storeAddr = ""
            var storeId:Int = 0
            var storeImg = ""
            var storeName = ""
    var latitude:Double = 0
    var longitude:Double = 0
            var latitude:Double = 0
            var longitude:Double = 0
   var index:Int?
    var annotation:MAPointAnnotation?
            var index:Int?
            var annotation:MAPointAnnotation?
    required init(){}
            required init(){}
}
struct NoticeItemModel:HandyJSON{
    var noticeContents = ""
    var noticeId = 0
    var noticeTitle = ""
    var noticeTime = ""
   var quesId = 0
   var quesTitle = ""
   var quesContents = ""
   var quesTime = ""
            var noticeContents = ""
            var noticeId = 0
            var noticeTitle = ""
            var noticeTime = ""
            var quesId = 0
            var quesTitle = ""
            var quesContents = ""
            var quesTime = ""
}
struct SearchStoreDetailModel:HandyJSON{
    var courseVoList = [SearchStoreDetailCourseModel]()
    var images = [String]()
    var storeAddress: String = ""
    var storeId: Int = 0
    var storeInfo: String = ""
    var storeName: String = ""
    var storeTime: String = ""
    var phone:String = ""
    var lat:Double = 0
    var lon:Double = 0
    var venueList = [SearchStoreDetailVenueModel]()
            var courseVoList = [SearchStoreDetailCourseModel]()
            var images = [String]()
            var storeAddress: String = ""
            var storeId: Int = 0
            var storeInfo: String = ""
            var storeName: String = ""
            var storeTime: String = ""
            var phone:String = ""
            var lat:Double = 0
            var lon:Double = 0
            var venueList = [SearchStoreDetailVenueModel]()
}
struct SearchStoreListModel:HandyJSON{
   var storeAddress:String = ""
   var storeDistance:Double = 0
   var storeImg:String = ""
   var storeId:Int = 0
   var storeInfo:String = ""
   var storeName:String = ""
   var storeTime:String = ""
   var storePhone:String = ""
            var storeAddress:String = ""
            var storeDistance:Double = 0
            var storeImg:String = ""
            var storeId:Int = 0
            var storeInfo:String = ""
            var storeName:String = ""
            var storeTime:String = ""
            var storePhone:String = ""
}
struct SearchStoreDetailCourseModel:HandyJSON{
    var applicantsNumber: Int = 0
    var classHours = [Int]()
   var classStartTime:String?
    var courseId: Int = 0
    var coverDrawing: String = ""
    var name: String = ""
    var originalPrice:Double = 0
   var coin:Int = 0
            var applicantsNumber: Int = 0
            var classHours = [Int]()
            var classStartTime:String?
            var courseId: Int = 0
            var coverDrawing: String = ""
            var name: String = ""
            var originalPrice:Double = 0
            var coin:Int = 0
}
struct SearchStoreDetailVenueModel:HandyJSON{
    var price:Double = 0
    var siteId: Int = 0
    var siteName: String = ""
    var siteTime: String = ""
    var siteType: String = ""
            var price:Double = 0
            var siteId: Int = 0
            var siteName: String = ""
            var siteTime: String = ""
            var siteType: String = ""
}
struct UserInfoModel:HandyJSON{
    var address: String = ""
    var birthday: String = ""
    var memberLifespan: String = ""
    var sex: String = ""
    var userImage: String = ""
    var userName: String = ""
    var userPhone: String = ""
   var userId:Int = 0
   var isVip = 0 //0:否 1:是
   var needChange = 0 // 1需要改,0不需要
            var address: String = ""
            var birthday: String = ""
            var memberLifespan: String = ""
            var sex: String = ""
            var userImage: String = ""
            var userName: String = ""
            var userPhone: String = ""
            var userId:Int = 0
            var isVip = 0 //0:否 1:是
            var needChange = 0 // 1需要改,0不需要
   func save(){
      UserDefaults.standard.set(self.toJSONString(), forKey: "UserInfoModel")
      UserDefaults.standard.synchronize()
   }
            func save(){
                        UserDefaults.standard.set(self.toJSONString(), forKey: "UserInfoModel")
                        UserDefaults.standard.synchronize()
            }
   static func get()->UserInfoModel?{
      if let string = UserDefaults.standard.string(forKey: "UserInfoModel"){
         return UserInfoModel.deserialize(from: string)
      }else{
         return nil
      }
            static func get()->UserInfoModel?{
                        if let string = UserDefaults.standard.string(forKey: "UserInfoModel"){
                                    return UserInfoModel.deserialize(from: string)
                        }else{
                                    return nil
                        }
   }
            }
}
struct BenefitHomeModel:HandyJSON{
    var commodities = [BenefitHomeCommonditiesModel]()
    var image: BenefitImageModel?
    var isMember: String = ""
    var userHeadImg: String = ""
    var userIntegral: Int = 0
    var userName: String = "未命名"
    var wpCoin: Int = 0
            var commodities = [BenefitHomeCommonditiesModel]()
            var image: BenefitImageModel?
            var isMember: String = ""
            var userHeadImg: String = ""
            var userIntegral: Int = 0
            var userName: String = "未命名"
            var wpCoin: Int = 0
}
struct BenefitImageModel:HandyJSON{
    var myConpons: String?
    var onlineShop: String?
    var todayFree: String?
    var weeksBenefit: String?
            var myConpons: String?
            var onlineShop: String?
            var todayFree: String?
            var weeksBenefit: String?
}
struct BenefitHomeCommonditiesModel:HandyJSON{
    var commodityId: Int = 0
    var commodityImg: String = ""
    var commodityName: String = ""
    var commodityPrice: Double = 0
    var goodsType:ExchangeType = .goods
            var commodityId: Int = 0
            var commodityImg: String = ""
            var commodityName: String = ""
            var commodityPrice: Double = 0
            var goodsType:ExchangeType = .goods
}
struct BillingModel:HandyJSON{
    var consumeAmount = ""
    var consumeName = ""
    var consumeTime = ""
   var type:DetailType?//1扣减 2增加
   var recordId:Int?
   var detailsType:DetailType?//1扣减 2增加
            var consumeAmount = ""
            var consumeName = ""
            var consumeTime = ""
            var type:DetailType?//1扣减 2增加
            var recordId:Int?
            var detailsType:DetailType?//1扣减 2增加
//   mutating func mapping(mapper: HelpingMapper) {
//      mapper <<<
//         self.type <-- "detailsType"
//   }
            //   mutating func mapping(mapper: HelpingMapper) {
            //      mapper <<<
            //         self.type <-- "detailsType"
            //   }
}
class CouponModel:HandyJSON{
    var available: String = ""
    var cityOrStore: String = ""
    var effectiveTime: String = ""
    var id: Int = 0
    var instructionsForUse: String = ""
    var name: String = ""
    var ruleModel: CouponModelRuleModel?
    var type:CouponType = .discount
    var useCondition: CouponConditionType = .nationwide
    var useStatus: CouponUseType = .overdue
            var available: String = ""
            var cityOrStore: String = ""
            var effectiveTime: String = ""
            var id: Int = 0
            var instructionsForUse: String = ""
            var name: String = ""
            var ruleModel: CouponModelRuleModel?
            var type:CouponType = .discount
            var useCondition: CouponConditionType = .nationwide
            var useStatus: CouponUseType = .overdue
   var showAll = false
            var showAll = false
   required init(){}
            required init(){}
}
struct CouponModelRuleModel:HandyJSON{
      /// 满X元 条件
    var conditionalAmount: String = ""
      /// (减)抵扣金额
    var deductionAmount: String = ""
            /// 满X元 条件
            var conditionalAmount: String = ""
            /// (减)抵扣金额
            var deductionAmount: String = ""
      /// 名称
    var experienceName: String = ""
            /// 名称
            var experienceName: String = ""
}
struct CoinExchangeModel:HandyJSON{
    var amount:Double = 0
    var wpGold:Int = 0
   var chargeId = 0
            var amount:Double = 0
            var wpGold:Int = 0
            var chargeId = 0
}
struct ExchangeGoodsModel:HandyJSON {
    var belongs: String = ""
    var belongsScope: RegisterAcitivyType = .allUser
    var contents: String = ""
    var cost: Int = 0
    var courseHours: Int = 0
    var endTime: String = ""
    var exchangeAddrType: CouponConditionType = .nationwide
    var exchangeType: ExchangePaymentType = .coin
    var goodId: Int = 0
    var goodName: String = ""
    var goodType: ExchangeType = .goods
    var perLimit: Int = 0
    var pics = [String]()
    var redeemedNum: Int = 0
    var integral:Int = 0
    var cash:Double = 0
    var residueNum: Int = 0
    var startTime: String = ""
   var cardType:CardType! = .subCard
            var belongs: String = ""
            var belongsScope: RegisterAcitivyType = .allUser
            var contents: String = ""
            var cost: Int = 0
            var courseHours: Int = 0
            var endTime: String = ""
            var exchangeAddrType: CouponConditionType = .nationwide
            var exchangeType: ExchangePaymentType = .coin
            var goodId: Int = 0
            var goodName: String = ""
            var goodType: ExchangeType = .goods
            var perLimit: Int = 0
            var pics = [String]()
            var redeemedNum: Int = 0
            var integral:Int = 0
            var cash:Double = 0
            var residueNum: Int = 0
            var startTime: String = ""
            var cardType:CardType! = .subCard
}
struct StoreSimpleModel:HandyJSON{
    var storeName = ""
    var storeId = 0
            var storeName = ""
            var storeId = 0
}
struct MarketMdoel:HandyJSON{
    var amount: Double = 0
    var belongsType: RegisterAcitivyType = .allUser
    var condition: ExchangePaymentType = .cashAndCoin
    var goodId: Int = 0
    var goodImg: String = ""
    var goodName: String = ""
    var goodsType: ExchangeType = .goods
    var integral: Int = 0
    var nums: Int = 0
            var amount: Double = 0
            var belongsType: RegisterAcitivyType = .allUser
            var condition: ExchangePaymentType = .cashAndCoin
            var goodId: Int = 0
            var goodImg: String = ""
            var goodName: String = ""
            var goodsType: ExchangeType = .goods
            var integral: Int = 0
            var nums: Int = 0
}
struct RecordsModel:HandyJSON{
    var detailsId: Int = 0
    var endTime: String = ""
    var goodName: String = ""
    var goodType: ExchangeType = .goods
    var exchangeType: ExchangePaymentType = .coin
    var integral: Int = 0
    var cash: Double = 0
    var startTime: String = ""
    var useStatus: UseStateType = .used
   var cardType:CardType = .none
   var userId:Int = 0
   var sid = [Int]()
   var rid = [Int]()
            var detailsId: Int = 0
            var endTime: String = ""
            var goodName: String = ""
            var goodType: ExchangeType = .goods
            var exchangeType: ExchangePaymentType = .coin
            var integral: Int = 0
            var cash: Double = 0
            var startTime: String = ""
            var useStatus: UseStateType = .used
            var cardType:CardType = .none
            var userId:Int = 0
            var sid = [Int]()
            var rid = [Int]()
}
struct RecordsDetailModel:HandyJSON{
    var belongs: String = ""
    var classHours = 0
    var contents: String = ""
    var detailsId: Int = 0
    var endTime: String = ""
    var goodName: String = ""
    var orderTime: String = ""
    var pics = [String]()
    var startTime: String = ""
    var useType: UseStateType = .unUsed
    var writeOffName: String = ""
    var writeOffTime: String = ""
            var belongs: String = ""
            var classHours = 0
            var contents: String = ""
            var detailsId: Int = 0
            var endTime: String = ""
            var goodName: String = ""
            var orderTime: String = ""
            var pics = [String]()
            var startTime: String = ""
            var useType: UseStateType = .unUsed
            var writeOffName: String = ""
            var writeOffTime: String = ""
    var goodType: ExchangeType = .goods
    var cash: Double = 0
    var exchangeType: ExchangePaymentType = .coin
    var integral: Int = 0
    var exchangeAddrType: CouponConditionType = .nationwide
   var cardType:CardType! = .subCard
            var goodType: ExchangeType = .goods
            var cash: Double = 0
            var exchangeType: ExchangePaymentType = .coin
            var integral: Int = 0
            var exchangeAddrType: CouponConditionType = .nationwide
            var cardType:CardType! = .subCard
}
class StudentAppointModel:HandyJSON {
    var courseHours: Int = 0
    var coursePackageId: Int = 0
    var coursePackageName: String = ""
    var courseStuRecordId: Int = 0
    var status:StudentAppointType = .complete
    var storeNameAddr: String = ""
    var timeFrame: String = ""
//   var ids = [Int]()
   var siteId = 0
            var courseHours: Int = 0
            var coursePackageId: Int = 0
            var coursePackageName: String = ""
            var courseStuRecordId: Int = 0
            var status:StudentAppointType = .complete
            var storeNameAddr: String = ""
            var timeFrame: String = ""
            //   var ids = [Int]()
            var siteId = 0
   var userId = 0
   var sid = [Int]()
   var rid = [Int]()
            var userId = 0
            var sid = [Int]()
            var rid = [Int]()
    required init() {}
            required init() {}
}
struct ExerciseVideoModel:HandyJSON {
    var coursePackageId: Int = 0
    var coverImage: String = ""
    var integral:Int = 0
    var packageName: String = ""
    var studyStatus: Int = 1
    var synopsis: String = ""
    var videoId: Int = 0
    var videoName: String = ""
   var scId:Int = 0
            var coursePackageId: Int = 0
            var coverImage: String = ""
            var integral:Int = 0
            var packageName: String = ""
            var studyStatus: Int = 1
            var synopsis: String = ""
            var videoId: Int = 0
            var videoName: String = ""
            var scId:Int = 0
}
struct ExerciseVideoDetailModel:HandyJSON {
    var coursePackageId: Int = 0
    var detailedDiagram: String = ""
    var integral: Int = 0
    var packageName: String = ""
    var studyStatus: Int = 0
    var synopsis: String = ""
    var videoId: Int = 0
    var videoName: String = ""
    var videoURL: String = ""
            var coursePackageId: Int = 0
            var detailedDiagram: String = ""
            var integral: Int = 0
            var packageName: String = ""
            var studyStatus: Int = 0
            var synopsis: String = ""
            var videoId: Int = 0
            var videoName: String = ""
            var videoURL: String = ""
}
struct StudentMedalModel:HandyJSON {
    var medalName = ""
    var medalType:MedalType = .club
            var medalName = ""
            var medalType:MedalType = .club
}
struct StudentCommentModel:HandyJSON{
    var comTime: String = ""
    var contents: String = ""
    var headImg: String = ""
    var imgs = [String]()
    var stuName: String = ""
            var comTime: String = ""
            var contents: String = ""
            var headImg: String = ""
            var imgs = [String]()
            var stuName: String = ""
}
struct CourseRecordModel:HandyJSON{
    var purchaseAmount:String = ""
    var purchaseTime = ""
    var purchaseType = ""
            var purchaseAmount:String = ""
            var purchaseTime = ""
            var purchaseType = ""
}
class WeeklyCourseModel:HandyJSON{
   var distance:Double = 0
   var data = [WeeklyCourseItemModel]()
   var name = ""
   var lon:Double = 0
   var lat:Double = 0
            var distance:Double = 0
            var data = [WeeklyCourseItemModel]()
            var name = ""
            var lon:Double = 0
            var lat:Double = 0
   required init(){}
            required init(){}
}
class WeeklyCourseItemModel:HandyJSON{
   var id = 0
   var name = ""
   var intro = ""
   var type = 0 // 1:请假 2: 购课
   var time = [String]()
   var num = 0
   var money:Double = 0
   var isType = 0 //1不能请假,0:可以请假 3:已取消
   var courseType = 0 // 1:常规,2:假期课
            var id = 0
            var name = ""
            var intro = ""
            var type = 0 // 1:请假 2: 购课
            var time = [String]()
            var num = 0
            var money:Double = 0
            var isType = 0 //1不能请假,0:可以请假 3:已取消
            var courseType = 0 // 1:常规,2:假期课
   required init(){}
            required init(){}
}
struct ExperienceCourseModel:HandyJSON {
   var id = 0
   var name = ""
   var num = 0
   var week = ""
   var time = [String]()
   var day = [String]()
            var id = 0
            var name = ""
            var num = 0
            var week = ""
            var time = [String]()
            var day = [String]()
}
struct StudentMedalInfoModel:HandyJSON{
   var isTopLevel = 2
   var levelNum = 0
   var medalName = ""
   var medalType:MedalType = .club
   var nextLevel = 0
   var upgradeConditions = ""
            var isTopLevel = 2
            var levelNum = 0
            var medalName = ""
            var medalType:MedalType = .club
            var nextLevel = 0
            var upgradeConditions = ""
}
struct CourseListSubModel:HandyJSON{
   var id = 0
   var courseNum = 0
   var name = ""
            var id = 0
            var courseNum = 0
            var name = ""
}
struct CourseCouponModel:HandyJSON{
   var auditRemark: String = ""
   var auditStatus: Int = 0
   var auditUserId: String = ""
   var cash: Float = 0.0
   var city: String = ""
   var cityCode: String = ""
   var content:String = ""
   var distributionMethod: Int = 0
   var endTime: String = ""
   var id: Int = 0
   var illustrate: String = ""
   var insertTime: String = ""
   var integral: Float = 0.0
   var name: String = ""
   var pickUpQuantity: Int = 0
   var province: String = ""
   var provinceCode: String = ""
   var quantityIssued: Int = 0
   var redemptionMethod: Int = 0
   var startTime: String = ""
   var state: Int = 0
   var status: Int = 0
   var type: CouponType = .discount
   var userPopulation: Int = 0
   var useScope: Int = 0
   var available:String = ""
   var timePeriod:String = "" //有效期
            var auditRemark: String = ""
            var auditStatus: Int = 0
            var auditUserId: String = ""
            var cash: Float = 0.0
            var city: String = ""
            var cityCode: String = ""
            var content:String = ""
            var distributionMethod: Int = 0
            var endTime: String = ""
            var id: Int = 0
            var illustrate: String = ""
            var insertTime: String = ""
            var integral: Float = 0.0
            var name: String = ""
            var pickUpQuantity: Int = 0
            var province: String = ""
            var provinceCode: String = ""
            var quantityIssued: Int = 0
            var redemptionMethod: Int = 0
            var startTime: String = ""
            var state: Int = 0
            var status: Int = 0
            var type: CouponType = .discount
            var userPopulation: Int = 0
            var useScope: Int = 0
            var available:String = ""
            var timePeriod:String = "" //有效期
}
struct YardBookingDetailModel:HandyJSON{
   var data:YardBookingDetailDataModel?
   var shopName:String = ""
   var siteName:String = ""
   var shopAddress:String = ""
   var siteType:String = ""
            var data:YardBookingDetailDataModel?
            var shopName:String = ""
            var siteName:String = ""
            var shopAddress:String = ""
            var siteType:String = ""
//   var ids = [Int]() //区域ID
            //   var ids = [Int]() //区域ID
}
struct YardBookingDetailDataModel:HandyJSON{
   var booker: String = ""
   var cancelTime: String = ""
   var cancelUserId: String = ""
   var city: String = ""
   var cityCode: String = ""
   var endTime: Int = 0
   //0:默认,1:手环
   var goType: Int = 0
   var halfName: String = ""
   var id: Int = 0
   var insertTime: Int = 0
   var isHalf: Int = 0
   var nextName: String = ""
   var orderNo: String = ""
   var payMoney: Double = 0.0
   var payOrderNo: String = ""
   var payTime: Int = 0
   var payType: PayType = .coin
   var payUserId: String = ""
   var phone: String = ""
   var province: String = ""
   var provinceCode: String = ""
   var refundOrderNo: String = ""
   var remark: String = ""
   var siteId: Int = 0
   var startTime: Int = 0
   var status: YardBookingType = .cancel
   var storeId: Int = 0
   var times: String = ""
   var userCouponId: String = ""
   var voucher: String = ""
   var typeName = ""
   var storePhone:String = ""
            var booker: String = ""
            var cancelTime: String = ""
            var cancelUserId: String = ""
            var city: String = ""
            var cityCode: String = ""
            var endTime: Int = 0
            //0:默认,1:手环
            var goType: Int = 0
            var halfName: String = ""
            var id: Int = 0
            var insertTime: Int = 0
            var isHalf: Int = 0
            var nextName: String = ""
            var orderNo: String = ""
            var payMoney: Double = 0.0
            var payOrderNo: String = ""
            var payTime: Int = 0
            var payType: PayType = .coin
            var payUserId: String = ""
            var phone: String = ""
            var province: String = ""
            var provinceCode: String = ""
            var refundOrderNo: String = ""
            var remark: String = ""
            var siteId: Int = 0
            var startTime: Int = 0
            var status: YardBookingType = .cancel
            var storeId: Int = 0
            var times: String = ""
            var userCouponId: String = ""
            var voucher: String = ""
            var typeName = ""
            var storePhone:String = ""
   var appUserId: Int = 0
   var sid = [Int]()
   var rid = [Int]()
            var appUserId: Int = 0
            var sid = [Int]()
            var rid = [Int]()
}
struct GameListModel:HandyJSON {
   var id = 0
   var cash:Double = 0
   var gameId:Int = 0
   var img = ""
   var name = ""
   var integral = 0
   var otherId = 0
   var playCoin = 0
   var video = ""
   var intro = ""
            var id = 0
            var cash:Double = 0
            var gameId:Int = 0
            var img = ""
            var name = ""
            var integral = 0
            var otherId = 0
            var playCoin = 0
            var video = ""
            var intro = ""
}
struct DoorModel:HandyJSON{
   var app_user_id = ""
   var time:DoorTimeModel?
            var app_user_id = ""
            var time:DoorTimeModel?
}
struct DoorTimeModel:HandyJSON{
   var start_time:TimeInterval?
   var end_time:TimeInterval?
            var start_time:TimeInterval?
            var end_time:TimeInterval?
}
struct GamesRecordModel:HandyJSON{
   var game_name = ""
   var score = 0
   var time = ""
            var game_name = ""
            var score = 0
            var time = ""
}
struct OpenDoorModel:HandyJSON{
   var sid = [Int]() //场馆ID,全国通用值为0
   var rid = [Int]() //区域ID,单场馆和多场馆都可以放入,全国可以为空数组
   var uid:Int? //用户ID
   var time = [OpenDoorTimeModel]() //时间
   var type = 2 //固定
            var sid = [Int]() //场馆ID,全国通用值为0
            var rid = [Int]() //区域ID,单场馆和多场馆都可以放入,全国可以为空数组
            var uid:Int? //用户ID
            var time = [OpenDoorTimeModel]() //时间
            var type = 2 //固定
}
struct OpenDoorTimeModel:HandyJSON {
   var start_time:TimeInterval = 0 //开始时间
   var end_time:TimeInterval = 0 //结束时间
            var start_time:TimeInterval = 0 //开始时间
            var end_time:TimeInterval = 0 //结束时间
}
struct LoginModel:HandyJSON{
   var token = ""
   var isBind = 0
            var token = ""
            var isBind = 0
}