| 1 | // ─── Shared data for NORD feed, studios, and stories ───────────────────────── |
| 2 | |
| 3 | export interface Story { |
| 4 | id: number; |
| 5 | handle: string; |
| 6 | avatar: string; |
| 7 | seen: boolean; |
| 8 | } |
| 9 | |
| 10 | export interface Post { |
| 11 | id: number; |
| 12 | stylist: string; |
| 13 | handle: string; |
| 14 | location: string; |
| 15 | avatar: string; |
| 16 | image: string; |
| 17 | likes: number; |
| 18 | caption: string; |
| 19 | tags: string[]; |
| 20 | time: string; |
| 21 | style: string; |
| 22 | } |
| 23 | |
| 24 | export interface Studio { |
| 25 | id: number; |
| 26 | name: string; |
| 27 | location: string; |
| 28 | neighbourhood: string; |
| 29 | rating: number; |
| 30 | reviews: number; |
| 31 | price: string; |
| 32 | openNow: boolean; |
| 33 | hours: string; |
| 34 | phone: string; |
| 35 | services: string[]; |
| 36 | image: string; |
| 37 | } |
| 38 | |
| 39 | export const STORIES: Story[] = [ |
| 40 | { id: 1, handle: "anders", avatar: "A", seen: false }, |
| 41 | { id: 2, handle: "maja", avatar: "M", seen: false }, |
| 42 | { id: 3, handle: "erik", avatar: "E", seen: true }, |
| 43 | { id: 4, handle: "linn", avatar: "L", seen: false }, |
| 44 | { id: 5, handle: "bjorn", avatar: "B", seen: true }, |
| 45 | { id: 6, handle: "saga", avatar: "S", seen: false }, |
| 46 | { id: 7, handle: "oskar", avatar: "O", seen: true }, |
| 47 | ]; |
| 48 | |
| 49 | export const POSTS: Post[] = [ |
| 50 | { |
| 51 | id: 1, |
| 52 | stylist: "Anders Lindqvist", |
| 53 | handle: "@anderscuts", |
| 54 | location: "Östermalm, Stockholm", |
| 55 | avatar: "A", |
| 56 | image: "https://images.unsplash.com/photo-1522337360788-8b13dee7a37e?q=80&w=800&auto=format&fit=crop", |
| 57 | likes: 1204, |
| 58 | caption: "Golden hour, golden strands. Precision silk blowout on Maja — three hours of work that disappears into the light.", |
| 59 | tags: ["#NORDstyle", "#BlondeScandi", "#SilkBlowout"], |
| 60 | time: "34m", |
| 61 | style: "Silk Blowout", |
| 62 | }, |
| 63 | { |
| 64 | id: 2, |
| 65 | stylist: "Erik Bergström", |
| 66 | handle: "@erikb.studio", |
| 67 | location: "Södermalm, Stockholm", |
| 68 | avatar: "E", |
| 69 | image: "https://images.unsplash.com/photo-1580618672591-eb180b1a973f?q=80&w=800&auto=format&fit=crop", |
| 70 | likes: 847, |
| 71 | caption: "The Sharp Edge. Every millimetre deliberate. This is what precision fade looks like when you stop rushing.", |
| 72 | tags: ["#NORDmen", "#PrecisionFade", "#ScandiFade"], |
| 73 | time: "2h", |
| 74 | style: "Precision Fade", |
| 75 | }, |
| 76 | { |
| 77 | id: 3, |
| 78 | stylist: "Maja Söderström", |
| 79 | handle: "@maja.nord", |
| 80 | location: "Vasastan, Stockholm", |
| 81 | avatar: "M", |
| 82 | image: "https://images.unsplash.com/photo-1559599101-f09722fb4948?q=80&w=800&auto=format&fit=crop", |
| 83 | likes: 2341, |
| 84 | caption: "Ash and ice. When the colour does the talking, the cut just has to be perfect. Nothing more. Nothing less.", |
| 85 | tags: ["#AshBlonde", "#IceHair", "#NORDcolour"], |
| 86 | time: "5h", |
| 87 | style: "Ash Blonde", |
| 88 | }, |
| 89 | { |
| 90 | id: 4, |
| 91 | stylist: "Johan Åkerlund", |
| 92 | handle: "@johancuts", |
| 93 | location: "Kungsholmen, Stockholm", |
| 94 | avatar: "J", |
| 95 | image: "https://images.unsplash.com/photo-1503951914875-452162b0f3f1?q=80&w=800&auto=format&fit=crop", |
| 96 | likes: 619, |
| 97 | caption: "Texture over length. A modern men's cut built around movement — not product. The hair should do the work.", |
| 98 | tags: ["#TextureCut", "#NORDmen", "#ModernBarber"], |
| 99 | time: "8h", |
| 100 | style: "Texture Cut", |
| 101 | }, |
| 102 | { |
| 103 | id: 5, |
| 104 | stylist: "Linn Ekström", |
| 105 | handle: "@linnekstrom", |
| 106 | location: "Lidingö, Stockholm", |
| 107 | avatar: "L", |
| 108 | image: "https://images.unsplash.com/photo-1534528741775-53994a69daeb?q=80&w=800&auto=format&fit=crop", |
| 109 | likes: 3108, |
| 110 | caption: "Nordic natural. No filter needed when the light in Stockholm is this good and the hair is this healthy.", |
| 111 | tags: ["#NordicNatural", "#HealthyHair", "#NORDglow"], |
| 112 | time: "12h", |
| 113 | style: "Nordic Natural", |
| 114 | }, |
| 115 | { |
| 116 | id: 6, |
| 117 | stylist: "Björn Hallgren", |
| 118 | handle: "@bjornhall", |
| 119 | location: "Stureplan, Stockholm", |
| 120 | avatar: "B", |
| 121 | image: "https://images.unsplash.com/photo-1621605815971-fbc98d665033?q=80&w=800&auto=format&fit=crop", |
| 122 | likes: 988, |
| 123 | caption: "The Obsidian Line. Clean architecture for the modern Stockholmer. Zero tolerance for the almost-right.", |
| 124 | tags: ["#ObsidianLine", "#CleanCut", "#NORDmen"], |
| 125 | time: "1d", |
| 126 | style: "Obsidian Line", |
| 127 | }, |
| 128 | { |
| 129 | id: 7, |
| 130 | stylist: "Saga Lindgren", |
| 131 | handle: "@saga.cuts", |
| 132 | location: "Djurgården, Stockholm", |
| 133 | avatar: "S", |
| 134 | image: "https://images.unsplash.com/photo-1517841905240-472988babdf9?q=80&w=800&auto=format&fit=crop", |
| 135 | likes: 4472, |
| 136 | caption: "Effortless. That is the hardest thing to achieve. Six years of craft distilled into one afternoon appointment.", |
| 137 | tags: ["#Effortless", "#NORDwoman", "#ScandinavianBeauty"], |
| 138 | time: "1d", |
| 139 | style: "Effortless", |
| 140 | }, |
| 141 | ]; |
| 142 | |
| 143 | export const STUDIOS: Studio[] = [ |
| 144 | { |
| 145 | id: 1, |
| 146 | name: "NORD", |
| 147 | location: "Hågerstensvägen 15, Stockholm", |
| 148 | neighbourhood: "Hägersten", |
| 149 | rating: 4.8, |
| 150 | reviews: 124, |
| 151 | price: "$$", |
| 152 | openNow: true, |
| 153 | hours: "09:00 – 19:00", |
| 154 | phone: "+46 72-853 82 88", |
| 155 | services: ["Precision Cut", "Fade", "Beard Trim"], |
| 156 | image: "https://images.unsplash.com/photo-1521590832167-7bcbfaa6381f?q=80&w=800&auto=format&fit=crop", |
| 157 | }, |
| 158 | { |
| 159 | id: 2, |
| 160 | name: "Barber Nord", |
| 161 | location: "Hägerstens Torg 8, Stockholm", |
| 162 | neighbourhood: "Södermalm", |
| 163 | rating: 4.6, |
| 164 | reviews: 89, |
| 165 | price: "$$", |
| 166 | openNow: true, |
| 167 | hours: "10:00 – 18:00", |
| 168 | phone: "+46 8 234 5678", |
| 169 | services: ["Barbershop", "Beard Trimming"], |
| 170 | image: "https://images.unsplash.com/photo-1585747860715-2ba37e788b70?q=80&w=800&auto=format&fit=crop", |
| 171 | }, |
| 172 | { |
| 173 | id: 3, |
| 174 | name: "Classic Cut Stockholm", |
| 175 | location: "Liljeholmsvägen 22, Stockholm", |
| 176 | neighbourhood: "Liljeholmen", |
| 177 | rating: 4.7, |
| 178 | reviews: 156, |
| 179 | price: "$$$", |
| 180 | openNow: true, |
| 181 | hours: "09:00 – 19:00", |
| 182 | phone: "+46 8 345 6789", |
| 183 | services: ["Hair Salon", "Grooming", "Styling"], |
| 184 | image: "https://images.unsplash.com/photo-1560066984-138dadb4c035?q=80&w=800&auto=format&fit=crop", |
| 185 | }, |
| 186 | { |
| 187 | id: 4, |
| 188 | name: "Style Master", |
| 189 | location: "Granbergsvägen 33, Stockholm", |
| 190 | neighbourhood: "Kungsholmen", |
| 191 | rating: 4.9, |
| 192 | reviews: 203, |
| 193 | price: "$$$", |
| 194 | openNow: false, |
| 195 | hours: "Opens 10:00", |
| 196 | phone: "+46 8 567 8901", |
| 197 | services: ["Hair Salon", "Colour", "Styling"], |
| 198 | image: "https://images.unsplash.com/photo-1562322140-8baeececf3df?q=80&w=800&auto=format&fit=crop", |
| 199 | }, |
| 200 | { |
| 201 | id: 5, |
| 202 | name: "The Classic Barber", |
| 203 | location: "Telefonvägen 12, Stockholm", |
| 204 | neighbourhood: "Vasastan", |
| 205 | rating: 4.8, |
| 206 | reviews: 145, |
| 207 | price: "$$", |
| 208 | openNow: true, |
| 209 | hours: "09:00 – 18:00", |
| 210 | phone: "+46 8 789 0123", |
| 211 | services: ["Traditional Shave", "Barbershop"], |
| 212 | image: "https://images.unsplash.com/photo-1512690459411-b9245aed614b?q=80&w=800&auto=format&fit=crop", |
| 213 | }, |
| 214 | ]; |