//
// PerlWS.h
// LiveProject
//
// Created by haibara on 9/18/15.
//
//

#import <Foundation/Foundation.h>
#import <RestKit/RestKit.h>
#import "JGotoWS.h"
#import "WebService.h"
#import "BusRoute.h"
#import "BusVendorReview.h"

@interface PerlWS : NSObject
@end

@interface AppInfoResponse : JGotoWSResponse
@property (nonatomic, assign) BOOL update_required;
@property (nonatomic, strong) NSString *bus_search_data_source_digest;
@property (nonatomic, strong) NSString *hotel_search_data_source_digest;
@property (nonatomic, strong) NSString *guest_checkout_promotion_text;
@end

@interface SearchSales : JGotoWS
@property (nonatomic, strong)NSString *customer_name;
@property (nonatomic, strong) NSString *exact_email;
@property (nonatomic, strong) NSString *cn;
@property (nonatomic, strong) NSString *date_from;
@property (nonatomic, strong) NSString *date_to;
@property (nonatomic, assign) NSInteger date_type;
@property (nonatomic, assign) NSInteger product_id;
@end

@interface FindUniqueOrder : JGotoWS
@property (nonatomic, assign) NSInteger stock_id;
@property (nonatomic, strong) NSString *barcode;
@property (nonatomic, assign) NSInteger product_id;
@end

@interface BookingSummary : JGotoWS
@property (nonatomic, strong)NSString *date;
@end

@interface BookingSummaryResponse : JGotoWSResponse
@property (nonatomic, strong)NSArray *datas;
@end

/////////////////////////////////////////////////////////////////////

@interface GetAllBusRoute : WebService
@property (nonatomic, assign) NSInteger vendorNo;
@end

@interface GetDynamicPrice : WebService
@property (nonatomic, assign) NSInteger pid;
@property (nonatomic, strong) NSString *serviceDate;
@end

@interface GetDynamicPriceResponse : WebServiceResponse
@property (nonatomic, assign) BOOL isDynamic;
@property (nonatomic, strong) NSArray<GetProductOptionsResponsePeopleType *> *priceEntries;
@end

@interface GetBusVendorReviews : WebService
@property (nonatomic, assign) NSInteger vendorId;
@property (nonatomic, assign) NSInteger pageNo;
@property (nonatomic, assign) NSInteger pageSize;
@end

@interface BusVendorReviewsSummary : NSObject
@property (nonatomic, assign) NSInteger reviews_num;
@property (nonatomic, assign) CGFloat avg_overall;
@property (nonatomic, assign) CGFloat avg_cleanliness;
@property (nonatomic, assign) CGFloat avg_punctuality;
@property (nonatomic, assign) CGFloat avg_service;
@property (nonatomic, assign) CGFloat avg_comfort;
@property (nonatomic, assign) CGFloat recommend_rate;
@property (nonatomic, strong) NSString *image_url;
@property (nonatomic, strong) NSString *reviews_description;
@end

@interface GetBusVendorReviewsResponse : WebServiceResponse
@property (nonatomic, assign) NSInteger total_count;
@property (nonatomic, strong) BusVendorReviewsSummary *reviews_summary;
@property (nonatomic, strong) NSArray *reviews;
@end

@interface GetBusOptions : GetProductOptions
@end

@interface BookBus : BookGoods
@property (nonatomic, assign) NSInteger cashSaleVendorId;
@property (nonatomic, assign) CGFloat cashAmount;
@end

@interface TrackBusStatus : WebService
@property (nonatomic, strong)NSString *serviceDate;
@property (nonatomic, strong) NSString *scheduleId;
@property (nonatomic, strong) NSString *departureCity;
@property (nonatomic, strong) NSString *arrivalCity;
@end

@interface TrackBusStatusResponse : WebServiceResponse
@property (nonatomic, strong)NSArray *bus_status_infos;
@property (nonatomic, strong) NSArray *products;
@property (nonatomic, strong) NSArray *vendors;
@end

