/*   Copyright 2019 APPNEXUS INC
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at
 
 http://www.apache.org/licenses/LICENSE-2.0
 
 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 */

#import <Foundation/Foundation.h>
#import "ANAdConstants.h"
#import "ANDSAResponseInfo.h"

@interface ANAdResponseInfo : NSObject
/**
 Retrieve the Creative Id of the creative.
 */
@property (nonatomic, readwrite, strong, nullable) NSString *creativeId;

/**
 Report the Ad Type of the returned ad object.
 Not available until load is complete and successful.
 */
@property (nonatomic, readwrite)  ANAdType  adType;

/**
 Retrieve the placement ID. A placement ID is a numeric ID that's
 associated with a place where ads can be shown.
 */
@property (nonatomic, readwrite, strong, nullable) NSString *placementId;

/**
 Retrieve the member ID.
 */
@property (nonatomic, readwrite, assign) NSInteger memberId;

/**
 Retrieve the content source.
 */
@property (nonatomic, readwrite, strong, nullable) NSString *contentSource;

/**
 Retrieve the network name of the mediated ad being served.
 */
@property (nonatomic, readwrite, strong, nullable) NSString *networkName;

/**
 Retrieve the auctionId. An auction identifier is unique id generated for the ad request.
 */
@property (nonatomic, readwrite, strong, nullable) NSString *auctionId;

/**
 Retrieve the cpm.
 */
@property (nonatomic, readwrite, strong, nullable) NSNumber *cpm;

/**
 Retrieve the cpm publisher currency.
 */
@property (nonatomic, readwrite, strong, nullable) NSNumber *cpmPublisherCurrency;

/**
 Retrieve the publisher currency code.
 */
@property (nonatomic, readwrite, strong, nullable) NSString *publisherCurrencyCode;

/**
 Retrieves the Digital Services Act (DSA) information associated with this ad response
 containing details such as behalf, paid, ad render, and transparency
 */
@property (nonatomic, readwrite, strong, nullable) ANDSAResponseInfo *dsaResponseInfo;

/**
 Retrieve the is_sov field indicating if this ad is sold on an exclusive basis.
 Exclusive (also known as Share of Voice/SOV) means the advertiser has purchased
 100% of the placement's inventory for a given time period.
 */
@property (nonatomic, readwrite, assign) BOOL isSov;

/**
 Retrieve the media subtype ID.
 */
@property (nonatomic, readwrite, assign) NSInteger mediaSubtypeId;

/**
 Retrieve the media type ID.
 */
@property (nonatomic, readwrite, assign) NSInteger mediaTypeId;

/**
 Retrieve the brand category ID.
 */
@property (nonatomic, readwrite, assign) NSInteger brandCategoryId;

/**
 Retrieve the deal ID.
 */
@property (nonatomic, readwrite, assign) NSInteger dealId;

/**
 Retrieve the is_roadblock field indicating if this is a roadblock ad.
 */
@property (nonatomic, readwrite, assign) BOOL isRoadblock;

/**
 Retrieve the bidder ID.
 */
@property (nonatomic, readwrite, assign) NSInteger bidderId;

@end
