@simonarcher/fika-types 2.0.0-rc.3 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -23,6 +23,13 @@ export interface CoffeeShopEvent extends NewCoffeeShopEvent {
23
23
  createdAt: Date;
24
24
  updatedAt: Date;
25
25
  eventType: CoffeeShopEventType;
26
+ /**
27
+ * Optional sticker awarded to attendees who check in. Set when the event
28
+ * is associated with a reward; null/undefined for events without a
29
+ * reward. Stored on the event row so reward issuance is deterministic
30
+ * across event states.
31
+ */
32
+ rewardStickerId?: string | null;
26
33
  }
27
34
  export interface EventAttendee {
28
35
  userId: string;
package/dist/shop.d.ts CHANGED
@@ -305,6 +305,17 @@ export interface ShopContactDetails {
305
305
  contactNumber: string;
306
306
  email: string;
307
307
  website: string;
308
+ /**
309
+ * Social media handles. Stored alongside other contact data so a shop has a
310
+ * single source of truth for "how to reach this place". Bare handles only —
311
+ * no `@` prefix, no URL — clients construct platform URLs at render time.
312
+ * Optional/nullable to keep records sparse for shops that don't publish a
313
+ * given platform.
314
+ */
315
+ instagram?: string | null;
316
+ facebook?: string | null;
317
+ tiktok?: string | null;
318
+ twitter?: string | null;
308
319
  address: {
309
320
  formattedAddress: string;
310
321
  shortFormattedAddress: string;
@@ -317,9 +328,9 @@ export interface ShopContactDetails {
317
328
  };
318
329
  updatedAt?: Date;
319
330
  }
320
- export type ShopFeatureKey = 'powerOutlets' | 'laptopFriendly' | 'outdoorSeating' | 'indoorSeating' | 'accessibility' | 'alcohol' | 'breakfast' | 'lunch' | 'vegetarian' | 'petFriendly' | 'restrooms' | 'parking' | 'wifi' | 'acceptsCash' | 'acceptsCreditCards' | 'acceptsNfc' | 'discountOnReusableCup' | 'glutenFree' | 'loyaltyCard' | 'takeaway' | 'delivery';
321
- export type ShopSpecialtyKey = 'pourOverSpecialty' | 'espressoExpert' | 'singleOriginFocus' | 'localRoaster' | 'brewingEducation' | 'cuppingEvents' | 'matchaSpecialty' | 'decafSpecialty' | 'inHouseRoastery' | 'relaxingVibes' | 'bustlingEnergy' | 'quietStudySpace' | 'uniqueExperience' | 'instagramWorthy' | 'cozyAmbiance' | 'freshPastries' | 'homemadeTreats' | 'artisanBread' | 'localBakery' | 'healthyOptions' | 'dessertDestination' | 'inHouseBakery' | 'signatureBakedGoods' | 'lgbtqFriendly' | 'womenOwned' | 'familyOwned' | 'communityHub' | 'sociallyConscious' | 'localArtSupport' | 'liveMusic' | 'localArt' | 'bookExchange' | 'boardGames' | 'culturalEvents' | 'workshopSpace' | 'laptopFriendlyPro' | 'meetingSpaceAvailable' | 'quietZones' | 'fastWifi' | 'longStayWelcome' | 'coworkingVibes';
322
- export type SpecialtyCategoryKey = 'Coffee Excellence' | 'Atmosphere' | 'Food & Treats' | 'Community & Values' | 'Entertainment' | 'Work & Study';
331
+ export type ShopFeatureKey = 'powerOutlets' | 'laptopFriendly' | 'outdoorSeating' | 'indoorSeating' | 'accessibility' | 'alcohol' | 'breakfast' | 'lunch' | 'vegetarian' | 'petFriendly' | 'restrooms' | 'parking' | 'wifi' | 'acceptsCash' | 'acceptsCreditCards' | 'acceptsNfc' | 'discountOnReusableCup' | 'glutenFree' | 'loyaltyCard' | 'takeaway' | 'delivery' | 'kidFriendly' | 'walkInOnly';
332
+ export type ShopSpecialtyKey = 'pourOverSpecialty' | 'espressoExpert' | 'singleOriginFocus' | 'localRoaster' | 'brewingEducation' | 'cuppingEvents' | 'matchaSpecialty' | 'decafSpecialty' | 'inHouseRoastery' | 'relaxingVibes' | 'bustlingEnergy' | 'quietStudySpace' | 'uniqueExperience' | 'instagramWorthy' | 'cozyAmbiance' | 'freshPastries' | 'homemadeTreats' | 'artisanBread' | 'localBakery' | 'healthyOptions' | 'dessertDestination' | 'inHouseBakery' | 'signatureBakedGoods' | 'lgbtqFriendly' | 'womenOwned' | 'familyOwned' | 'communityHub' | 'sociallyConscious' | 'localArtSupport' | 'liveMusic' | 'localArt' | 'bookExchange' | 'boardGames' | 'culturalEvents' | 'workshopSpace' | 'laptopFriendlyPro' | 'meetingSpaceAvailable' | 'quietZones' | 'fastWifi' | 'longStayWelcome' | 'coworkingVibes' | 'rotatingRoasters' | 'tastingNotesOnMenu' | 'naturalFermentedFocus' | 'cuppingAndEducation' | 'espressoBarStanding' | 'vinylRecords' | 'localBakeryPartner' | 'zeroWasteFocus' | 'laptopWelcome' | 'longStayOk';
333
+ export type SpecialtyCategoryKey = 'Coffee Excellence' | 'Atmosphere' | 'Food & Treats' | 'Community & Values' | 'Entertainment' | 'Work & Study' | 'Coffee' | 'Identity & Values' | 'Workspace';
323
334
  export interface ShopSpecialties {
324
335
  highlighted: ShopSpecialtyKey[];
325
336
  additional: ShopSpecialtyKey[];
package/dist/shop.js CHANGED
@@ -29,6 +29,9 @@ exports.featureGroupMap = {
29
29
  acceptsCash: 'Payment',
30
30
  acceptsCreditCards: 'Payment',
31
31
  acceptsNfc: 'Payment',
32
+ // v1.6.0 retained
33
+ kidFriendly: 'Space & Seating',
34
+ walkInOnly: 'Service',
32
35
  };
33
36
  /** Display labels for each feature key. */
34
37
  exports.featureLabelMap = {
@@ -58,6 +61,9 @@ exports.featureLabelMap = {
58
61
  acceptsCash: 'Cash Payments',
59
62
  acceptsCreditCards: 'Card Payments',
60
63
  acceptsNfc: 'Contactless / NFC',
64
+ // v1.6.0 retained
65
+ kidFriendly: 'Kid Friendly',
66
+ walkInOnly: 'Walk-In Only',
61
67
  };
62
68
  /** Maps each specialty key to its category (matches the groupings on `ShopSpecialtyKey`). */
63
69
  exports.specialtyCategoryMap = {
@@ -108,6 +114,17 @@ exports.specialtyCategoryMap = {
108
114
  fastWifi: 'Work & Study',
109
115
  longStayWelcome: 'Work & Study',
110
116
  coworkingVibes: 'Work & Study',
117
+ // v1.6.0 retained — mapped to closest current category
118
+ rotatingRoasters: 'Coffee Excellence',
119
+ tastingNotesOnMenu: 'Coffee Excellence',
120
+ naturalFermentedFocus: 'Coffee Excellence',
121
+ cuppingAndEducation: 'Coffee Excellence',
122
+ espressoBarStanding: 'Atmosphere',
123
+ vinylRecords: 'Atmosphere',
124
+ localBakeryPartner: 'Food & Treats',
125
+ zeroWasteFocus: 'Community & Values',
126
+ laptopWelcome: 'Work & Study',
127
+ longStayOk: 'Work & Study',
111
128
  };
112
129
  /** Display labels for each specialty key. */
113
130
  exports.specialtyLabelMap = {
@@ -158,4 +175,15 @@ exports.specialtyLabelMap = {
158
175
  fastWifi: 'Fast WiFi',
159
176
  longStayWelcome: 'Long Stays Welcome',
160
177
  coworkingVibes: 'Coworking Vibes',
178
+ // v1.6.0 retained
179
+ rotatingRoasters: 'Rotating / Guest Roasters',
180
+ tastingNotesOnMenu: 'Tasting Notes on Menu',
181
+ naturalFermentedFocus: 'Natural & Fermented Coffees',
182
+ cuppingAndEducation: 'Cuppings & Education',
183
+ espressoBarStanding: 'Espresso Bar / Standing Only',
184
+ vinylRecords: 'Vinyl Records',
185
+ localBakeryPartner: 'Local Bakery Partner',
186
+ zeroWasteFocus: 'Zero Waste Focus',
187
+ laptopWelcome: 'Laptops Welcome',
188
+ longStayOk: 'Long Stays OK',
161
189
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simonarcher/fika-types",
3
- "version": "2.0.0-rc.3",
3
+ "version": "2.0.0",
4
4
  "description": "Shared TypeScript types for Fika projects",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",