//==============================================================================
// This file is part of Master Password.
// Copyright (c) 2011-2017, Maarten Billemont.
//
// Master Password is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Master Password is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You can find a copy of the GNU General Public License in the
// LICENSE file.  Alternatively, see <http://www.gnu.org/licenses/>.
//==============================================================================

#import <StoreKit/StoreKit.h>
#import "MPAppDelegate_Shared.h"

#define MPProductGenerateLogins                 @"com.lyndir.masterpassword.products.generatelogins"
#define MPProductGenerateAnswers                @"com.lyndir.masterpassword.products.generateanswers"
#define MPProductOSIntegration                  @"com.lyndir.masterpassword.products.osintegration"
#define MPProductTouchID                        @"com.lyndir.masterpassword.products.touchid"
#define MPProductFuel                           @"com.lyndir.masterpassword.products.fuel"

#define MP_FUEL_HOURLY_RATE                     40.f /* payment in tier 1 purchases / h (≅ USD / h) */

@protocol MPInAppDelegate

- (void)updateWithProducts:(NSDictionary<NSString *, SKProduct *> *)products
              transactions:(NSDictionary<NSString *, SKPaymentTransaction *> *)transactions;

@end

@interface MPAppDelegate_Shared(InApp)

- (NSDictionary<NSString *, SKProduct *> *)products;
- (NSDictionary<NSString *, SKPaymentTransaction *> *)transactions;

- (void)registerProductsObserver:(id<MPInAppDelegate>)delegate;
- (void)removeProductsObserver:(id<MPInAppDelegate>)delegate;

- (void)reloadProducts;
- (BOOL)canMakePayments;
- (BOOL)isFeatureUnlocked:(NSString *)productIdentifier;

- (void)restoreCompletedTransactions;
- (void)purchaseProductWithIdentifier:(NSString *)productIdentifier quantity:(NSInteger)quantity;

@end