namespace Guru
{
	using Firebase.Analytics;
	
	//https://firebase.google.com/docs/reference/cpp/group/parameter-names
	//Firebase内置定义事件名称和参数名称
	public static partial class Analytics
	{
		private static string EventAdImpression =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventAdImpression : "ad_impression";
		private static string EventAddPaymentInfo =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventAddPaymentInfo : "add_payment_info";
		private static string EventAddShippingInfo =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventAddShippingInfo : "add_shipping_info";
		private static string EventAddToCart =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventAddToCart : "add_to_cart";
		private static string EventAddToWishlist =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventAddToWishlist : "add_to_wishlist";
		private static string EventAppOpen =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventAppOpen : "app_open";
		private static string EventBeginCheckout =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventBeginCheckout : "begin_checkout";
		private static string EventCampaignDetails =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventCampaignDetails : "campaign_details";
		private static string EventEarnVirtualCurrency =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventEarnVirtualCurrency : "earn_virtual_currency";
		private static string EventGenerateLead =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventGenerateLead : "generate_lead";
		private static string EventJoinGroup =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventJoinGroup : "join_group";
		private static string EventLevelEnd =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventLevelEnd : "level_end";
		private static string EventLevelStart =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventLevelStart : "level_start";
		private static string EventLevelUp =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventLevelUp : "level_up";
		private static string EventLogin =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventLogin : "login";
		private static string EventPostScore =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventPostScore : "post_score";
		private static string EventPurchase =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventPurchase : "purchase";
		private static string EventRefund =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventRefund : "refund";
		private static string EventRemoveFromCart =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventRemoveFromCart : "remove_from_cart";
		private static string EventScreenView =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventScreenView : "screen_view";
		private static string EventSearch =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventSearch : "search";
		private static string EventSelectContent =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventSelectContent : "select_content";
		private static string EventSelectItem =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventSelectItem : "select_item";
		private static string EventSelectPromotion =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventSelectPromotion : "select_promotion";
		private static string EventShare =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventShare : "share";
		private static string EventSignUp =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventSignUp : "sign_up";
		private static string EventSpendVirtualCurrency =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventSpendVirtualCurrency : "spend_virtual_currency";
		private static string EventTutorialBegin =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventTutorialBegin : "tutorial_begin";
		private static string EventTutorialComplete =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventTutorialComplete : "tutorial_complete";
		private static string EventUnlockAchievement =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventUnlockAchievement : "unlock_achievement";
		private static string EventViewCart =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventViewCart : "view_cart";
		private static string EventViewItem =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventViewItem : "view_item";
		private static string EventViewItemList =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventViewItemList : "view_item_list";
		private static string EventViewPromotion =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventViewPromotion : "view_promotion";
		private static string EventViewSearchResults =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.EventViewSearchResults : "view_search_results";
		private static string ParameterAchievementId =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterAchievementId : "achievement_id";
		private static string ParameterAdFormat =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterAdFormat : "ad_format";
		private static string ParameterAdNetworkClickID =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterAdNetworkClickID : "aclid";
		private static string ParameterAdPlatform =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterAdPlatform : "ad_platform";
		private static string ParameterAdSource =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterAdSource : "ad_source";
		
		private static string ParameterAffiliation =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterAffiliation : "affiliation";
		private static string ParameterCP1 =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterCP1 : "cp1";
		private static string ParameterCampaign =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterCampaign : "campaign";
		private static string ParameterCharacter =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterCharacter : "character";
		private static string ParameterContent =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterContent : "content";
		private static string ParameterContentType =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterContentType : "content_type";
		private static string ParameterCoupon =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterCoupon : "coupon";
		private static string ParameterCreativeName =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterCreativeName : "creative_name";
		private static string ParameterCreativeSlot =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterCreativeSlot : "creative_slot";
		private static string ParameterCurrency =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterCurrency : "currency";
		private static string ParameterDestination =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterDestination : "destination";
		private static string ParameterDiscount =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterDiscount : "discount";
		private static string ParameterEndDate =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterEndDate : "end_date";
		private static string ParameterExtendSession =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterExtendSession : "extend_session";
		private static string ParameterFlightNumber =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterFlightNumber : "flight_number";
		private static string ParameterGroupId =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterGroupId : "group_id";
		private static string ParameterIndex =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterIndex : "index";
		private static string ParameterItemBrand =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterItemBrand : "item_brand";
		private static string ParameterItemCategory =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterItemCategory : "item_category";
		private static string ParameterItemCategory2 =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterItemCategory2 : "item_category2";
		private static string ParameterItemCategory3 =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterItemCategory3 : "item_category3";
		private static string ParameterItemCategory4 =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterItemCategory4 : "item_category4";
		private static string ParameterItemCategory5 =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterItemCategory5 : "item_category5";
		private static string ParameterItemId =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterItemId : "item_id";
		private static string ParameterItemList =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterItemListName : "item_id";
		private static string ParameterItemListID =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterItemListID : "item_list_id";
		private static string ParameterItemListName =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterItemListName : "item_list_name";
		private static string ParameterItemName =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterItemName : "item_name";
		private static string ParameterLevel =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterLevel : "level";
		private static string ParameterLevelName =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterLevelName : "level_name";
		private static string ParameterLocation =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterLocation : "location";
		private static string ParameterLocationID =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterLocationID : "location_id";
		private static string ParameterMedium =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterMedium : "medium";
		private static string ParameterMethod =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterMethod : "method";
		private static string ParameterNumberOfNights =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterNumberOfNights : "number_of_nights";
		private static string ParameterNumberOfPassengers =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterNumberOfPassengers : "number_of_passengers";
		private static string ParameterNumberOfRooms =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterNumberOfRooms : "number_of_rooms";
		private static string ParameterOrigin =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterOrigin : "origin";
		private static string ParameterPaymentType =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterPaymentType : "payment_type";
		private static string ParameterPrice =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterPrice : "price";
		private static string ParameterPromotionID =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterPromotionID : "promotion_id";
		private static string ParameterPromotionName =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterPromotionName : "promotion_name";
		private static string ParameterQuantity =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterQuantity : "quantity";
		private static string ParameterScore =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterScore : "score";
		private static string ParameterScreenClass =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterScreenClass : "screen_class";
		private static string ParameterScreenName =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterScreenName : "screen_name";
		private static string ParameterSearchTerm =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterSearchTerm : "search_term";
		private static string ParameterShipping =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterShipping : "shipping";
		private static string ParameterShippingTier =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterShippingTier : "shipping_tier";
		private static string ParameterSignUpMethod => 
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.UserPropertySignUpMethod : "sign_up_method";
		private static string ParameterSource =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterSource : "source";
		private static string ParameterStartDate =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterStartDate : "start_date";
		private static string ParameterSuccess =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterSuccess : "success";
		private static string ParameterTax =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterTax : "tax";
		private static string ParameterTerm =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterTerm : "term";
		private static string ParameterTransactionId =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterTransactionId : "transaction_id";
		private static string ParameterTravelClass =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterTravelClass : "travel_class";
		private static string ParameterValue =>
			FirebaseUtil.IsFirebaseInitialized ? FirebaseAnalytics.ParameterValue : "value";
	}
}