@interface GetReschedulePolicy : WebService
@property (nonatomic, assign) NSInteger itineraryNo;
@end

@interface GetReschedulePolicyResponseLabel : NSObject
@property (nonatomic, strong)NSString *text;
@property (nonatomic, strong) NSString *html;
@end

@interface GetReschedulePolicyResponseSection : NSObject
@property (nonatomic, strong)GetReschedulePolicyResponseLabel *titleLabel;
@property (nonatomic, strong) NSArray *detailLabels;
@end

@interface GetReschedulePolicyResponse : WebServiceResponse
@property (nonatomic, strong)NSString *header;
@property (nonatomic, strong) NSArray *sections;
@end

@interface CheckRescheduleFee : WebService
@property (nonatomic, strong)NSString *orderCode;
@property (nonatomic, strong) NSArray *transferredOut;
@property (nonatomic, strong) NSArray *transferredIn;
@end

@interface CheckRescheduleFeeResponse : WebServiceResponse
@property (nonatomic, strong)NSString *calculate_fee;
@end

@interface FinishReschedule : WebService
@property (nonatomic, strong)NSString *orderCode;
@property (nonatomic, strong) NSArray *transferredOut;
@property (nonatomic, strong) NSArray *transferredIn;
@property (nonatomic, strong) _PaymentInfo *paymentInfo;
@end

@interface FinishRescheduleResponse : WebServiceResponse
@property (nonatomic, strong)NSString *order_code;
@property (nonatomic, strong) _PaymentInfo *paymentInfo;
@end

@interface PostBusVendorReview : WebService
@property (nonatomic, assign) NSInteger entryId;
@property (nonatomic, strong) BusVendorReview *reviewDetails;

- (NSString *)innerXML;

@end

@interface PostBusVendorReviewResponse : WebServiceResponse
@property (nonatomic, assign) CGFloat overall_rating;
@end

@interface RegisterSupportDevice : WebService
@property (nonatomic, strong)NSString *deviceIdentifier;
@end

@interface RegisterSupportDeviceResponse : WebServiceResponse
@property (nonatomic, assign) BOOL success;
@end

@interface GetSupportTimeClockStatus : WebService
@end

@interface GetSupportTimeClockStatusResponse : WebServiceResponse
@property (nonatomic, assign) BOOL check_flag;
@end

@interface PunchSupportTimeClock : WebService
@property (nonatomic, strong)NSString *officeIp;
@property (nonatomic, strong) NSString *deviceIdentifier;
@end

@interface PunchSupportTimeClockResponse : WebServiceResponse
@property (nonatomic, assign) BOOL success;
@end

@interface PrefetchLoginPostData : WebService
@end

@interface PrefetchLoginPostDataResponse : WebServiceResponse
@property (nonatomic, strong)NSArray *products;
@property (nonatomic, strong) NSArray *destinations;
@property (nonatomic, strong) NSArray *bus_routes;
@property (nonatomic, strong) NSArray *bus_stations;
@end

@interface QuickScanTicket : WebService
@property (nonatomic, strong)NSString *qrCode;
@property (nonatomic, assign) BOOL autoCheckin;
@property (nonatomic, assign) NSInteger productNo;
@property (nonatomic, strong) NSString *departureDate;
@end

@interface QuickScanTicketResponse : WebServiceResponse
@property (nonatomic, strong)SoldStock *sold_stock;
@end

@interface ChangeBusStatus : WebService
@property (nonatomic, strong)NSString *scheduleId;
@property (nonatomic, strong) NSString *departureDate;
@property (nonatomic, assign) NSInteger status;
@property (nonatomic, strong) NSString *note;
@property (nonatomic, assign) NSInteger hour;
@property (nonatomic, assign) NSInteger min;
@property (nonatomic, assign) NSInteger cancelledType;
@end

