Merged in feat/membership-information (pull request #233)
Feat(WEB-307) Display correct membership information * fix: fix typo * chore: update fetch of user membership * chore: update components to use api data * chore: remove lang as static value * fix: adapt to dev updates * fix: adapt to code from dev * fix: break out MembershipLevel into its a React component * fix: add enum to zod validation * refactor: rename tier to level * refactor: remove unnecessary casts * refactor: change toString() to hideEmpty=false * refactor: remove toString() * refactor: remove hideEmpty from title and subtitle * fix: update currentLevel with data * fix: fix from rebase Approved-by: Michael Zetterberg
This commit is contained in:
committed by
Michael Zetterberg
parent
aca9221ea6
commit
9931d9edef
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"levels": [
|
"levels": [
|
||||||
{
|
{
|
||||||
"tier": 1,
|
"level": 1,
|
||||||
"name": "New Friend",
|
"name": "New Friend",
|
||||||
"requiredPoints": 0,
|
"requiredPoints": 0,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -9,21 +9,21 @@
|
|||||||
{
|
{
|
||||||
"title": "Friendly room rates",
|
"title": "Friendly room rates",
|
||||||
"value": "Friendly room rates",
|
"value": "Friendly room rates",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "10% off on food on weekends",
|
"title": "10% off on food on weekends",
|
||||||
"value": "10% off",
|
"value": "10% off",
|
||||||
"explaination": "on food on weekends",
|
"explanation": "on food on weekends",
|
||||||
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Free kids mocktail during stay",
|
"title": "Free kids mocktail during stay",
|
||||||
"value": "Free kids mocktail",
|
"value": "Free kids mocktail",
|
||||||
"explaination": "during stay",
|
"explanation": "during stay",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
"icon": "/_static/icons/loyaltyLevels/new-friend.svg"
|
"icon": "/_static/icons/loyaltyLevels/new-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 2,
|
"level": 2,
|
||||||
"name": "Good Friend",
|
"name": "Good Friend",
|
||||||
"requiredPoints": 5000,
|
"requiredPoints": 5000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
{
|
{
|
||||||
"title": "15% on food on weekends",
|
"title": "15% on food on weekends",
|
||||||
"value": "15% on food",
|
"value": "15% on food",
|
||||||
"explaination": "on weekends",
|
"explanation": "on weekends",
|
||||||
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
"icon": "/_static/icons/loyaltyLevels/good-friend.svg"
|
"icon": "/_static/icons/loyaltyLevels/good-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 3,
|
"level": 3,
|
||||||
"name": "Close Friend",
|
"name": "Close Friend",
|
||||||
"requiredPoints": 10000,
|
"requiredPoints": 10000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -55,14 +55,14 @@
|
|||||||
{
|
{
|
||||||
"title": "Late checkout - 1 hour when available",
|
"title": "Late checkout - 1 hour when available",
|
||||||
"value": "Late checkout",
|
"value": "Late checkout",
|
||||||
"explaination": "- 1 hour when available",
|
"explanation": "- 1 hour when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "50 SEK voucher",
|
"title": "50 SEK voucher",
|
||||||
"value": "50 SEK voucher",
|
"value": "50 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
"icon": "/_static/icons/loyaltyLevels/close-friend.svg"
|
"icon": "/_static/icons/loyaltyLevels/close-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 4,
|
"level": 4,
|
||||||
"name": "Dear Friend",
|
"name": "Dear Friend",
|
||||||
"requiredPoints": 25000,
|
"requiredPoints": 25000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -78,21 +78,21 @@
|
|||||||
{
|
{
|
||||||
"title": "25% earn rate",
|
"title": "25% earn rate",
|
||||||
"value": "25% earn rate",
|
"value": "25% earn rate",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Early check-in - 1 hour when available",
|
"title": "Early check-in - 1 hour when available",
|
||||||
"value": "Early check-in",
|
"value": "Early check-in",
|
||||||
"explaination": "- 1 hour when available",
|
"explanation": "- 1 hour when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "75 SEK voucher",
|
"title": "75 SEK voucher",
|
||||||
"value": "75 SEK voucher",
|
"value": "75 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -100,7 +100,7 @@
|
|||||||
"icon": "/_static/icons/loyaltyLevels/dear-friend.svg"
|
"icon": "/_static/icons/loyaltyLevels/dear-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 5,
|
"level": 5,
|
||||||
"name": "Loyal Friend",
|
"name": "Loyal Friend",
|
||||||
"requiredPoints": 100000,
|
"requiredPoints": 100000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -108,21 +108,21 @@
|
|||||||
{
|
{
|
||||||
"title": "Free room upgrade when available",
|
"title": "Free room upgrade when available",
|
||||||
"value": "Free room upgrade",
|
"value": "Free room upgrade",
|
||||||
"explaination": "when available",
|
"explanation": "when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "100 SEK voucher",
|
"title": "100 SEK voucher",
|
||||||
"value": "100 SEK voucher",
|
"value": "100 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "2-for-1 breakfast",
|
"title": "2-for-1 breakfast",
|
||||||
"value": "2-for-1 breakfast",
|
"value": "2-for-1 breakfast",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -130,7 +130,7 @@
|
|||||||
"icon": "/_static/icons/loyaltyLevels/loyal-friend.svg"
|
"icon": "/_static/icons/loyaltyLevels/loyal-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 6,
|
"level": 6,
|
||||||
"name": "True Friend",
|
"name": "True Friend",
|
||||||
"requiredPoints": 250000,
|
"requiredPoints": 250000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -138,28 +138,28 @@
|
|||||||
{
|
{
|
||||||
"title": "50% earn rate",
|
"title": "50% earn rate",
|
||||||
"value": "50% earn rate",
|
"value": "50% earn rate",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "150 SEK voucher",
|
"title": "150 SEK voucher",
|
||||||
"value": "150 SEK voucher",
|
"value": "150 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "48h room guarantee",
|
"title": "48h room guarantee",
|
||||||
"value": "48h room guarantee",
|
"value": "48h room guarantee",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Always free breakfast",
|
"title": "Always free breakfast",
|
||||||
"value": "Always free breakfast",
|
"value": "Always free breakfast",
|
||||||
"explaination": "Always free breakfast",
|
"explanation": "Always free breakfast",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -167,7 +167,7 @@
|
|||||||
"icon": "/_static/icons/loyaltyLevels/true-friend.svg"
|
"icon": "/_static/icons/loyaltyLevels/true-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 7,
|
"level": 7,
|
||||||
"name": "Best Friend",
|
"name": "Best Friend",
|
||||||
"requiredPoints": 400000,
|
"requiredPoints": 400000,
|
||||||
"requiredNights": 100,
|
"requiredNights": 100,
|
||||||
@@ -175,21 +175,21 @@
|
|||||||
{
|
{
|
||||||
"title": "200 SEK voucher",
|
"title": "200 SEK voucher",
|
||||||
"value": "200 SEK voucher",
|
"value": "200 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Yearly exclusive gift",
|
"title": "Yearly exclusive gift",
|
||||||
"value": "Yearly exclusive gift",
|
"value": "Yearly exclusive gift",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kid's boost",
|
"title": "Kid's boost",
|
||||||
"value": "Kid's boost",
|
"value": "Kid's boost",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"levels": [
|
"levels": [
|
||||||
{
|
{
|
||||||
"tier": 1,
|
"level": 1,
|
||||||
"name": "New Friend",
|
"name": "New Friend",
|
||||||
"requiredPoints": 0,
|
"requiredPoints": 0,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -9,21 +9,21 @@
|
|||||||
{
|
{
|
||||||
"title": "Friendly room rates",
|
"title": "Friendly room rates",
|
||||||
"value": "Friendly room rates",
|
"value": "Friendly room rates",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "10% off on food on weekends",
|
"title": "10% off on food on weekends",
|
||||||
"value": "10% off",
|
"value": "10% off",
|
||||||
"explaination": "on food on weekends",
|
"explanation": "on food on weekends",
|
||||||
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Free kids mocktail during stay",
|
"title": "Free kids mocktail during stay",
|
||||||
"value": "Free kids mocktail",
|
"value": "Free kids mocktail",
|
||||||
"explaination": "during stay",
|
"explanation": "during stay",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
"icon": "/_static/icons/loyaltyLevels/new-friend.svg"
|
"icon": "/_static/icons/loyaltyLevels/new-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 2,
|
"level": 2,
|
||||||
"name": "Good Friend",
|
"name": "Good Friend",
|
||||||
"requiredPoints": 5000,
|
"requiredPoints": 5000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
{
|
{
|
||||||
"title": "15% on food on weekends",
|
"title": "15% on food on weekends",
|
||||||
"value": "15% on food",
|
"value": "15% on food",
|
||||||
"explaination": "on weekends",
|
"explanation": "on weekends",
|
||||||
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
"icon": "/_static/icons/loyaltyLevels/good-friend.svg"
|
"icon": "/_static/icons/loyaltyLevels/good-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 3,
|
"level": 3,
|
||||||
"name": "Close Friend",
|
"name": "Close Friend",
|
||||||
"requiredPoints": 10000,
|
"requiredPoints": 10000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -55,14 +55,14 @@
|
|||||||
{
|
{
|
||||||
"title": "Late checkout - 1 hour when available",
|
"title": "Late checkout - 1 hour when available",
|
||||||
"value": "Late checkout",
|
"value": "Late checkout",
|
||||||
"explaination": "- 1 hour when available",
|
"explanation": "- 1 hour when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "50 SEK voucher",
|
"title": "50 SEK voucher",
|
||||||
"value": "50 SEK voucher",
|
"value": "50 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
"icon": "/_static/icons/loyaltyLevels/close-friend.svg"
|
"icon": "/_static/icons/loyaltyLevels/close-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 4,
|
"level": 4,
|
||||||
"name": "Dear Friend",
|
"name": "Dear Friend",
|
||||||
"requiredPoints": 25000,
|
"requiredPoints": 25000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -78,21 +78,21 @@
|
|||||||
{
|
{
|
||||||
"title": "25% earn rate",
|
"title": "25% earn rate",
|
||||||
"value": "25% earn rate",
|
"value": "25% earn rate",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Early check-in - 1 hour when available",
|
"title": "Early check-in - 1 hour when available",
|
||||||
"value": "Early check-in",
|
"value": "Early check-in",
|
||||||
"explaination": "- 1 hour when available",
|
"explanation": "- 1 hour when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "75 SEK voucher",
|
"title": "75 SEK voucher",
|
||||||
"value": "75 SEK voucher",
|
"value": "75 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -100,7 +100,7 @@
|
|||||||
"icon": "/_static/icons/loyaltyLevels/dear-friend.svg"
|
"icon": "/_static/icons/loyaltyLevels/dear-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 5,
|
"level": 5,
|
||||||
"name": "Loyal Friend",
|
"name": "Loyal Friend",
|
||||||
"requiredPoints": 100000,
|
"requiredPoints": 100000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -108,21 +108,21 @@
|
|||||||
{
|
{
|
||||||
"title": "Free room upgrade when available",
|
"title": "Free room upgrade when available",
|
||||||
"value": "Free room upgrade",
|
"value": "Free room upgrade",
|
||||||
"explaination": "when available",
|
"explanation": "when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "100 SEK voucher",
|
"title": "100 SEK voucher",
|
||||||
"value": "100 SEK voucher",
|
"value": "100 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "2-for-1 breakfast",
|
"title": "2-for-1 breakfast",
|
||||||
"value": "2-for-1 breakfast",
|
"value": "2-for-1 breakfast",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -130,7 +130,7 @@
|
|||||||
"icon": "/_static/icons/loyaltyLevels/loyal-friend.svg"
|
"icon": "/_static/icons/loyaltyLevels/loyal-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 6,
|
"level": 6,
|
||||||
"name": "True Friend",
|
"name": "True Friend",
|
||||||
"requiredPoints": 250000,
|
"requiredPoints": 250000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -138,28 +138,28 @@
|
|||||||
{
|
{
|
||||||
"title": "50% earn rate",
|
"title": "50% earn rate",
|
||||||
"value": "50% earn rate",
|
"value": "50% earn rate",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "150 SEK voucher",
|
"title": "150 SEK voucher",
|
||||||
"value": "150 SEK voucher",
|
"value": "150 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "48h room guarantee",
|
"title": "48h room guarantee",
|
||||||
"value": "48h room guarantee",
|
"value": "48h room guarantee",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Always free breakfast",
|
"title": "Always free breakfast",
|
||||||
"value": "Always free breakfast",
|
"value": "Always free breakfast",
|
||||||
"explaination": "Always free breakfast",
|
"explanation": "Always free breakfast",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -167,7 +167,7 @@
|
|||||||
"icon": "/_static/icons/loyaltyLevels/true-friend.svg"
|
"icon": "/_static/icons/loyaltyLevels/true-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 7,
|
"level": 7,
|
||||||
"name": "Best Friend",
|
"name": "Best Friend",
|
||||||
"requiredPoints": 400000,
|
"requiredPoints": 400000,
|
||||||
"requiredNights": 100,
|
"requiredNights": 100,
|
||||||
@@ -175,21 +175,21 @@
|
|||||||
{
|
{
|
||||||
"title": "200 SEK voucher",
|
"title": "200 SEK voucher",
|
||||||
"value": "200 SEK voucher",
|
"value": "200 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Yearly exclusive gift",
|
"title": "Yearly exclusive gift",
|
||||||
"value": "Yearly exclusive gift",
|
"value": "Yearly exclusive gift",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kid's boost",
|
"title": "Kid's boost",
|
||||||
"value": "Kid's boost",
|
"value": "Kid's boost",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"levels": [
|
"levels": [
|
||||||
{
|
{
|
||||||
"tier": 1,
|
"level": 1,
|
||||||
"name": "New Friend",
|
"name": "New Friend",
|
||||||
"requiredPoints": 0,
|
"requiredPoints": 0,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -9,21 +9,21 @@
|
|||||||
{
|
{
|
||||||
"title": "Friendly room rates",
|
"title": "Friendly room rates",
|
||||||
"value": "Friendly room rates",
|
"value": "Friendly room rates",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "10% off on food on weekends",
|
"title": "10% off on food on weekends",
|
||||||
"value": "10% off",
|
"value": "10% off",
|
||||||
"explaination": "on food on weekends",
|
"explanation": "on food on weekends",
|
||||||
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Free kids mocktail during stay",
|
"title": "Free kids mocktail during stay",
|
||||||
"value": "Free kids mocktail",
|
"value": "Free kids mocktail",
|
||||||
"explaination": "during stay",
|
"explanation": "during stay",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
"icon": "/_static/icons/loyaltyLevels/new-friend.svg"
|
"icon": "/_static/icons/loyaltyLevels/new-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 2,
|
"level": 2,
|
||||||
"name": "Good Friend",
|
"name": "Good Friend",
|
||||||
"requiredPoints": 5000,
|
"requiredPoints": 5000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
{
|
{
|
||||||
"title": "15% on food on weekends",
|
"title": "15% on food on weekends",
|
||||||
"value": "15% on food",
|
"value": "15% on food",
|
||||||
"explaination": "on weekends",
|
"explanation": "on weekends",
|
||||||
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
"icon": "/_static/icons/loyaltyLevels/good-friend.svg"
|
"icon": "/_static/icons/loyaltyLevels/good-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 3,
|
"level": 3,
|
||||||
"name": "Close Friend",
|
"name": "Close Friend",
|
||||||
"requiredPoints": 10000,
|
"requiredPoints": 10000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -55,14 +55,14 @@
|
|||||||
{
|
{
|
||||||
"title": "Late checkout - 1 hour when available",
|
"title": "Late checkout - 1 hour when available",
|
||||||
"value": "Late checkout",
|
"value": "Late checkout",
|
||||||
"explaination": "- 1 hour when available",
|
"explanation": "- 1 hour when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "50 SEK voucher",
|
"title": "50 SEK voucher",
|
||||||
"value": "50 SEK voucher",
|
"value": "50 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
"icon": "/_static/icons/loyaltyLevels/close-friend.svg"
|
"icon": "/_static/icons/loyaltyLevels/close-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 4,
|
"level": 4,
|
||||||
"name": "Dear Friend",
|
"name": "Dear Friend",
|
||||||
"requiredPoints": 25000,
|
"requiredPoints": 25000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -78,21 +78,21 @@
|
|||||||
{
|
{
|
||||||
"title": "25% earn rate",
|
"title": "25% earn rate",
|
||||||
"value": "25% earn rate",
|
"value": "25% earn rate",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Early check-in - 1 hour when available",
|
"title": "Early check-in - 1 hour when available",
|
||||||
"value": "Early check-in",
|
"value": "Early check-in",
|
||||||
"explaination": "- 1 hour when available",
|
"explanation": "- 1 hour when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "75 SEK voucher",
|
"title": "75 SEK voucher",
|
||||||
"value": "75 SEK voucher",
|
"value": "75 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -100,7 +100,7 @@
|
|||||||
"icon": "/_static/icons/loyaltyLevels/dear-friend.svg"
|
"icon": "/_static/icons/loyaltyLevels/dear-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 5,
|
"level": 5,
|
||||||
"name": "Loyal Friend",
|
"name": "Loyal Friend",
|
||||||
"requiredPoints": 100000,
|
"requiredPoints": 100000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -108,21 +108,21 @@
|
|||||||
{
|
{
|
||||||
"title": "Free room upgrade when available",
|
"title": "Free room upgrade when available",
|
||||||
"value": "Free room upgrade",
|
"value": "Free room upgrade",
|
||||||
"explaination": "when available",
|
"explanation": "when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "100 SEK voucher",
|
"title": "100 SEK voucher",
|
||||||
"value": "100 SEK voucher",
|
"value": "100 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "2-for-1 breakfast",
|
"title": "2-for-1 breakfast",
|
||||||
"value": "2-for-1 breakfast",
|
"value": "2-for-1 breakfast",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -130,7 +130,7 @@
|
|||||||
"icon": "/_static/icons/loyaltyLevels/loyal-friend.svg"
|
"icon": "/_static/icons/loyaltyLevels/loyal-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 6,
|
"level": 6,
|
||||||
"name": "True Friend",
|
"name": "True Friend",
|
||||||
"requiredPoints": 250000,
|
"requiredPoints": 250000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -138,28 +138,28 @@
|
|||||||
{
|
{
|
||||||
"title": "50% earn rate",
|
"title": "50% earn rate",
|
||||||
"value": "50% earn rate",
|
"value": "50% earn rate",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "150 SEK voucher",
|
"title": "150 SEK voucher",
|
||||||
"value": "150 SEK voucher",
|
"value": "150 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "48h room guarantee",
|
"title": "48h room guarantee",
|
||||||
"value": "48h room guarantee",
|
"value": "48h room guarantee",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Always free breakfast",
|
"title": "Always free breakfast",
|
||||||
"value": "Always free breakfast",
|
"value": "Always free breakfast",
|
||||||
"explaination": "Always free breakfast",
|
"explanation": "Always free breakfast",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -167,7 +167,7 @@
|
|||||||
"icon": "/_static/icons/loyaltyLevels/true-friend.svg"
|
"icon": "/_static/icons/loyaltyLevels/true-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 7,
|
"level": 7,
|
||||||
"name": "Best Friend",
|
"name": "Best Friend",
|
||||||
"requiredPoints": 400000,
|
"requiredPoints": 400000,
|
||||||
"requiredNights": 100,
|
"requiredNights": 100,
|
||||||
@@ -175,21 +175,21 @@
|
|||||||
{
|
{
|
||||||
"title": "200 SEK voucher",
|
"title": "200 SEK voucher",
|
||||||
"value": "200 SEK voucher",
|
"value": "200 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Yearly exclusive gift",
|
"title": "Yearly exclusive gift",
|
||||||
"value": "Yearly exclusive gift",
|
"value": "Yearly exclusive gift",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kid's boost",
|
"title": "Kid's boost",
|
||||||
"value": "Kid's boost",
|
"value": "Kid's boost",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"levels": [
|
"levels": [
|
||||||
{
|
{
|
||||||
"tier": 1,
|
"level": 1,
|
||||||
"name": "New Friend",
|
"name": "New Friend",
|
||||||
"requiredPoints": 0,
|
"requiredPoints": 0,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -9,21 +9,21 @@
|
|||||||
{
|
{
|
||||||
"title": "Friendly room rates",
|
"title": "Friendly room rates",
|
||||||
"value": "Friendly room rates",
|
"value": "Friendly room rates",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "10% off on food on weekends",
|
"title": "10% off on food on weekends",
|
||||||
"value": "10% off",
|
"value": "10% off",
|
||||||
"explaination": "on food on weekends",
|
"explanation": "on food on weekends",
|
||||||
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Free kids mocktail during stay",
|
"title": "Free kids mocktail during stay",
|
||||||
"value": "Free kids mocktail",
|
"value": "Free kids mocktail",
|
||||||
"explaination": "during stay",
|
"explanation": "during stay",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
"icon": "/_static/icons/loyaltyLevels/new-friend.svg"
|
"icon": "/_static/icons/loyaltyLevels/new-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 2,
|
"level": 2,
|
||||||
"name": "Good Friend",
|
"name": "Good Friend",
|
||||||
"requiredPoints": 5000,
|
"requiredPoints": 5000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
{
|
{
|
||||||
"title": "15% on food on weekends",
|
"title": "15% on food on weekends",
|
||||||
"value": "15% on food",
|
"value": "15% on food",
|
||||||
"explaination": "on weekends",
|
"explanation": "on weekends",
|
||||||
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
"icon": "/_static/icons/loyaltyLevels/good-friend.svg"
|
"icon": "/_static/icons/loyaltyLevels/good-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 3,
|
"level": 3,
|
||||||
"name": "Close Friend",
|
"name": "Close Friend",
|
||||||
"requiredPoints": 10000,
|
"requiredPoints": 10000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -55,14 +55,14 @@
|
|||||||
{
|
{
|
||||||
"title": "Late checkout - 1 hour when available",
|
"title": "Late checkout - 1 hour when available",
|
||||||
"value": "Late checkout",
|
"value": "Late checkout",
|
||||||
"explaination": "- 1 hour when available",
|
"explanation": "- 1 hour when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "50 SEK voucher",
|
"title": "50 SEK voucher",
|
||||||
"value": "50 SEK voucher",
|
"value": "50 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
"icon": "/_static/icons/loyaltyLevels/close-friend.svg"
|
"icon": "/_static/icons/loyaltyLevels/close-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 4,
|
"level": 4,
|
||||||
"name": "Dear Friend",
|
"name": "Dear Friend",
|
||||||
"requiredPoints": 25000,
|
"requiredPoints": 25000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -78,21 +78,21 @@
|
|||||||
{
|
{
|
||||||
"title": "25% earn rate",
|
"title": "25% earn rate",
|
||||||
"value": "25% earn rate",
|
"value": "25% earn rate",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Early check-in - 1 hour when available",
|
"title": "Early check-in - 1 hour when available",
|
||||||
"value": "Early check-in",
|
"value": "Early check-in",
|
||||||
"explaination": "- 1 hour when available",
|
"explanation": "- 1 hour when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "75 SEK voucher",
|
"title": "75 SEK voucher",
|
||||||
"value": "75 SEK voucher",
|
"value": "75 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -100,7 +100,7 @@
|
|||||||
"icon": "/_static/icons/loyaltyLevels/dear-friend.svg"
|
"icon": "/_static/icons/loyaltyLevels/dear-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 5,
|
"level": 5,
|
||||||
"name": "Loyal Friend",
|
"name": "Loyal Friend",
|
||||||
"requiredPoints": 100000,
|
"requiredPoints": 100000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -108,21 +108,21 @@
|
|||||||
{
|
{
|
||||||
"title": "Free room upgrade when available",
|
"title": "Free room upgrade when available",
|
||||||
"value": "Free room upgrade",
|
"value": "Free room upgrade",
|
||||||
"explaination": "when available",
|
"explanation": "when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "100 SEK voucher",
|
"title": "100 SEK voucher",
|
||||||
"value": "100 SEK voucher",
|
"value": "100 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "2-for-1 breakfast",
|
"title": "2-for-1 breakfast",
|
||||||
"value": "2-for-1 breakfast",
|
"value": "2-for-1 breakfast",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -130,7 +130,7 @@
|
|||||||
"icon": "/_static/icons/loyaltyLevels/loyal-friend.svg"
|
"icon": "/_static/icons/loyaltyLevels/loyal-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 6,
|
"level": 6,
|
||||||
"name": "True Friend",
|
"name": "True Friend",
|
||||||
"requiredPoints": 250000,
|
"requiredPoints": 250000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -138,28 +138,28 @@
|
|||||||
{
|
{
|
||||||
"title": "50% earn rate",
|
"title": "50% earn rate",
|
||||||
"value": "50% earn rate",
|
"value": "50% earn rate",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "150 SEK voucher",
|
"title": "150 SEK voucher",
|
||||||
"value": "150 SEK voucher",
|
"value": "150 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "48h room guarantee",
|
"title": "48h room guarantee",
|
||||||
"value": "48h room guarantee",
|
"value": "48h room guarantee",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Always free breakfast",
|
"title": "Always free breakfast",
|
||||||
"value": "Always free breakfast",
|
"value": "Always free breakfast",
|
||||||
"explaination": "Always free breakfast",
|
"explanation": "Always free breakfast",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -167,7 +167,7 @@
|
|||||||
"icon": "/_static/icons/loyaltyLevels/true-friend.svg"
|
"icon": "/_static/icons/loyaltyLevels/true-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 7,
|
"level": 7,
|
||||||
"name": "Best Friend",
|
"name": "Best Friend",
|
||||||
"requiredPoints": 400000,
|
"requiredPoints": 400000,
|
||||||
"requiredNights": 100,
|
"requiredNights": 100,
|
||||||
@@ -175,21 +175,21 @@
|
|||||||
{
|
{
|
||||||
"title": "200 SEK voucher",
|
"title": "200 SEK voucher",
|
||||||
"value": "200 SEK voucher",
|
"value": "200 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Yearly exclusive gift",
|
"title": "Yearly exclusive gift",
|
||||||
"value": "Yearly exclusive gift",
|
"value": "Yearly exclusive gift",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kid's boost",
|
"title": "Kid's boost",
|
||||||
"value": "Kid's boost",
|
"value": "Kid's boost",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"levels": [
|
"levels": [
|
||||||
{
|
{
|
||||||
"tier": 1,
|
"level": 1,
|
||||||
"name": "New Friend",
|
"name": "New Friend",
|
||||||
"requiredPoints": 0,
|
"requiredPoints": 0,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -9,21 +9,21 @@
|
|||||||
{
|
{
|
||||||
"title": "Friendly room rates",
|
"title": "Friendly room rates",
|
||||||
"value": "Friendly room rates",
|
"value": "Friendly room rates",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "10% off on food on weekends",
|
"title": "10% off on food on weekends",
|
||||||
"value": "10% off",
|
"value": "10% off",
|
||||||
"explaination": "on food on weekends",
|
"explanation": "on food on weekends",
|
||||||
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Free kids mocktail during stay",
|
"title": "Free kids mocktail during stay",
|
||||||
"value": "Free kids mocktail",
|
"value": "Free kids mocktail",
|
||||||
"explaination": "during stay",
|
"explanation": "during stay",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/new-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/new-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 2,
|
"level": 2,
|
||||||
"name": "Good Friend",
|
"name": "Good Friend",
|
||||||
"requiredPoints": 5000,
|
"requiredPoints": 5000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
{
|
{
|
||||||
"title": "15% on food on weekends",
|
"title": "15% on food on weekends",
|
||||||
"value": "15% on food",
|
"value": "15% on food",
|
||||||
"explaination": "on weekends",
|
"explanation": "on weekends",
|
||||||
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/good-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/good-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 3,
|
"level": 3,
|
||||||
"name": "Close Friend",
|
"name": "Close Friend",
|
||||||
"requiredPoints": 10000,
|
"requiredPoints": 10000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -55,14 +55,14 @@
|
|||||||
{
|
{
|
||||||
"title": "Late checkout - 1 hour when available",
|
"title": "Late checkout - 1 hour when available",
|
||||||
"value": "Late checkout",
|
"value": "Late checkout",
|
||||||
"explaination": "- 1 hour when available",
|
"explanation": "- 1 hour when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "50 SEK voucher",
|
"title": "50 SEK voucher",
|
||||||
"value": "50 SEK voucher",
|
"value": "50 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/close-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/close-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 4,
|
"level": 4,
|
||||||
"name": "Dear Friend",
|
"name": "Dear Friend",
|
||||||
"requiredPoints": 25000,
|
"requiredPoints": 25000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -78,21 +78,21 @@
|
|||||||
{
|
{
|
||||||
"title": "25% earn rate",
|
"title": "25% earn rate",
|
||||||
"value": "25% earn rate",
|
"value": "25% earn rate",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Early check-in - 1 hour when available",
|
"title": "Early check-in - 1 hour when available",
|
||||||
"value": "Early check-in",
|
"value": "Early check-in",
|
||||||
"explaination": "- 1 hour when available",
|
"explanation": "- 1 hour when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "75 SEK voucher",
|
"title": "75 SEK voucher",
|
||||||
"value": "75 SEK voucher",
|
"value": "75 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -100,7 +100,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/dear-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/dear-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 5,
|
"level": 5,
|
||||||
"name": "Loyal Friend",
|
"name": "Loyal Friend",
|
||||||
"requiredPoints": 100000,
|
"requiredPoints": 100000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -108,21 +108,21 @@
|
|||||||
{
|
{
|
||||||
"title": "Free room upgrade when available",
|
"title": "Free room upgrade when available",
|
||||||
"value": "Free room upgrade",
|
"value": "Free room upgrade",
|
||||||
"explaination": "when available",
|
"explanation": "when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "100 SEK voucher",
|
"title": "100 SEK voucher",
|
||||||
"value": "100 SEK voucher",
|
"value": "100 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "2-for-1 breakfast",
|
"title": "2-for-1 breakfast",
|
||||||
"value": "2-for-1 breakfast",
|
"value": "2-for-1 breakfast",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -130,7 +130,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/loyal-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/loyal-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 6,
|
"level": 6,
|
||||||
"name": "True Friend",
|
"name": "True Friend",
|
||||||
"requiredPoints": 250000,
|
"requiredPoints": 250000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -138,28 +138,28 @@
|
|||||||
{
|
{
|
||||||
"title": "50% earn rate",
|
"title": "50% earn rate",
|
||||||
"value": "50% earn rate",
|
"value": "50% earn rate",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "150 SEK voucher",
|
"title": "150 SEK voucher",
|
||||||
"value": "150 SEK voucher",
|
"value": "150 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "48h room guarantee",
|
"title": "48h room guarantee",
|
||||||
"value": "48h room guarantee",
|
"value": "48h room guarantee",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Always free breakfast",
|
"title": "Always free breakfast",
|
||||||
"value": "Always free breakfast",
|
"value": "Always free breakfast",
|
||||||
"explaination": "Always free breakfast",
|
"explanation": "Always free breakfast",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -167,7 +167,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/true-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/true-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 7,
|
"level": 7,
|
||||||
"name": "Best Friend",
|
"name": "Best Friend",
|
||||||
"requiredPoints": 400000,
|
"requiredPoints": 400000,
|
||||||
"requiredNights": 100,
|
"requiredNights": 100,
|
||||||
@@ -175,21 +175,21 @@
|
|||||||
{
|
{
|
||||||
"title": "200 SEK voucher",
|
"title": "200 SEK voucher",
|
||||||
"value": "200 SEK voucher",
|
"value": "200 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Yearly exclusive gift",
|
"title": "Yearly exclusive gift",
|
||||||
"value": "Yearly exclusive gift",
|
"value": "Yearly exclusive gift",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kid's boost",
|
"title": "Kid's boost",
|
||||||
"value": "Kid's boost",
|
"value": "Kid's boost",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"levels": [
|
"levels": [
|
||||||
{
|
{
|
||||||
"tier": 1,
|
"level": 1,
|
||||||
"name": "New Friend",
|
"name": "New Friend",
|
||||||
"requiredPoints": 0,
|
"requiredPoints": 0,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -9,21 +9,21 @@
|
|||||||
{
|
{
|
||||||
"title": "Friendly room rates",
|
"title": "Friendly room rates",
|
||||||
"value": "Friendly room rates",
|
"value": "Friendly room rates",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "10% off on food on weekends",
|
"title": "10% off on food on weekends",
|
||||||
"value": "10% off",
|
"value": "10% off",
|
||||||
"explaination": "on food on weekends",
|
"explanation": "on food on weekends",
|
||||||
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Free kids mocktail during stay",
|
"title": "Free kids mocktail during stay",
|
||||||
"value": "Free kids mocktail",
|
"value": "Free kids mocktail",
|
||||||
"explaination": "during stay",
|
"explanation": "during stay",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/new-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/new-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 2,
|
"level": 2,
|
||||||
"name": "Good Friend",
|
"name": "Good Friend",
|
||||||
"requiredPoints": 5000,
|
"requiredPoints": 5000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
{
|
{
|
||||||
"title": "15% on food on weekends",
|
"title": "15% on food on weekends",
|
||||||
"value": "15% on food",
|
"value": "15% on food",
|
||||||
"explaination": "on weekends",
|
"explanation": "on weekends",
|
||||||
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/good-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/good-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 3,
|
"level": 3,
|
||||||
"name": "Close Friend",
|
"name": "Close Friend",
|
||||||
"requiredPoints": 10000,
|
"requiredPoints": 10000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -55,14 +55,14 @@
|
|||||||
{
|
{
|
||||||
"title": "Late checkout - 1 hour when available",
|
"title": "Late checkout - 1 hour when available",
|
||||||
"value": "Late checkout",
|
"value": "Late checkout",
|
||||||
"explaination": "- 1 hour when available",
|
"explanation": "- 1 hour when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "50 SEK voucher",
|
"title": "50 SEK voucher",
|
||||||
"value": "50 SEK voucher",
|
"value": "50 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/close-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/close-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 4,
|
"level": 4,
|
||||||
"name": "Dear Friend",
|
"name": "Dear Friend",
|
||||||
"requiredPoints": 25000,
|
"requiredPoints": 25000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -78,21 +78,21 @@
|
|||||||
{
|
{
|
||||||
"title": "25% earn rate",
|
"title": "25% earn rate",
|
||||||
"value": "25% earn rate",
|
"value": "25% earn rate",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Early check-in - 1 hour when available",
|
"title": "Early check-in - 1 hour when available",
|
||||||
"value": "Early check-in",
|
"value": "Early check-in",
|
||||||
"explaination": "- 1 hour when available",
|
"explanation": "- 1 hour when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "75 SEK voucher",
|
"title": "75 SEK voucher",
|
||||||
"value": "75 SEK voucher",
|
"value": "75 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -100,7 +100,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/dear-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/dear-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 5,
|
"level": 5,
|
||||||
"name": "Loyal Friend",
|
"name": "Loyal Friend",
|
||||||
"requiredPoints": 100000,
|
"requiredPoints": 100000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -108,21 +108,21 @@
|
|||||||
{
|
{
|
||||||
"title": "Free room upgrade when available",
|
"title": "Free room upgrade when available",
|
||||||
"value": "Free room upgrade",
|
"value": "Free room upgrade",
|
||||||
"explaination": "when available",
|
"explanation": "when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "100 SEK voucher",
|
"title": "100 SEK voucher",
|
||||||
"value": "100 SEK voucher",
|
"value": "100 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "2-for-1 breakfast",
|
"title": "2-for-1 breakfast",
|
||||||
"value": "2-for-1 breakfast",
|
"value": "2-for-1 breakfast",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -130,7 +130,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/loyal-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/loyal-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 6,
|
"level": 6,
|
||||||
"name": "True Friend",
|
"name": "True Friend",
|
||||||
"requiredPoints": 250000,
|
"requiredPoints": 250000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -138,28 +138,28 @@
|
|||||||
{
|
{
|
||||||
"title": "50% earn rate",
|
"title": "50% earn rate",
|
||||||
"value": "50% earn rate",
|
"value": "50% earn rate",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "150 SEK voucher",
|
"title": "150 SEK voucher",
|
||||||
"value": "150 SEK voucher",
|
"value": "150 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "48h room guarantee",
|
"title": "48h room guarantee",
|
||||||
"value": "48h room guarantee",
|
"value": "48h room guarantee",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Always free breakfast",
|
"title": "Always free breakfast",
|
||||||
"value": "Always free breakfast",
|
"value": "Always free breakfast",
|
||||||
"explaination": "Always free breakfast",
|
"explanation": "Always free breakfast",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -167,7 +167,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/true-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/true-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 7,
|
"level": 7,
|
||||||
"name": "Best Friend",
|
"name": "Best Friend",
|
||||||
"requiredPoints": 400000,
|
"requiredPoints": 400000,
|
||||||
"requiredNights": 100,
|
"requiredNights": 100,
|
||||||
@@ -175,21 +175,21 @@
|
|||||||
{
|
{
|
||||||
"title": "200 SEK voucher",
|
"title": "200 SEK voucher",
|
||||||
"value": "200 SEK voucher",
|
"value": "200 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Yearly exclusive gift",
|
"title": "Yearly exclusive gift",
|
||||||
"value": "Yearly exclusive gift",
|
"value": "Yearly exclusive gift",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kid's boost",
|
"title": "Kid's boost",
|
||||||
"value": "Kid's boost",
|
"value": "Kid's boost",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ export default function LoyaltyLevels() {
|
|||||||
<div className={styles.cardContainer}>
|
<div className={styles.cardContainer}>
|
||||||
{levels.map((level: Level) => (
|
{levels.map((level: Level) => (
|
||||||
<LevelCard
|
<LevelCard
|
||||||
key={level.tier}
|
key={level.level}
|
||||||
formatMessage={formatMessage}
|
formatMessage={formatMessage}
|
||||||
lang={lang}
|
lang={lang}
|
||||||
level={level}
|
level={level}
|
||||||
@@ -60,7 +60,7 @@ function LevelCard({ formatMessage, lang, level }: LevelCardProps) {
|
|||||||
: pointsString
|
: pointsString
|
||||||
|
|
||||||
let Level = null
|
let Level = null
|
||||||
switch (level.tier) {
|
switch (level.level) {
|
||||||
case 1:
|
case 1:
|
||||||
Level = NewFriend
|
Level = NewFriend
|
||||||
break
|
break
|
||||||
@@ -86,7 +86,7 @@ function LevelCard({ formatMessage, lang, level }: LevelCardProps) {
|
|||||||
return (
|
return (
|
||||||
<article className={styles.card}>
|
<article className={styles.card}>
|
||||||
<Title className={styles.tierHeading} level="h4">
|
<Title className={styles.tierHeading} level="h4">
|
||||||
{level.tier}
|
{level.level}
|
||||||
</Title>
|
</Title>
|
||||||
{Level ? <Level color="primaryLightOnSurfaceAccent" /> : null}
|
{Level ? <Level color="primaryLightOnSurfaceAccent" /> : null}
|
||||||
<div className={styles.textContainer}>
|
<div className={styles.textContainer}>
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { MembershipLevelEnum } from "@/constants/membershipLevels"
|
||||||
import { serverClient } from "@/lib/trpc/server"
|
import { serverClient } from "@/lib/trpc/server"
|
||||||
|
|
||||||
import Header from "@/components/SectionHeader"
|
import Header from "@/components/SectionHeader"
|
||||||
@@ -6,43 +7,58 @@ import Link from "@/components/TempDesignSystem/Link"
|
|||||||
import BiroScript from "@/components/TempDesignSystem/Text/BiroScript"
|
import BiroScript from "@/components/TempDesignSystem/Text/BiroScript"
|
||||||
import Title from "@/components/TempDesignSystem/Text/Title"
|
import Title from "@/components/TempDesignSystem/Text/Title"
|
||||||
import { getIntl } from "@/i18n"
|
import { getIntl } from "@/i18n"
|
||||||
|
import { getMembershipLevelObject } from "@/utils/membershipLevel"
|
||||||
|
import { getMembership } from "@/utils/user"
|
||||||
|
|
||||||
import styles from "./current.module.css"
|
import styles from "./current.module.css"
|
||||||
|
|
||||||
import { AccountPageComponentProps } from "@/types/components/myPages/myPage/accountPage"
|
import type { AccountPageComponentProps } from "@/types/components/myPages/myPage/accountPage"
|
||||||
|
import type { LangParams } from "@/types/params"
|
||||||
|
|
||||||
export default async function CurrentBenefitsBlock({
|
export default async function CurrentBenefitsBlock({
|
||||||
title,
|
title,
|
||||||
subtitle,
|
subtitle,
|
||||||
link,
|
link,
|
||||||
}: AccountPageComponentProps) {
|
lang,
|
||||||
|
}: AccountPageComponentProps & LangParams) {
|
||||||
const user = await serverClient().user.get()
|
const user = await serverClient().user.get()
|
||||||
const { formatMessage } = await getIntl()
|
const { formatMessage } = await getIntl()
|
||||||
// TODO: level should be fetched from the `user` object once available
|
|
||||||
// TAKE NOTE: we need clarification on how benefits stack from different levels
|
// TAKE NOTE: we need clarification on how benefits stack from different levels
|
||||||
// in order to determine if a benefit is specific to a level or if it is a cumulative benefit
|
// in order to determine if a benefit is specific to a level or if it is a cumulative benefit
|
||||||
// we might have to add a new boolean property "exclusive" or similar
|
// we might have to add a new boolean property "exclusive" or similar
|
||||||
const userLevel = 1
|
if (!user) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
const membership = getMembership(user.memberships)
|
||||||
|
if (!membership) {
|
||||||
|
// TODO: handle this case?
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
const currentLevel = Array.of(...Array(3).keys())
|
const currentLevel = getMembershipLevelObject(
|
||||||
|
user.memberships[0].membershipLevel as MembershipLevelEnum,
|
||||||
|
lang
|
||||||
|
)
|
||||||
|
if (!currentLevel) {
|
||||||
|
// TODO: handle this case?
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<section className={styles.container}>
|
<section className={styles.container}>
|
||||||
<Header title={title} link={link} subtitle={subtitle} />
|
<Header title={title} link={link} subtitle={subtitle} />
|
||||||
<Grids.Scrollable>
|
<Grids.Scrollable>
|
||||||
{currentLevel.map((benefit) => (
|
{currentLevel.benefits.map((benefit, idx) => (
|
||||||
<Link className={styles.card} href="#" key={benefit}>
|
<Link className={styles.card} href="#" key={`${currentLevel}-${idx}`}>
|
||||||
<BiroScript
|
<BiroScript
|
||||||
className={styles.script}
|
className={styles.script}
|
||||||
color="primaryLightOnSurfaceAccent"
|
color="primaryLightOnSurfaceAccent"
|
||||||
type="two"
|
type="two"
|
||||||
>
|
>
|
||||||
{formatMessage({ id: "As our Close Friend" })}
|
{formatMessage({ id: "As our" })} {currentLevel.name}
|
||||||
</BiroScript>
|
</BiroScript>
|
||||||
<Title as="h5" level="h3" textAlign="center">
|
<Title as="h5" level="h3" textAlign="center">
|
||||||
{formatMessage({
|
{benefit.title}
|
||||||
id: "Free soft drink voucher for the kids when staying",
|
|
||||||
})}
|
|
||||||
</Title>
|
</Title>
|
||||||
</Link>
|
</Link>
|
||||||
))}
|
))}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"levels": [
|
"levels": [
|
||||||
{
|
{
|
||||||
"tier": 1,
|
"level": 1,
|
||||||
"name": "New Friend",
|
"name": "New Friend",
|
||||||
"requiredPoints": 0,
|
"requiredPoints": 0,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -9,21 +9,21 @@
|
|||||||
{
|
{
|
||||||
"title": "Friendly room rates",
|
"title": "Friendly room rates",
|
||||||
"value": "Friendly room rates",
|
"value": "Friendly room rates",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "10% off on food on weekends",
|
"title": "10% off on food on weekends",
|
||||||
"value": "10% off",
|
"value": "10% off",
|
||||||
"explaination": "on food on weekends",
|
"explanation": "on food on weekends",
|
||||||
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Free kids mocktail during stay",
|
"title": "Free kids mocktail during stay",
|
||||||
"value": "Free kids mocktail",
|
"value": "Free kids mocktail",
|
||||||
"explaination": "during stay",
|
"explanation": "during stay",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/new-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/new-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 2,
|
"level": 2,
|
||||||
"name": "Good Friend",
|
"name": "Good Friend",
|
||||||
"requiredPoints": 5000,
|
"requiredPoints": 5000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
{
|
{
|
||||||
"title": "15% on food on weekends",
|
"title": "15% on food on weekends",
|
||||||
"value": "15% on food",
|
"value": "15% on food",
|
||||||
"explaination": "on weekends",
|
"explanation": "on weekends",
|
||||||
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/good-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/good-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 3,
|
"level": 3,
|
||||||
"name": "Close Friend",
|
"name": "Close Friend",
|
||||||
"requiredPoints": 10000,
|
"requiredPoints": 10000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -55,14 +55,14 @@
|
|||||||
{
|
{
|
||||||
"title": "Late checkout - 1 hour when available",
|
"title": "Late checkout - 1 hour when available",
|
||||||
"value": "Late checkout",
|
"value": "Late checkout",
|
||||||
"explaination": "- 1 hour when available",
|
"explanation": "- 1 hour when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "50 SEK voucher",
|
"title": "50 SEK voucher",
|
||||||
"value": "50 SEK voucher",
|
"value": "50 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/close-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/close-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 4,
|
"level": 4,
|
||||||
"name": "Dear Friend",
|
"name": "Dear Friend",
|
||||||
"requiredPoints": 25000,
|
"requiredPoints": 25000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -78,21 +78,21 @@
|
|||||||
{
|
{
|
||||||
"title": "25% earn rate",
|
"title": "25% earn rate",
|
||||||
"value": "25% earn rate",
|
"value": "25% earn rate",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Early check-in - 1 hour when available",
|
"title": "Early check-in - 1 hour when available",
|
||||||
"value": "Early check-in",
|
"value": "Early check-in",
|
||||||
"explaination": "- 1 hour when available",
|
"explanation": "- 1 hour when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "75 SEK voucher",
|
"title": "75 SEK voucher",
|
||||||
"value": "75 SEK voucher",
|
"value": "75 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -100,7 +100,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/dear-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/dear-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 5,
|
"level": 5,
|
||||||
"name": "Loyal Friend",
|
"name": "Loyal Friend",
|
||||||
"requiredPoints": 100000,
|
"requiredPoints": 100000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -108,21 +108,21 @@
|
|||||||
{
|
{
|
||||||
"title": "Free room upgrade when available",
|
"title": "Free room upgrade when available",
|
||||||
"value": "Free room upgrade",
|
"value": "Free room upgrade",
|
||||||
"explaination": "when available",
|
"explanation": "when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "100 SEK voucher",
|
"title": "100 SEK voucher",
|
||||||
"value": "100 SEK voucher",
|
"value": "100 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "2-for-1 breakfast",
|
"title": "2-for-1 breakfast",
|
||||||
"value": "2-for-1 breakfast",
|
"value": "2-for-1 breakfast",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -130,7 +130,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/loyal-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/loyal-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 6,
|
"level": 6,
|
||||||
"name": "True Friend",
|
"name": "True Friend",
|
||||||
"requiredPoints": 250000,
|
"requiredPoints": 250000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -138,28 +138,28 @@
|
|||||||
{
|
{
|
||||||
"title": "50% earn rate",
|
"title": "50% earn rate",
|
||||||
"value": "50% earn rate",
|
"value": "50% earn rate",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "150 SEK voucher",
|
"title": "150 SEK voucher",
|
||||||
"value": "150 SEK voucher",
|
"value": "150 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "48h room guarantee",
|
"title": "48h room guarantee",
|
||||||
"value": "48h room guarantee",
|
"value": "48h room guarantee",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Always free breakfast",
|
"title": "Always free breakfast",
|
||||||
"value": "Always free breakfast",
|
"value": "Always free breakfast",
|
||||||
"explaination": "Always free breakfast",
|
"explanation": "Always free breakfast",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -167,7 +167,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/true-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/true-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 7,
|
"level": 7,
|
||||||
"name": "Best Friend",
|
"name": "Best Friend",
|
||||||
"requiredPoints": 400000,
|
"requiredPoints": 400000,
|
||||||
"requiredNights": 100,
|
"requiredNights": 100,
|
||||||
@@ -175,21 +175,21 @@
|
|||||||
{
|
{
|
||||||
"title": "200 SEK voucher",
|
"title": "200 SEK voucher",
|
||||||
"value": "200 SEK voucher",
|
"value": "200 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Yearly exclusive gift",
|
"title": "Yearly exclusive gift",
|
||||||
"value": "Yearly exclusive gift",
|
"value": "Yearly exclusive gift",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kid's boost",
|
"title": "Kid's boost",
|
||||||
"value": "Kid's boost",
|
"value": "Kid's boost",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"levels": [
|
"levels": [
|
||||||
{
|
{
|
||||||
"tier": 1,
|
"level": 1,
|
||||||
"name": "New Friend",
|
"name": "New Friend",
|
||||||
"requiredPoints": 0,
|
"requiredPoints": 0,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -9,21 +9,21 @@
|
|||||||
{
|
{
|
||||||
"title": "Friendly room rates",
|
"title": "Friendly room rates",
|
||||||
"value": "Friendly room rates",
|
"value": "Friendly room rates",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "10% off on food on weekends",
|
"title": "10% off on food on weekends",
|
||||||
"value": "10% off",
|
"value": "10% off",
|
||||||
"explaination": "on food on weekends",
|
"explanation": "on food on weekends",
|
||||||
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Free kids mocktail during stay",
|
"title": "Free kids mocktail during stay",
|
||||||
"value": "Free kids mocktail",
|
"value": "Free kids mocktail",
|
||||||
"explaination": "during stay",
|
"explanation": "during stay",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/new-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/new-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 2,
|
"level": 2,
|
||||||
"name": "Good Friend",
|
"name": "Good Friend",
|
||||||
"requiredPoints": 5000,
|
"requiredPoints": 5000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
{
|
{
|
||||||
"title": "15% on food on weekends",
|
"title": "15% on food on weekends",
|
||||||
"value": "15% on food",
|
"value": "15% on food",
|
||||||
"explaination": "on weekends",
|
"explanation": "on weekends",
|
||||||
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/good-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/good-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 3,
|
"level": 3,
|
||||||
"name": "Close Friend",
|
"name": "Close Friend",
|
||||||
"requiredPoints": 10000,
|
"requiredPoints": 10000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -55,14 +55,14 @@
|
|||||||
{
|
{
|
||||||
"title": "Late checkout - 1 hour when available",
|
"title": "Late checkout - 1 hour when available",
|
||||||
"value": "Late checkout",
|
"value": "Late checkout",
|
||||||
"explaination": "- 1 hour when available",
|
"explanation": "- 1 hour when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "50 SEK voucher",
|
"title": "50 SEK voucher",
|
||||||
"value": "50 SEK voucher",
|
"value": "50 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/close-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/close-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 4,
|
"level": 4,
|
||||||
"name": "Dear Friend",
|
"name": "Dear Friend",
|
||||||
"requiredPoints": 25000,
|
"requiredPoints": 25000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -78,21 +78,21 @@
|
|||||||
{
|
{
|
||||||
"title": "25% earn rate",
|
"title": "25% earn rate",
|
||||||
"value": "25% earn rate",
|
"value": "25% earn rate",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Early check-in - 1 hour when available",
|
"title": "Early check-in - 1 hour when available",
|
||||||
"value": "Early check-in",
|
"value": "Early check-in",
|
||||||
"explaination": "- 1 hour when available",
|
"explanation": "- 1 hour when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "75 SEK voucher",
|
"title": "75 SEK voucher",
|
||||||
"value": "75 SEK voucher",
|
"value": "75 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -100,7 +100,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/dear-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/dear-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 5,
|
"level": 5,
|
||||||
"name": "Loyal Friend",
|
"name": "Loyal Friend",
|
||||||
"requiredPoints": 100000,
|
"requiredPoints": 100000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -108,21 +108,21 @@
|
|||||||
{
|
{
|
||||||
"title": "Free room upgrade when available",
|
"title": "Free room upgrade when available",
|
||||||
"value": "Free room upgrade",
|
"value": "Free room upgrade",
|
||||||
"explaination": "when available",
|
"explanation": "when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "100 SEK voucher",
|
"title": "100 SEK voucher",
|
||||||
"value": "100 SEK voucher",
|
"value": "100 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "2-for-1 breakfast",
|
"title": "2-for-1 breakfast",
|
||||||
"value": "2-for-1 breakfast",
|
"value": "2-for-1 breakfast",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -130,7 +130,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/loyal-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/loyal-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 6,
|
"level": 6,
|
||||||
"name": "True Friend",
|
"name": "True Friend",
|
||||||
"requiredPoints": 250000,
|
"requiredPoints": 250000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -138,28 +138,28 @@
|
|||||||
{
|
{
|
||||||
"title": "50% earn rate",
|
"title": "50% earn rate",
|
||||||
"value": "50% earn rate",
|
"value": "50% earn rate",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "150 SEK voucher",
|
"title": "150 SEK voucher",
|
||||||
"value": "150 SEK voucher",
|
"value": "150 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "48h room guarantee",
|
"title": "48h room guarantee",
|
||||||
"value": "48h room guarantee",
|
"value": "48h room guarantee",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Always free breakfast",
|
"title": "Always free breakfast",
|
||||||
"value": "Always free breakfast",
|
"value": "Always free breakfast",
|
||||||
"explaination": "Always free breakfast",
|
"explanation": "Always free breakfast",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -167,7 +167,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/true-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/true-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 7,
|
"level": 7,
|
||||||
"name": "Best Friend",
|
"name": "Best Friend",
|
||||||
"requiredPoints": 400000,
|
"requiredPoints": 400000,
|
||||||
"requiredNights": 100,
|
"requiredNights": 100,
|
||||||
@@ -175,21 +175,21 @@
|
|||||||
{
|
{
|
||||||
"title": "200 SEK voucher",
|
"title": "200 SEK voucher",
|
||||||
"value": "200 SEK voucher",
|
"value": "200 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Yearly exclusive gift",
|
"title": "Yearly exclusive gift",
|
||||||
"value": "Yearly exclusive gift",
|
"value": "Yearly exclusive gift",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kid's boost",
|
"title": "Kid's boost",
|
||||||
"value": "Kid's boost",
|
"value": "Kid's boost",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"levels": [
|
"levels": [
|
||||||
{
|
{
|
||||||
"tier": 1,
|
"level": 1,
|
||||||
"name": "New Friend",
|
"name": "New Friend",
|
||||||
"requiredPoints": 0,
|
"requiredPoints": 0,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -9,21 +9,21 @@
|
|||||||
{
|
{
|
||||||
"title": "Friendly room rates",
|
"title": "Friendly room rates",
|
||||||
"value": "Friendly room rates",
|
"value": "Friendly room rates",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "10% off on food on weekends",
|
"title": "10% off on food on weekends",
|
||||||
"value": "10% off",
|
"value": "10% off",
|
||||||
"explaination": "on food on weekends",
|
"explanation": "on food on weekends",
|
||||||
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Free kids mocktail during stay",
|
"title": "Free kids mocktail during stay",
|
||||||
"value": "Free kids mocktail",
|
"value": "Free kids mocktail",
|
||||||
"explaination": "during stay",
|
"explanation": "during stay",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/new-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/new-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 2,
|
"level": 2,
|
||||||
"name": "Good Friend",
|
"name": "Good Friend",
|
||||||
"requiredPoints": 5000,
|
"requiredPoints": 5000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
{
|
{
|
||||||
"title": "15% on food on weekends",
|
"title": "15% on food on weekends",
|
||||||
"value": "15% on food",
|
"value": "15% on food",
|
||||||
"explaination": "on weekends",
|
"explanation": "on weekends",
|
||||||
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/good-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/good-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 3,
|
"level": 3,
|
||||||
"name": "Close Friend",
|
"name": "Close Friend",
|
||||||
"requiredPoints": 10000,
|
"requiredPoints": 10000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -55,14 +55,14 @@
|
|||||||
{
|
{
|
||||||
"title": "Late checkout - 1 hour when available",
|
"title": "Late checkout - 1 hour when available",
|
||||||
"value": "Late checkout",
|
"value": "Late checkout",
|
||||||
"explaination": "- 1 hour when available",
|
"explanation": "- 1 hour when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "50 SEK voucher",
|
"title": "50 SEK voucher",
|
||||||
"value": "50 SEK voucher",
|
"value": "50 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/close-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/close-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 4,
|
"level": 4,
|
||||||
"name": "Dear Friend",
|
"name": "Dear Friend",
|
||||||
"requiredPoints": 25000,
|
"requiredPoints": 25000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -78,21 +78,21 @@
|
|||||||
{
|
{
|
||||||
"title": "25% earn rate",
|
"title": "25% earn rate",
|
||||||
"value": "25% earn rate",
|
"value": "25% earn rate",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Early check-in - 1 hour when available",
|
"title": "Early check-in - 1 hour when available",
|
||||||
"value": "Early check-in",
|
"value": "Early check-in",
|
||||||
"explaination": "- 1 hour when available",
|
"explanation": "- 1 hour when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "75 SEK voucher",
|
"title": "75 SEK voucher",
|
||||||
"value": "75 SEK voucher",
|
"value": "75 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -100,7 +100,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/dear-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/dear-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 5,
|
"level": 5,
|
||||||
"name": "Loyal Friend",
|
"name": "Loyal Friend",
|
||||||
"requiredPoints": 100000,
|
"requiredPoints": 100000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -108,21 +108,21 @@
|
|||||||
{
|
{
|
||||||
"title": "Free room upgrade when available",
|
"title": "Free room upgrade when available",
|
||||||
"value": "Free room upgrade",
|
"value": "Free room upgrade",
|
||||||
"explaination": "when available",
|
"explanation": "when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "100 SEK voucher",
|
"title": "100 SEK voucher",
|
||||||
"value": "100 SEK voucher",
|
"value": "100 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "2-for-1 breakfast",
|
"title": "2-for-1 breakfast",
|
||||||
"value": "2-for-1 breakfast",
|
"value": "2-for-1 breakfast",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -130,7 +130,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/loyal-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/loyal-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 6,
|
"level": 6,
|
||||||
"name": "True Friend",
|
"name": "True Friend",
|
||||||
"requiredPoints": 250000,
|
"requiredPoints": 250000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -138,28 +138,28 @@
|
|||||||
{
|
{
|
||||||
"title": "50% earn rate",
|
"title": "50% earn rate",
|
||||||
"value": "50% earn rate",
|
"value": "50% earn rate",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "150 SEK voucher",
|
"title": "150 SEK voucher",
|
||||||
"value": "150 SEK voucher",
|
"value": "150 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "48h room guarantee",
|
"title": "48h room guarantee",
|
||||||
"value": "48h room guarantee",
|
"value": "48h room guarantee",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Always free breakfast",
|
"title": "Always free breakfast",
|
||||||
"value": "Always free breakfast",
|
"value": "Always free breakfast",
|
||||||
"explaination": "Always free breakfast",
|
"explanation": "Always free breakfast",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -167,7 +167,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/true-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/true-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 7,
|
"level": 7,
|
||||||
"name": "Best Friend",
|
"name": "Best Friend",
|
||||||
"requiredPoints": 400000,
|
"requiredPoints": 400000,
|
||||||
"requiredNights": 100,
|
"requiredNights": 100,
|
||||||
@@ -175,21 +175,21 @@
|
|||||||
{
|
{
|
||||||
"title": "200 SEK voucher",
|
"title": "200 SEK voucher",
|
||||||
"value": "200 SEK voucher",
|
"value": "200 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Yearly exclusive gift",
|
"title": "Yearly exclusive gift",
|
||||||
"value": "Yearly exclusive gift",
|
"value": "Yearly exclusive gift",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kid's boost",
|
"title": "Kid's boost",
|
||||||
"value": "Kid's boost",
|
"value": "Kid's boost",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"levels": [
|
"levels": [
|
||||||
{
|
{
|
||||||
"tier": 1,
|
"level": 1,
|
||||||
"name": "New Friend",
|
"name": "New Friend",
|
||||||
"requiredPoints": 0,
|
"requiredPoints": 0,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -9,21 +9,21 @@
|
|||||||
{
|
{
|
||||||
"title": "Friendly room rates",
|
"title": "Friendly room rates",
|
||||||
"value": "Friendly room rates",
|
"value": "Friendly room rates",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "10% off on food on weekends",
|
"title": "10% off on food on weekends",
|
||||||
"value": "10% off",
|
"value": "10% off",
|
||||||
"explaination": "on food on weekends",
|
"explanation": "on food on weekends",
|
||||||
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Free kids mocktail during stay",
|
"title": "Free kids mocktail during stay",
|
||||||
"value": "Free kids mocktail",
|
"value": "Free kids mocktail",
|
||||||
"explaination": "during stay",
|
"explanation": "during stay",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/new-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/new-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 2,
|
"level": 2,
|
||||||
"name": "Good Friend",
|
"name": "Good Friend",
|
||||||
"requiredPoints": 5000,
|
"requiredPoints": 5000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
{
|
{
|
||||||
"title": "15% on food on weekends",
|
"title": "15% on food on weekends",
|
||||||
"value": "15% on food",
|
"value": "15% on food",
|
||||||
"explaination": "on weekends",
|
"explanation": "on weekends",
|
||||||
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/good-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/good-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 3,
|
"level": 3,
|
||||||
"name": "Close Friend",
|
"name": "Close Friend",
|
||||||
"requiredPoints": 10000,
|
"requiredPoints": 10000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -55,14 +55,14 @@
|
|||||||
{
|
{
|
||||||
"title": "Late checkout - 1 hour when available",
|
"title": "Late checkout - 1 hour when available",
|
||||||
"value": "Late checkout",
|
"value": "Late checkout",
|
||||||
"explaination": "- 1 hour when available",
|
"explanation": "- 1 hour when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "50 SEK voucher",
|
"title": "50 SEK voucher",
|
||||||
"value": "50 SEK voucher",
|
"value": "50 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/close-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/close-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 4,
|
"level": 4,
|
||||||
"name": "Dear Friend",
|
"name": "Dear Friend",
|
||||||
"requiredPoints": 25000,
|
"requiredPoints": 25000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -78,21 +78,21 @@
|
|||||||
{
|
{
|
||||||
"title": "25% earn rate",
|
"title": "25% earn rate",
|
||||||
"value": "25% earn rate",
|
"value": "25% earn rate",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Early check-in - 1 hour when available",
|
"title": "Early check-in - 1 hour when available",
|
||||||
"value": "Early check-in",
|
"value": "Early check-in",
|
||||||
"explaination": "- 1 hour when available",
|
"explanation": "- 1 hour when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "75 SEK voucher",
|
"title": "75 SEK voucher",
|
||||||
"value": "75 SEK voucher",
|
"value": "75 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -100,7 +100,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/dear-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/dear-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 5,
|
"level": 5,
|
||||||
"name": "Loyal Friend",
|
"name": "Loyal Friend",
|
||||||
"requiredPoints": 100000,
|
"requiredPoints": 100000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -108,21 +108,21 @@
|
|||||||
{
|
{
|
||||||
"title": "Free room upgrade when available",
|
"title": "Free room upgrade when available",
|
||||||
"value": "Free room upgrade",
|
"value": "Free room upgrade",
|
||||||
"explaination": "when available",
|
"explanation": "when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "100 SEK voucher",
|
"title": "100 SEK voucher",
|
||||||
"value": "100 SEK voucher",
|
"value": "100 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "2-for-1 breakfast",
|
"title": "2-for-1 breakfast",
|
||||||
"value": "2-for-1 breakfast",
|
"value": "2-for-1 breakfast",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -130,7 +130,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/loyal-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/loyal-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 6,
|
"level": 6,
|
||||||
"name": "True Friend",
|
"name": "True Friend",
|
||||||
"requiredPoints": 250000,
|
"requiredPoints": 250000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -138,28 +138,28 @@
|
|||||||
{
|
{
|
||||||
"title": "50% earn rate",
|
"title": "50% earn rate",
|
||||||
"value": "50% earn rate",
|
"value": "50% earn rate",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "150 SEK voucher",
|
"title": "150 SEK voucher",
|
||||||
"value": "150 SEK voucher",
|
"value": "150 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "48h room guarantee",
|
"title": "48h room guarantee",
|
||||||
"value": "48h room guarantee",
|
"value": "48h room guarantee",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Always free breakfast",
|
"title": "Always free breakfast",
|
||||||
"value": "Always free breakfast",
|
"value": "Always free breakfast",
|
||||||
"explaination": "Always free breakfast",
|
"explanation": "Always free breakfast",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -167,7 +167,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/true-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/true-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 7,
|
"level": 7,
|
||||||
"name": "Best Friend",
|
"name": "Best Friend",
|
||||||
"requiredPoints": 400000,
|
"requiredPoints": 400000,
|
||||||
"requiredNights": 100,
|
"requiredNights": 100,
|
||||||
@@ -175,21 +175,21 @@
|
|||||||
{
|
{
|
||||||
"title": "200 SEK voucher",
|
"title": "200 SEK voucher",
|
||||||
"value": "200 SEK voucher",
|
"value": "200 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Yearly exclusive gift",
|
"title": "Yearly exclusive gift",
|
||||||
"value": "Yearly exclusive gift",
|
"value": "Yearly exclusive gift",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kid's boost",
|
"title": "Kid's boost",
|
||||||
"value": "Kid's boost",
|
"value": "Kid's boost",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"levels": [
|
"levels": [
|
||||||
{
|
{
|
||||||
"tier": 1,
|
"level": 1,
|
||||||
"name": "New Friend",
|
"name": "New Friend",
|
||||||
"requiredPoints": 0,
|
"requiredPoints": 0,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -9,21 +9,21 @@
|
|||||||
{
|
{
|
||||||
"title": "Friendly room rates",
|
"title": "Friendly room rates",
|
||||||
"value": "Friendly room rates",
|
"value": "Friendly room rates",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "10% off on food on weekends",
|
"title": "10% off on food on weekends",
|
||||||
"value": "10% off",
|
"value": "10% off",
|
||||||
"explaination": "on food on weekends",
|
"explanation": "on food on weekends",
|
||||||
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Free kids mocktail during stay",
|
"title": "Free kids mocktail during stay",
|
||||||
"value": "Free kids mocktail",
|
"value": "Free kids mocktail",
|
||||||
"explaination": "during stay",
|
"explanation": "during stay",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/new-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/new-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 2,
|
"level": 2,
|
||||||
"name": "Good Friend",
|
"name": "Good Friend",
|
||||||
"requiredPoints": 5000,
|
"requiredPoints": 5000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
{
|
{
|
||||||
"title": "15% on food on weekends",
|
"title": "15% on food on weekends",
|
||||||
"value": "15% on food",
|
"value": "15% on food",
|
||||||
"explaination": "on weekends",
|
"explanation": "on weekends",
|
||||||
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/good-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/good-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 3,
|
"level": 3,
|
||||||
"name": "Close Friend",
|
"name": "Close Friend",
|
||||||
"requiredPoints": 10000,
|
"requiredPoints": 10000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -55,14 +55,14 @@
|
|||||||
{
|
{
|
||||||
"title": "Late checkout - 1 hour when available",
|
"title": "Late checkout - 1 hour when available",
|
||||||
"value": "Late checkout",
|
"value": "Late checkout",
|
||||||
"explaination": "- 1 hour when available",
|
"explanation": "- 1 hour when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "50 SEK voucher",
|
"title": "50 SEK voucher",
|
||||||
"value": "50 SEK voucher",
|
"value": "50 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/close-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/close-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 4,
|
"level": 4,
|
||||||
"name": "Dear Friend",
|
"name": "Dear Friend",
|
||||||
"requiredPoints": 25000,
|
"requiredPoints": 25000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -78,21 +78,21 @@
|
|||||||
{
|
{
|
||||||
"title": "25% earn rate",
|
"title": "25% earn rate",
|
||||||
"value": "25% earn rate",
|
"value": "25% earn rate",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Early check-in - 1 hour when available",
|
"title": "Early check-in - 1 hour when available",
|
||||||
"value": "Early check-in",
|
"value": "Early check-in",
|
||||||
"explaination": "- 1 hour when available",
|
"explanation": "- 1 hour when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "75 SEK voucher",
|
"title": "75 SEK voucher",
|
||||||
"value": "75 SEK voucher",
|
"value": "75 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -100,7 +100,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/dear-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/dear-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 5,
|
"level": 5,
|
||||||
"name": "Loyal Friend",
|
"name": "Loyal Friend",
|
||||||
"requiredPoints": 100000,
|
"requiredPoints": 100000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -108,21 +108,21 @@
|
|||||||
{
|
{
|
||||||
"title": "Free room upgrade when available",
|
"title": "Free room upgrade when available",
|
||||||
"value": "Free room upgrade",
|
"value": "Free room upgrade",
|
||||||
"explaination": "when available",
|
"explanation": "when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "100 SEK voucher",
|
"title": "100 SEK voucher",
|
||||||
"value": "100 SEK voucher",
|
"value": "100 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "2-for-1 breakfast",
|
"title": "2-for-1 breakfast",
|
||||||
"value": "2-for-1 breakfast",
|
"value": "2-for-1 breakfast",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -130,7 +130,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/loyal-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/loyal-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 6,
|
"level": 6,
|
||||||
"name": "True Friend",
|
"name": "True Friend",
|
||||||
"requiredPoints": 250000,
|
"requiredPoints": 250000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -138,28 +138,28 @@
|
|||||||
{
|
{
|
||||||
"title": "50% earn rate",
|
"title": "50% earn rate",
|
||||||
"value": "50% earn rate",
|
"value": "50% earn rate",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "150 SEK voucher",
|
"title": "150 SEK voucher",
|
||||||
"value": "150 SEK voucher",
|
"value": "150 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "48h room guarantee",
|
"title": "48h room guarantee",
|
||||||
"value": "48h room guarantee",
|
"value": "48h room guarantee",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Always free breakfast",
|
"title": "Always free breakfast",
|
||||||
"value": "Always free breakfast",
|
"value": "Always free breakfast",
|
||||||
"explaination": "Always free breakfast",
|
"explanation": "Always free breakfast",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -167,7 +167,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/true-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/true-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 7,
|
"level": 7,
|
||||||
"name": "Best Friend",
|
"name": "Best Friend",
|
||||||
"requiredPoints": 400000,
|
"requiredPoints": 400000,
|
||||||
"requiredNights": 100,
|
"requiredNights": 100,
|
||||||
@@ -175,21 +175,21 @@
|
|||||||
{
|
{
|
||||||
"title": "200 SEK voucher",
|
"title": "200 SEK voucher",
|
||||||
"value": "200 SEK voucher",
|
"value": "200 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Yearly exclusive gift",
|
"title": "Yearly exclusive gift",
|
||||||
"value": "Yearly exclusive gift",
|
"value": "Yearly exclusive gift",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kid's boost",
|
"title": "Kid's boost",
|
||||||
"value": "Kid's boost",
|
"value": "Kid's boost",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"levels": [
|
"levels": [
|
||||||
{
|
{
|
||||||
"tier": 1,
|
"level": 1,
|
||||||
"name": "New Friend",
|
"name": "New Friend",
|
||||||
"requiredPoints": 0,
|
"requiredPoints": 0,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -9,21 +9,21 @@
|
|||||||
{
|
{
|
||||||
"title": "Friendly room rates",
|
"title": "Friendly room rates",
|
||||||
"value": "Friendly room rates",
|
"value": "Friendly room rates",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "10% off on food on weekends",
|
"title": "10% off on food on weekends",
|
||||||
"value": "10% off",
|
"value": "10% off",
|
||||||
"explaination": "on food on weekends",
|
"explanation": "on food on weekends",
|
||||||
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Free kids mocktail during stay",
|
"title": "Free kids mocktail during stay",
|
||||||
"value": "Free kids mocktail",
|
"value": "Free kids mocktail",
|
||||||
"explaination": "during stay",
|
"explanation": "during stay",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/new-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/new-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 2,
|
"level": 2,
|
||||||
"name": "Good Friend",
|
"name": "Good Friend",
|
||||||
"requiredPoints": 5000,
|
"requiredPoints": 5000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
{
|
{
|
||||||
"title": "15% on food on weekends",
|
"title": "15% on food on weekends",
|
||||||
"value": "15% on food",
|
"value": "15% on food",
|
||||||
"explaination": "on weekends",
|
"explanation": "on weekends",
|
||||||
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
"description": "Go ahead – use your friendly discount to grab a bite during weekends.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/good-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/good-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 3,
|
"level": 3,
|
||||||
"name": "Close Friend",
|
"name": "Close Friend",
|
||||||
"requiredPoints": 10000,
|
"requiredPoints": 10000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -55,14 +55,14 @@
|
|||||||
{
|
{
|
||||||
"title": "Late checkout - 1 hour when available",
|
"title": "Late checkout - 1 hour when available",
|
||||||
"value": "Late checkout",
|
"value": "Late checkout",
|
||||||
"explaination": "- 1 hour when available",
|
"explanation": "- 1 hour when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "50 SEK voucher",
|
"title": "50 SEK voucher",
|
||||||
"value": "50 SEK voucher",
|
"value": "50 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/close-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/close-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 4,
|
"level": 4,
|
||||||
"name": "Dear Friend",
|
"name": "Dear Friend",
|
||||||
"requiredPoints": 25000,
|
"requiredPoints": 25000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -78,21 +78,21 @@
|
|||||||
{
|
{
|
||||||
"title": "25% earn rate",
|
"title": "25% earn rate",
|
||||||
"value": "25% earn rate",
|
"value": "25% earn rate",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Early check-in - 1 hour when available",
|
"title": "Early check-in - 1 hour when available",
|
||||||
"value": "Early check-in",
|
"value": "Early check-in",
|
||||||
"explaination": "- 1 hour when available",
|
"explanation": "- 1 hour when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "75 SEK voucher",
|
"title": "75 SEK voucher",
|
||||||
"value": "75 SEK voucher",
|
"value": "75 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -100,7 +100,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/dear-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/dear-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 5,
|
"level": 5,
|
||||||
"name": "Loyal Friend",
|
"name": "Loyal Friend",
|
||||||
"requiredPoints": 100000,
|
"requiredPoints": 100000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -108,21 +108,21 @@
|
|||||||
{
|
{
|
||||||
"title": "Free room upgrade when available",
|
"title": "Free room upgrade when available",
|
||||||
"value": "Free room upgrade",
|
"value": "Free room upgrade",
|
||||||
"explaination": "when available",
|
"explanation": "when available",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "100 SEK voucher",
|
"title": "100 SEK voucher",
|
||||||
"value": "100 SEK voucher",
|
"value": "100 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "2-for-1 breakfast",
|
"title": "2-for-1 breakfast",
|
||||||
"value": "2-for-1 breakfast",
|
"value": "2-for-1 breakfast",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -130,7 +130,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/loyal-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/loyal-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 6,
|
"level": 6,
|
||||||
"name": "True Friend",
|
"name": "True Friend",
|
||||||
"requiredPoints": 250000,
|
"requiredPoints": 250000,
|
||||||
"requiredNights": 0,
|
"requiredNights": 0,
|
||||||
@@ -138,28 +138,28 @@
|
|||||||
{
|
{
|
||||||
"title": "50% earn rate",
|
"title": "50% earn rate",
|
||||||
"value": "50% earn rate",
|
"value": "50% earn rate",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "150 SEK voucher",
|
"title": "150 SEK voucher",
|
||||||
"value": "150 SEK voucher",
|
"value": "150 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "48h room guarantee",
|
"title": "48h room guarantee",
|
||||||
"value": "48h room guarantee",
|
"value": "48h room guarantee",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Always free breakfast",
|
"title": "Always free breakfast",
|
||||||
"value": "Always free breakfast",
|
"value": "Always free breakfast",
|
||||||
"explaination": "Always free breakfast",
|
"explanation": "Always free breakfast",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
@@ -167,7 +167,7 @@
|
|||||||
"icon": "/_static/icons/loyaltylevels/true-friend.svg"
|
"icon": "/_static/icons/loyaltylevels/true-friend.svg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tier": 7,
|
"level": 7,
|
||||||
"name": "Best Friend",
|
"name": "Best Friend",
|
||||||
"requiredPoints": 400000,
|
"requiredPoints": 400000,
|
||||||
"requiredNights": 100,
|
"requiredNights": 100,
|
||||||
@@ -175,21 +175,21 @@
|
|||||||
{
|
{
|
||||||
"title": "200 SEK voucher",
|
"title": "200 SEK voucher",
|
||||||
"value": "200 SEK voucher",
|
"value": "200 SEK voucher",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
"description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Yearly exclusive gift",
|
"title": "Yearly exclusive gift",
|
||||||
"value": "Yearly exclusive gift",
|
"value": "Yearly exclusive gift",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kid's boost",
|
"title": "Kid's boost",
|
||||||
"value": "Kid's boost",
|
"value": "Kid's boost",
|
||||||
"explaination": "",
|
"explanation": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
"href": ""
|
"href": ""
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
import { membershipLevels } from "@/constants/membershipLevels"
|
||||||
|
|
||||||
|
import {
|
||||||
|
BestFriend,
|
||||||
|
CloseFriend,
|
||||||
|
DearFriend,
|
||||||
|
GoodFriend,
|
||||||
|
LoyalFriend,
|
||||||
|
NewFriend,
|
||||||
|
TrueFriend,
|
||||||
|
} from "@/components/Levels"
|
||||||
|
|
||||||
|
import styles from "./membershipLevel.module.css"
|
||||||
|
|
||||||
|
import type { MembershipLevelProps } from "@/types/components/myPages/membershipLevel"
|
||||||
|
|
||||||
|
export default function MembershipLevel({ level }: MembershipLevelProps) {
|
||||||
|
switch (level) {
|
||||||
|
case membershipLevels.L1:
|
||||||
|
return <NewFriend className={styles.level} color="pale" />
|
||||||
|
case membershipLevels.L2:
|
||||||
|
return <GoodFriend className={styles.level} color="pale" />
|
||||||
|
case membershipLevels.L3:
|
||||||
|
return <CloseFriend className={styles.level} color="pale" />
|
||||||
|
case membershipLevels.L4:
|
||||||
|
return <DearFriend className={styles.level} color="pale" />
|
||||||
|
case membershipLevels.L5:
|
||||||
|
return <LoyalFriend className={styles.level} color="pale" />
|
||||||
|
case membershipLevels.L6:
|
||||||
|
return <TrueFriend className={styles.level} color="pale" />
|
||||||
|
case membershipLevels.L7:
|
||||||
|
return <BestFriend className={styles.level} color="pale" />
|
||||||
|
default:
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
.level {
|
||||||
|
height: 105px;
|
||||||
|
width: 219px;
|
||||||
|
}
|
||||||
@@ -16,11 +16,6 @@
|
|||||||
transform: rotate(-13deg) translate(0px, -15px);
|
transform: rotate(-13deg) translate(0px, -15px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.level {
|
|
||||||
height: 105px;
|
|
||||||
width: 219px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.name {
|
.name {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
import { GoodFriend } from "@/components/Levels"
|
import { membershipLevels } from "@/constants/membershipLevels"
|
||||||
|
|
||||||
import BiroScript from "@/components/TempDesignSystem/Text/BiroScript"
|
import BiroScript from "@/components/TempDesignSystem/Text/BiroScript"
|
||||||
import Title from "@/components/TempDesignSystem/Text/Title"
|
import Title from "@/components/TempDesignSystem/Text/Title"
|
||||||
import { getIntl } from "@/i18n"
|
import { getIntl } from "@/i18n"
|
||||||
import { getMembership } from "@/utils/user"
|
import { getMembership } from "@/utils/user"
|
||||||
|
|
||||||
|
import MembershipLevel from "./MemberShipLevel"
|
||||||
|
|
||||||
import styles from "./friend.module.css"
|
import styles from "./friend.module.css"
|
||||||
|
|
||||||
import type { UserProps } from "@/types/components/myPages/user"
|
import type { UserProps } from "@/types/components/myPages/user"
|
||||||
@@ -11,13 +14,21 @@ import type { UserProps } from "@/types/components/myPages/user"
|
|||||||
export default async function Friend({ user }: UserProps) {
|
export default async function Friend({ user }: UserProps) {
|
||||||
const { formatMessage } = await getIntl()
|
const { formatMessage } = await getIntl()
|
||||||
const membership = getMembership(user.memberships)
|
const membership = getMembership(user.memberships)
|
||||||
|
if (!membership?.membershipLevel) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<section className={styles.friend}>
|
<section className={styles.friend}>
|
||||||
<header className={styles.header}>
|
<header className={styles.header}>
|
||||||
<BiroScript className={styles.levelLabel} color="pale">
|
<BiroScript className={styles.levelLabel} color="pale">
|
||||||
{formatMessage({ id: "Current level" })}:
|
{formatMessage({ id: "Current level" })}:
|
||||||
</BiroScript>
|
</BiroScript>
|
||||||
<GoodFriend className={styles.level} color="pale" />
|
{membership ? (
|
||||||
|
<MembershipLevel
|
||||||
|
level={membershipLevels[membership.membershipLevel]}
|
||||||
|
/>
|
||||||
|
) : null}
|
||||||
</header>
|
</header>
|
||||||
<div className={styles.membership}>
|
<div className={styles.membership}>
|
||||||
<Title className={styles.name} color="pale" level="h3">
|
<Title className={styles.name} color="pale" level="h3">
|
||||||
|
|||||||
@@ -2,18 +2,40 @@ import BiroScript from "@/components/TempDesignSystem/Text/BiroScript"
|
|||||||
import Body from "@/components/TempDesignSystem/Text/Body"
|
import Body from "@/components/TempDesignSystem/Text/Body"
|
||||||
import Title from "@/components/TempDesignSystem/Text/Title"
|
import Title from "@/components/TempDesignSystem/Text/Title"
|
||||||
import { getIntl } from "@/i18n"
|
import { getIntl } from "@/i18n"
|
||||||
|
import { getMembershipLevelObject } from "@/utils/membershipLevel"
|
||||||
|
import { getMembership } from "@/utils/user"
|
||||||
|
|
||||||
import styles from "./nextLevel.module.css"
|
import styles from "./nextLevel.module.css"
|
||||||
|
|
||||||
import type { UserProps } from "@/types/components/myPages/user"
|
import type { UserProps } from "@/types/components/myPages/user"
|
||||||
|
import type { LangParams } from "@/types/params"
|
||||||
|
|
||||||
export default async function NextLevel({}: UserProps) {
|
export default async function NextLevel({
|
||||||
|
user,
|
||||||
|
lang,
|
||||||
|
}: UserProps & LangParams) {
|
||||||
const { formatMessage } = await getIntl()
|
const { formatMessage } = await getIntl()
|
||||||
|
const membership = getMembership(user.memberships)
|
||||||
|
|
||||||
|
if (!membership?.membershipLevel) {
|
||||||
|
// TODO: handle this case?
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
const nextLevel = getMembershipLevelObject(
|
||||||
|
membership.membershipLevel,
|
||||||
|
lang,
|
||||||
|
"nextLevel"
|
||||||
|
)
|
||||||
|
if (!nextLevel) {
|
||||||
|
// TODO: already at top level, no next level exists
|
||||||
|
return null
|
||||||
|
}
|
||||||
return (
|
return (
|
||||||
<section>
|
<section>
|
||||||
<Body color="pale">{formatMessage({ id: "Next level" })}:</Body>
|
<Body color="pale">{formatMessage({ id: "Next level" })}:</Body>
|
||||||
<Title className={styles.nextLevel} color="pale" level="h3">
|
<Title className={styles.nextLevel} color="pale" level="h3">
|
||||||
N/A
|
{nextLevel?.name || "N/A"}
|
||||||
<BiroScript>{formatMessage({ id: "Coming up" })}!</BiroScript>
|
<BiroScript>{formatMessage({ id: "Coming up" })}!</BiroScript>
|
||||||
</Title>
|
</Title>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
@@ -14,15 +14,16 @@ export default async function Points({ user }: UserProps) {
|
|||||||
<section className={styles.points}>
|
<section className={styles.points}>
|
||||||
<article>
|
<article>
|
||||||
<Body color="pale">{formatMessage({ id: "Total Points" })}</Body>
|
<Body color="pale">{formatMessage({ id: "Total Points" })}</Body>
|
||||||
<Title color="pale" hideEmpty={false} level="h2">
|
<Title color="pale" level="h2">
|
||||||
{membership ? membership.currentPoints : "N/A"}
|
{membership ? membership.currentPoints : "N/A"}
|
||||||
</Title>
|
</Title>
|
||||||
</article>
|
</article>
|
||||||
<article>
|
<article>
|
||||||
<Body color="pale">
|
<Body color="pale">
|
||||||
{formatMessage({ id: "Points until next level" })}
|
{formatMessage({ id: "Points until next level" })}
|
||||||
|
{/* TODO */}
|
||||||
</Body>
|
</Body>
|
||||||
<Title color="pale" hideEmpty={false} level="h2">
|
<Title color="pale" level="h2">
|
||||||
{membership ? membership.currentPoints : "N/A"}
|
{membership ? membership.currentPoints : "N/A"}
|
||||||
</Title>
|
</Title>
|
||||||
</article>
|
</article>
|
||||||
|
|||||||
@@ -6,13 +6,14 @@ import Points from "./Points"
|
|||||||
import styles from "./stats.module.css"
|
import styles from "./stats.module.css"
|
||||||
|
|
||||||
import type { UserProps } from "@/types/components/myPages/user"
|
import type { UserProps } from "@/types/components/myPages/user"
|
||||||
|
import type { LangParams } from "@/types/params"
|
||||||
|
|
||||||
export default function Stats({ user }: UserProps) {
|
export default function Stats({ user, lang }: UserProps & LangParams) {
|
||||||
return (
|
return (
|
||||||
<section className={styles.stats}>
|
<section className={styles.stats}>
|
||||||
<Points user={user} />
|
<Points user={user} />
|
||||||
<Divider variant="default" />
|
<Divider variant="default" />
|
||||||
<NextLevel user={user} />
|
<NextLevel user={user} lang={lang} />
|
||||||
</section>
|
</section>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,12 +9,14 @@ import Stats from "./Stats"
|
|||||||
import styles from "./overview.module.css"
|
import styles from "./overview.module.css"
|
||||||
|
|
||||||
import type { AccountPageComponentProps } from "@/types/components/myPages/myPage/accountPage"
|
import type { AccountPageComponentProps } from "@/types/components/myPages/myPage/accountPage"
|
||||||
|
import type { LangParams } from "@/types/params"
|
||||||
|
|
||||||
export default async function Overview({
|
export default async function Overview({
|
||||||
link,
|
link,
|
||||||
subtitle,
|
subtitle,
|
||||||
title,
|
title,
|
||||||
}: AccountPageComponentProps) {
|
lang,
|
||||||
|
}: AccountPageComponentProps & LangParams) {
|
||||||
const user = await serverClient().user.get()
|
const user = await serverClient().user.get()
|
||||||
if (!user) {
|
if (!user) {
|
||||||
return null
|
return null
|
||||||
@@ -25,7 +27,7 @@ export default async function Overview({
|
|||||||
<section className={styles.overview}>
|
<section className={styles.overview}>
|
||||||
<Friend user={user} />
|
<Friend user={user} />
|
||||||
<Divider className={styles.divider} />
|
<Divider className={styles.divider} />
|
||||||
<Stats user={user} />
|
<Stats user={user} lang={lang} />
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ async function CurrentPointsBalance({
|
|||||||
title,
|
title,
|
||||||
subtitle,
|
subtitle,
|
||||||
link,
|
link,
|
||||||
lang,
|
|
||||||
}: AccountPageComponentProps) {
|
}: AccountPageComponentProps) {
|
||||||
const user = await serverClient().user.get()
|
const user = await serverClient().user.get()
|
||||||
const { formatMessage } = await getIntl()
|
const { formatMessage } = await getIntl()
|
||||||
@@ -23,11 +22,10 @@ async function CurrentPointsBalance({
|
|||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<Header title={title} link={link} subtitle={subtitle} />
|
<Header title={title} link={link} subtitle={subtitle} />
|
||||||
|
|
||||||
<div className={styles.card}>
|
<div className={styles.card}>
|
||||||
<h2>{`${formatMessage({ id: "Total Points" })}*`}</h2>
|
<h2>{`${formatMessage({ id: "Total Points" })}*`}</h2>
|
||||||
<p className={styles.points}>
|
<p className={styles.points}>
|
||||||
{`${formatMessage({ id: "Points" })}: ${membership?.currentPoints || "N/A"}`}
|
{`${formatMessage({ id: "Points" })}: ${membership ? membership.currentPoints : "N/A"}`}
|
||||||
</p>
|
</p>
|
||||||
<p className={styles.disclaimer}>
|
<p className={styles.disclaimer}>
|
||||||
{`*${formatMessage({ id: "Points may take up to 10 days to be displayed." })}`}
|
{`*${formatMessage({ id: "Points may take up to 10 days to be displayed." })}`}
|
||||||
|
|||||||
@@ -9,12 +9,11 @@ export default function Subtitle({
|
|||||||
asChild = false,
|
asChild = false,
|
||||||
className = "",
|
className = "",
|
||||||
color,
|
color,
|
||||||
hideEmpty = true,
|
|
||||||
textAlign,
|
textAlign,
|
||||||
textTransform,
|
textTransform,
|
||||||
...props
|
...props
|
||||||
}: SubtitleProps) {
|
}: SubtitleProps) {
|
||||||
if (hideEmpty && Children.count(props.children) === 0) {
|
if (Children.toArray(props.children).length === 0) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
const Comp = asChild ? Slot : "p"
|
const Comp = asChild ? Slot : "p"
|
||||||
|
|||||||
@@ -6,5 +6,4 @@ export interface SubtitleProps
|
|||||||
extends Omit<React.HTMLAttributes<HTMLHeadingElement>, "color">,
|
extends Omit<React.HTMLAttributes<HTMLHeadingElement>, "color">,
|
||||||
VariantProps<typeof subtitleVariants> {
|
VariantProps<typeof subtitleVariants> {
|
||||||
asChild?: boolean
|
asChild?: boolean
|
||||||
hideEmpty?: boolean
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,12 +9,11 @@ export default function Title({
|
|||||||
children,
|
children,
|
||||||
className = "",
|
className = "",
|
||||||
color,
|
color,
|
||||||
hideEmpty = true,
|
|
||||||
level = "h1",
|
level = "h1",
|
||||||
textAlign,
|
textAlign,
|
||||||
textTransform,
|
textTransform,
|
||||||
}: HeadingProps) {
|
}: HeadingProps) {
|
||||||
if (hideEmpty && Children.count(children) === 0) {
|
if (Children.toArray(children).length === 0) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
const Hx = level
|
const Hx = level
|
||||||
|
|||||||
@@ -8,6 +8,5 @@ export interface HeadingProps
|
|||||||
extends Omit<React.HTMLAttributes<HTMLHeadingElement>, "color">,
|
extends Omit<React.HTMLAttributes<HTMLHeadingElement>, "color">,
|
||||||
VariantProps<typeof headingVariants> {
|
VariantProps<typeof headingVariants> {
|
||||||
as?: HeadingLevel
|
as?: HeadingLevel
|
||||||
hideEmpty?: boolean
|
|
||||||
level?: HeadingLevel
|
level?: HeadingLevel
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,3 +7,13 @@ export enum membershipLevels {
|
|||||||
L6 = 6,
|
L6 = 6,
|
||||||
L7 = 7,
|
L7 = 7,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export enum MembershipLevelEnum {
|
||||||
|
L1 = "L1",
|
||||||
|
L2 = "L2",
|
||||||
|
L3 = "L3",
|
||||||
|
L4 = "L4",
|
||||||
|
L5 = "L5",
|
||||||
|
L6 = "L6",
|
||||||
|
L7 = "L7",
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import { z } from "zod"
|
import { z } from "zod"
|
||||||
|
|
||||||
import { membershipLevels } from "@/constants/membershipLevels"
|
import { MembershipLevelEnum } from "@/constants/membershipLevels"
|
||||||
|
|
||||||
import { countriesMap } from "@/components/TempDesignSystem/Form/Country/countries"
|
import { countriesMap } from "@/components/TempDesignSystem/Form/Country/countries"
|
||||||
|
|
||||||
export const getUserSchema = z.object({
|
export const getUserSchema = z.object({
|
||||||
address: z.object({
|
address: z.object({
|
||||||
city: z.string().optional(),
|
city: z.string().optional(),
|
||||||
country: z.nativeEnum(countriesMap).optional(),
|
countryCode: z.nativeEnum(countriesMap).optional(),
|
||||||
streetAddress: z.string().optional(),
|
streetAddress: z.string().optional(),
|
||||||
zipCode: z.string(),
|
zipCode: z.string(),
|
||||||
}),
|
}),
|
||||||
@@ -21,9 +21,7 @@ export const getUserSchema = z.object({
|
|||||||
currentPoints: z.number(),
|
currentPoints: z.number(),
|
||||||
expirationDate: z.string(),
|
expirationDate: z.string(),
|
||||||
membershipNumber: z.string(),
|
membershipNumber: z.string(),
|
||||||
membershipLevel: z
|
membershipLevel: z.nativeEnum(MembershipLevelEnum).optional(),
|
||||||
.enum(["L1", "L2", "L3", "L4", "L5", "L6", "L7"])
|
|
||||||
.optional(),
|
|
||||||
memberSince: z.string(),
|
memberSince: z.string(),
|
||||||
membershipType: z.string(),
|
membershipType: z.string(),
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ export type OverviewTableTitleProps = { texts: OverviewTableTitleTranslation[] }
|
|||||||
export type OverviewTableProps = { user: User | null }
|
export type OverviewTableProps = { user: User | null }
|
||||||
|
|
||||||
export type Level = {
|
export type Level = {
|
||||||
tier: membershipLevels
|
level: membershipLevels
|
||||||
name: string
|
name: string
|
||||||
requiredPoints: number
|
requiredPoints: number
|
||||||
requiredNights?: number
|
requiredNights?: number
|
||||||
|
|||||||
5
types/components/myPages/membershipLevel.ts
Normal file
5
types/components/myPages/membershipLevel.ts
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
import { membershipLevels } from "@/constants/membershipLevels"
|
||||||
|
|
||||||
|
export type MembershipLevelProps = {
|
||||||
|
level: membershipLevels
|
||||||
|
}
|
||||||
20
utils/membershipLevel.ts
Normal file
20
utils/membershipLevel.ts
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import { Lang } from "@/constants/languages"
|
||||||
|
import {
|
||||||
|
MembershipLevelEnum,
|
||||||
|
membershipLevels,
|
||||||
|
} from "@/constants/membershipLevels"
|
||||||
|
|
||||||
|
import levelsData from "@/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/data"
|
||||||
|
|
||||||
|
export function getMembershipLevelObject(
|
||||||
|
membershipLevel: MembershipLevelEnum,
|
||||||
|
lang: Lang,
|
||||||
|
level: "currentLevel" | "nextLevel" = "currentLevel"
|
||||||
|
) {
|
||||||
|
let levelNumber = membershipLevels[membershipLevel]
|
||||||
|
if (level === "nextLevel") {
|
||||||
|
levelNumber += 1
|
||||||
|
}
|
||||||
|
|
||||||
|
return levelsData[lang].levels.find((level) => level.level === levelNumber)
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@ import { User } from "@/types/user"
|
|||||||
|
|
||||||
export function getMembership(memberships: User["memberships"]) {
|
export function getMembership(memberships: User["memberships"]) {
|
||||||
return memberships?.find(
|
return memberships?.find(
|
||||||
(membership) => membership.membershipType.toLowerCase() === "guestpr"
|
(membership) =>
|
||||||
|
membership.membershipType.toLowerCase() === "guestpr" || "scandicfriend's"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user