PNObject/Pod/Classes/PNClasses/PNInstallation.h
2016-04-29 17:07:45 +02:00

103 lines
2.4 KiB
Objective-C

//
// PNInstallation.h
// Pods
//
// Created by Giuseppe Nucifora on 27/01/16.
//
//
#import "PNObject.h"
#import "PNUser.h"
typedef NS_ENUM(NSInteger, PNInstallationStatus) {
PNInstallationStatusNew = 0,
PNInstallationStatusChange,
PNInstallationStatusNone,
};
@interface PNInstallation : PNObject
/**
Gets the currently-running installation from disk and returns an instance of it.
If this installation is not stored on disk, returns a `PFInstallation`
with `deviceType` and `installationId` fields set to those of the
current installation.
@result Returns a `Installation` that represents the currently-running installation.
*/
+ (instancetype _Nonnull)currentInstallation;
/**
* <#Description#>
*
* @param deviceTokenData <#deviceTokenData description#>
*
* @return RETURN YES if token is not set o token changes, NO if token is the same of old token.
*/
- (PNInstallationStatus) setDeviceTokenFromData:(nullable NSData *)deviceTokenData;
/**
* <#Description#>
*/
- (void) resetBadge;
- (void) setRegistered;
- (void) setUpdated;
///--------------------------------------
#pragma mark - PNInstallation Properties
///--------------------------------------
@property (nonatomic, strong, nullable) PNUser *user;
/**
* <#Description#>
*/
@property (nonatomic, strong, readonly, nonnull) NSString *deviceType;
/**
* <#Description#>
*/
@property (nonatomic, strong, readonly, nonnull) NSString *deviceModel;
/**
* <#Description#>
*/
@property (nonatomic, strong, readonly, nonnull) NSString *deviceName;
/**
* <#Description#>
*/
@property (nonatomic, strong, readonly, nonnull) NSString *osVersion;
/**
* <#Description#>
*/
@property (nonatomic, strong, readonly, nonnull) NSString *localeIdentifier;
/**
* <#Description#>
*/
@property (nonatomic, strong, readonly, nullable) NSString *deviceToken;
/**
* <#Description#>
*/
@property (nonatomic, strong, readonly, nullable) NSString *oldDeviceToken;
/**
* <#Description#>
*/
@property (nonatomic, assign) NSInteger badge;
/**
* <#Description#>
*/
@property (nonatomic, readonly) PNInstallationStatus installationStatus;
/**
* <#Description#>
*/
@property (nonatomic, strong, readonly, nullable) NSDate *registeredAt;
/**
* <#Description#>
*/
@property (nonatomic, strong, readonly, nullable) NSDate *updatedAt;
/**
* <#Description#>
*/
@property (nonatomic, strong, readonly, nullable) NSDate *lastTokenUpdate;
@end