#import <Foundation/Foundation.h>
#import "BusStop.h"
#import "Label.h"
#import "PPLBasedPrice.h"
#import "RoomBasedPrice.h"
#import "Vendor.h"

@interface Product : NSObject

@property (nonatomic, assign) NSInteger product_id;
@property (nonatomic, assign) NSInteger p_type;
@property (nonatomic, strong) NSString *name;
@property (nonatomic, assign) NSInteger vendor;
@property (nonatomic, assign) NSInteger product_vendor;

@property (nonatomic, assign) NSInteger hotel_id;
@property (nonatomic, assign) NSInteger duration_days;
@property (nonatomic, strong) Vendor *vendor_obj;
@property (nonatomic, strong) NSArray *labels;
@property (nonatomic, strong) NSArray *stops;
@property (nonatomic, strong) NSArray *airport_stops;
@property (nonatomic, strong) NSArray *city_stops;
@property (nonatomic, strong) NSString *airport_pick_up_tip;
@property (nonatomic, strong) NSArray *not_need_flight_options;

@property (nonatomic, strong) NSString *tour_code;
@property (nonatomic, strong) NSString *schedule_id;
@property (nonatomic, assign) BOOL is_room_based;

@property (nonatomic, strong) NSString *termsConditions;
@property (nonatomic, strong) NSString *cancellationPolicies;
@property (nonatomic, strong) NSString *voucherRemark;
@property (nonatomic, strong) NSString *apiSchema;
@property (nonatomic, assign) BOOL purchasedSeparately;

@property (nonatomic, assign, readonly) BOOL is_bus;
@property (nonatomic, assign, readonly) BOOL is_show;
@property (nonatomic, assign, readonly) BOOL is_tour_related;
@property (nonatomic, assign, readonly) BOOL is_hotel;
@property (nonatomic, assign, readonly) BOOL need_gender;
@property (nonatomic, assign, readonly) BOOL is_need_passport;
@property (nonatomic, assign, readonly) BOOL is_distinguish_passport;
@property (nonatomic, assign, readonly) BOOL have_filght_info;

@property (nonatomic, strong, readonly) BusStop *firstDepartureStop;
@property (nonatomic, strong, readonly) BusStop *lastArrivalStop;
@property (nonatomic, strong, readonly) NSArray *departureStops;
@property (nonatomic, strong, readonly) NSArray *arrivalStops;
@property (nonatomic, strong, readonly) NSArray *presaleLabels;
@property (nonatomic, strong, readonly) NSArray *literalLabels;
@property (nonatomic, strong) NSString *busRouteName;
@property (nonatomic, assign) CGFloat listingHour;
@property (nonatomic, strong) NSString *listingDepartureTime;
@property (nonatomic, strong) NSString *piwikCategory;

@property (nonatomic, strong) PPLBasedPrice *PPLBasedPrice;
@property (nonatomic, strong) RoomBasedPrice *roomBasedPrice;

@end
