@shaykec/app-agent 1.0.2 → 1.0.4

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.
Files changed (77) hide show
  1. package/dist/engines/claude-engine.d.ts.map +1 -1
  2. package/dist/engines/claude-engine.js +1 -5
  3. package/dist/engines/claude-engine.js.map +1 -1
  4. package/dist/workspace.js +30 -4
  5. package/dist/workspace.js.map +1 -1
  6. package/package.json +1 -1
  7. package/templates/android/BookTemplate/app/src/main/kotlin/com/appship/book/AppConfig.kt +9 -0
  8. package/templates/android/BookTemplate/app/src/main/kotlin/com/appship/book/data/DataSourceResolver.kt +23 -0
  9. package/templates/android/BookTemplate/app/src/main/kotlin/com/appship/book/features/booking/BookingScreen.kt +1 -1
  10. package/templates/android/BookTemplate/app/src/main/kotlin/com/appship/book/features/discovery/ProviderDetailScreen.kt +1 -1
  11. package/templates/android/BookTemplate/app/src/main/kotlin/com/appship/book/features/discovery/SearchScreen.kt +1 -1
  12. package/templates/android/BookTemplate/app/src/main/kotlin/com/appship/book/mock/MockDataProvider.kt +12 -11
  13. package/templates/android/MapTemplate/app/src/main/kotlin/com/appship/map/AppConfig.kt +9 -0
  14. package/templates/android/MapTemplate/app/src/main/kotlin/com/appship/map/data/DataRepository.kt +33 -0
  15. package/templates/android/MapTemplate/app/src/main/kotlin/com/appship/map/data/DataSourceResolver.kt +23 -0
  16. package/templates/android/ShopTemplate/app/src/main/kotlin/com/appship/shop/AppConfig.kt +9 -0
  17. package/templates/android/ShopTemplate/app/src/main/kotlin/com/appship/shop/data/DataRepository.kt +62 -0
  18. package/templates/android/ShopTemplate/app/src/main/kotlin/com/appship/shop/data/DataSourceResolver.kt +23 -0
  19. package/templates/android/ShopTemplate/app/src/main/kotlin/com/appship/shop/mock/MockDataProvider.kt +28 -28
  20. package/templates/android/Skeleton/app/src/main/kotlin/com/appship/skeleton/AppConfig.kt +9 -0
  21. package/templates/android/Skeleton/app/src/main/kotlin/com/appship/skeleton/data/DataRepository.kt +30 -0
  22. package/templates/android/Skeleton/app/src/main/kotlin/com/appship/skeleton/data/DataSourceResolver.kt +23 -0
  23. package/templates/android/Skeleton/app/src/main/kotlin/com/appship/skeleton/features/create/CreateScreen.kt +3 -2
  24. package/templates/android/Skeleton/app/src/main/kotlin/com/appship/skeleton/features/detail/DetailScreen.kt +4 -3
  25. package/templates/android/Skeleton/app/src/main/kotlin/com/appship/skeleton/features/explore/ExploreScreen.kt +7 -6
  26. package/templates/android/Skeleton/app/src/main/kotlin/com/appship/skeleton/features/favorites/FavoritesScreen.kt +4 -3
  27. package/templates/android/Skeleton/app/src/main/kotlin/com/appship/skeleton/features/home/HomeScreen.kt +5 -4
  28. package/templates/android/Skeleton/app/src/main/kotlin/com/appship/skeleton/mock/MockDataProvider.kt +12 -11
  29. package/templates/android/SocialTemplate/app/src/main/kotlin/com/appship/social/AppConfig.kt +9 -0
  30. package/templates/android/SocialTemplate/app/src/main/kotlin/com/appship/social/data/DataRepository.kt +38 -0
  31. package/templates/android/SocialTemplate/app/src/main/kotlin/com/appship/social/data/DataSourceResolver.kt +23 -0
  32. package/templates/android/SocialTemplate/app/src/main/kotlin/com/appship/social/features/feed/FeedScreen.kt +2 -2
  33. package/templates/android/SocialTemplate/app/src/main/kotlin/com/appship/social/features/profile/ProfileScreen.kt +1 -1
  34. package/templates/android/SocialTemplate/app/src/main/kotlin/com/appship/social/features/search/SearchScreen.kt +1 -1
  35. package/templates/android/SocialTemplate/app/src/main/kotlin/com/appship/social/mock/MockDataProvider.kt +7 -6
  36. package/templates/ios/BookTemplate/BookTemplate/App/AppConfig.swift +12 -2
  37. package/templates/ios/BookTemplate/BookTemplate/Data/DataRepository.swift +33 -0
  38. package/templates/ios/BookTemplate/BookTemplate/Data/DataSourceResolver.swift +20 -0
  39. package/templates/ios/BookTemplate/BookTemplate/Features/Booking/BookingView.swift +1 -1
  40. package/templates/ios/BookTemplate/BookTemplate/Features/Discovery/DiscoveryView.swift +3 -3
  41. package/templates/ios/BookTemplate/BookTemplate/Features/Discovery/MapExploreView.swift +1 -1
  42. package/templates/ios/BookTemplate/BookTemplate/Features/Discovery/ProviderDetailView.swift +1 -1
  43. package/templates/ios/BookTemplate/BookTemplate/Features/Discovery/SearchView.swift +2 -2
  44. package/templates/ios/BookTemplate/BookTemplate/MockData/MockDataProvider.swift +18 -1
  45. package/templates/ios/MapTemplate/MapTemplate/App/AppConfig.swift +11 -9
  46. package/templates/ios/MapTemplate/MapTemplate/Data/DataSourceResolver.swift +20 -0
  47. package/templates/ios/MapTemplate/MapTemplate/Features/Favorites/FavoritesView.swift +1 -1
  48. package/templates/ios/MapTemplate/MapTemplate/Features/PlaceDetail/PlaceDetailView.swift +2 -2
  49. package/templates/ios/MapTemplate/MapTemplate/Features/Profile/ProfileView.swift +1 -1
  50. package/templates/ios/MapTemplate/MapTemplate/Features/Route/RouteView.swift +1 -1
  51. package/templates/ios/MapTemplate/MapTemplate/Features/Search/SearchView.swift +1 -1
  52. package/templates/ios/ShopTemplate/ShopTemplate/App/AppConfig.swift +9 -0
  53. package/templates/ios/ShopTemplate/ShopTemplate/Data/DataSourceResolver.swift +20 -0
  54. package/templates/ios/ShopTemplate/ShopTemplate/Features/Home/HomeView.swift +9 -7
  55. package/templates/ios/ShopTemplate/ShopTemplate/Features/Orders/OrdersView.swift +7 -3
  56. package/templates/ios/ShopTemplate/ShopTemplate/Features/Products/ProductDetailView.swift +4 -2
  57. package/templates/ios/ShopTemplate/ShopTemplate/Features/Products/ProductListView.swift +6 -3
  58. package/templates/ios/ShopTemplate/ShopTemplate/MockData/MockDataProvider.swift +1 -1
  59. package/templates/ios/Skeleton/Skeleton/App/AppConfig.swift +9 -0
  60. package/templates/ios/Skeleton/Skeleton/Data/DataRepository.swift +30 -0
  61. package/templates/ios/Skeleton/Skeleton/Data/DataSourceResolver.swift +20 -0
  62. package/templates/ios/Skeleton/Skeleton/Features/Explore/ExploreViewModel.swift +7 -6
  63. package/templates/ios/Skeleton/Skeleton/Features/Home/HomeViewModel.swift +8 -7
  64. package/templates/ios/Skeleton/Skeleton/MockData/MockDataProvider.swift +1 -1
  65. package/templates/ios/SocialTemplate/SocialTemplate/App/AppConfig.swift +4 -3
  66. package/templates/ios/SocialTemplate/SocialTemplate/Data/DataRepository.swift +37 -0
  67. package/templates/ios/SocialTemplate/SocialTemplate/Data/DataSourceResolver.swift +20 -0
  68. package/templates/ios/SocialTemplate/SocialTemplate/Data/SyncManager.swift +1 -1
  69. package/templates/ios/SocialTemplate/SocialTemplate/Features/CreatePost/CreatePostView.swift +2 -2
  70. package/templates/ios/SocialTemplate/SocialTemplate/Features/Feed/CommentsView.swift +2 -2
  71. package/templates/ios/SocialTemplate/SocialTemplate/Features/Feed/FeedView.swift +1 -1
  72. package/templates/ios/SocialTemplate/SocialTemplate/Features/Messages/MessagesView.swift +4 -4
  73. package/templates/ios/SocialTemplate/SocialTemplate/Features/Notifications/NotificationsView.swift +1 -1
  74. package/templates/ios/SocialTemplate/SocialTemplate/Features/Profile/ProfileView.swift +1 -1
  75. package/templates/ios/SocialTemplate/SocialTemplate/Features/Search/SearchView.swift +5 -4
  76. package/templates/ios/SocialTemplate/SocialTemplate/MockData/MockDataProvider.swift +1 -1
  77. package/templates/ios/SocialTemplate/SocialTemplate/Models/Models.swift +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"claude-engine.d.ts","sourceRoot":"","sources":["../../src/engines/claude-engine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,WAAW,EAEhB,KAAK,eAAe,EASrB,MAAM,YAAY,CAAC;AAwUpB,qBAAa,YAAa,YAAW,WAAW;IAC9C,QAAQ,CAAC,IAAI,iBAAiB;IAExB,iBAAiB,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAY7D,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAgHzF;;OAEG;YACW,eAAe;YAWf,OAAO;CA0LtB"}
1
+ {"version":3,"file":"claude-engine.d.ts","sourceRoot":"","sources":["../../src/engines/claude-engine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,WAAW,EAEhB,KAAK,eAAe,EASrB,MAAM,YAAY,CAAC;AAwUpB,qBAAa,YAAa,YAAW,WAAW;IAC9C,QAAQ,CAAC,IAAI,iBAAiB;IAExB,iBAAiB,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAY7D,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAgHzF;;OAEG;YACW,eAAe;YAWf,OAAO;CAuLtB"}
@@ -408,14 +408,10 @@ export class ClaudeEngine {
408
408
  }
409
409
  args.push(prompt);
410
410
  // MCP servers are auto-detected from .mcp.json at the project root.
411
- // NOTE: --mcp-config flag is buggy in Claude Code v2.1.19 (causes hangs).
412
- // Use `claude mcp add-json --scope project` to register MCP servers instead.
411
+ // In npx mode, the workspace scaffolder generates this file automatically.
413
412
  if (existsSync(MCP_CONFIG_PATH)) {
414
413
  p.log.info(`MCP config found: ${MCP_CONFIG_PATH} (model: ${modelWithContext})`);
415
414
  }
416
- else {
417
- p.log.warn(`No MCP config at ${MCP_CONFIG_PATH} — run: claude mcp add-json --scope project ai-tester '{"command":"node","args":["<path-to-ai-tester>/dist/mcp/index.js"]}'`);
418
- }
419
415
  let durationMs = 0;
420
416
  let lastEventTime = Date.now();
421
417
  let filesWritten = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"claude-engine.js","sourceRoot":"","sources":["../../src/engines/claude-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-engine.js","sourceRoot":"","sources":["../../src/engines/claude-engine.ts"],"names":[],"mappings":"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"}
package/dist/workspace.js CHANGED
@@ -227,8 +227,10 @@ async function generateMcpConfig() {
227
227
  *
228
228
  * Resolution order:
229
229
  * 1. AI_TESTER_PATH environment variable (directory or direct path)
230
- * 2. Global npm modules
231
- * 3. Local node_modules in the npm package
230
+ * 2. Node.js require.resolve (finds it in any node_modules ancestor)
231
+ * 3. Global npm modules
232
+ * 4. Local node_modules in the npm package
233
+ * 5. Hoisted sibling (npx installs optional deps as siblings, not nested)
232
234
  */
233
235
  function resolveAiTesterPath() {
234
236
  const mcpEntryPoint = path.join("dist", "mcp", "index.js");
@@ -244,7 +246,16 @@ function resolveAiTesterPath() {
244
246
  if (fs.existsSync(candidate))
245
247
  return candidate;
246
248
  }
247
- // 2. Global npm modules
249
+ // 2. Try require.resolve — works regardless of hoisting or nesting
250
+ try {
251
+ const resolved = require.resolve("@shaykec/ai-tester/dist/mcp/index.js");
252
+ if (resolved && fs.existsSync(resolved))
253
+ return resolved;
254
+ }
255
+ catch {
256
+ // Not resolvable from this context
257
+ }
258
+ // 3. Global npm modules
248
259
  try {
249
260
  const globalRoot = execSync("npm root -g", {
250
261
  encoding: "utf8",
@@ -258,10 +269,25 @@ function resolveAiTesterPath() {
258
269
  catch {
259
270
  // npm not available or timed out
260
271
  }
261
- // 3. Local node_modules (in the npm package itself — ai-tester is an optionalDep)
272
+ // 4. Local node_modules (in the npm package itself — ai-tester is an optionalDep)
262
273
  const localPath = path.join(PACKAGE_ROOT, "node_modules", "@shaykec", "ai-tester", mcpEntryPoint);
263
274
  if (fs.existsSync(localPath))
264
275
  return localPath;
276
+ // 5. Hoisted sibling (npx hoists scoped deps next to the package)
277
+ const hoistedPath = path.join(PACKAGE_ROOT, "..", "ai-tester", mcpEntryPoint);
278
+ if (fs.existsSync(hoistedPath))
279
+ return hoistedPath;
280
+ // 6. Walk up from PACKAGE_ROOT to find any ancestor node_modules
281
+ let current = path.dirname(PACKAGE_ROOT);
282
+ for (let i = 0; i < 5; i++) {
283
+ const candidate = path.join(current, "node_modules", "@shaykec", "ai-tester", mcpEntryPoint);
284
+ if (fs.existsSync(candidate))
285
+ return candidate;
286
+ const parent = path.dirname(current);
287
+ if (parent === current)
288
+ break;
289
+ current = parent;
290
+ }
265
291
  return null;
266
292
  }
267
293
  //# sourceMappingURL=workspace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shaykec/app-agent",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "AI-powered mobile app generator using Cursor CLI and templates",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -45,6 +45,15 @@ object AppConfig {
45
45
  const val CANCELLATION_POLICY_URL = "https://example.com/cancellation"
46
46
  }
47
47
 
48
+ // CUSTOMIZE:DATASOURCE - Data source configuration
49
+ object DataSource {
50
+ enum class SourceType {
51
+ LOCAL_STORAGE, // Room — real local database (DEFAULT)
52
+ MOCK // In-memory seed data — for development/testing only
53
+ }
54
+ val active: SourceType = SourceType.MOCK
55
+ }
56
+
48
57
  // CUSTOMIZE:CATEGORIES
49
58
  data class Category(
50
59
  val id: String,
@@ -0,0 +1,23 @@
1
+ package com.appship.book.data
2
+
3
+ import com.appship.book.AppConfig
4
+ import com.appship.book.mock.MockDataProvider
5
+
6
+ /**
7
+ * Resolves the active [DataRepository] implementation based on [AppConfig.DataSource.active].
8
+ * Screens use this to obtain the correct data source without knowing the concrete type.
9
+ *
10
+ * Usage:
11
+ * val repository = DataSourceResolver.repository
12
+ * val providers by repository.providers.collectAsState()
13
+ */
14
+ object DataSourceResolver {
15
+ val repository: DataRepository
16
+ get() = when (AppConfig.DataSource.active) {
17
+ AppConfig.DataSource.SourceType.LOCAL_STORAGE -> {
18
+ // TODO: Return LocalStorageProvider once implemented
19
+ MockDataProvider
20
+ }
21
+ AppConfig.DataSource.SourceType.MOCK -> MockDataProvider
22
+ }
23
+ }
@@ -22,11 +22,11 @@ import androidx.compose.ui.draw.clip
22
22
  import androidx.compose.ui.platform.testTag
23
23
  import androidx.compose.ui.text.font.FontWeight
24
24
  import androidx.compose.ui.unit.dp
25
+ import com.appship.book.data.DataSourceResolver
25
26
  import com.appship.book.data.Provider
26
27
  import com.appship.book.data.Service
27
28
  import com.appship.book.data.TimeSlot
28
29
  import com.appship.book.data.formatCurrency
29
- import com.appship.book.mock.MockDataProvider
30
30
  import java.time.LocalDate
31
31
  import java.time.format.DateTimeFormatter
32
32
 
@@ -17,10 +17,10 @@ import androidx.compose.ui.platform.testTag
17
17
  import androidx.compose.ui.text.font.FontWeight
18
18
  import androidx.compose.ui.unit.dp
19
19
  import coil.compose.AsyncImage
20
+ import com.appship.book.data.DataSourceResolver
20
21
  import com.appship.book.data.Provider
21
22
  import com.appship.book.data.Review
22
23
  import com.appship.book.data.Service
23
- import com.appship.book.mock.MockDataProvider
24
24
 
25
25
  @OptIn(ExperimentalMaterial3Api::class)
26
26
  @Composable
@@ -18,8 +18,8 @@ import androidx.compose.ui.platform.testTag
18
18
  import androidx.compose.ui.text.font.FontWeight
19
19
  import androidx.compose.ui.unit.dp
20
20
  import com.appship.book.AppConfig
21
+ import com.appship.book.data.DataSourceResolver
21
22
  import com.appship.book.data.Provider
22
- import com.appship.book.mock.MockDataProvider
23
23
 
24
24
  @OptIn(ExperimentalMaterial3Api::class)
25
25
  @Composable
@@ -1,13 +1,14 @@
1
1
  package com.appship.book.mock
2
2
 
3
3
  import com.appship.book.data.*
4
+ import com.appship.book.data.DataRepository
4
5
  import kotlinx.coroutines.flow.MutableStateFlow
5
6
  import kotlinx.coroutines.flow.StateFlow
6
7
  import kotlinx.coroutines.flow.asStateFlow
7
8
  import java.time.LocalDate
8
9
  import java.time.LocalDateTime
9
10
 
10
- object MockDataProvider {
11
+ object MockDataProvider : DataRepository {
11
12
 
12
13
  private val defaultProviders = listOf(
13
14
  Provider(
@@ -162,7 +163,7 @@ object MockDataProvider {
162
163
  )
163
164
 
164
165
  private val _providers = MutableStateFlow(defaultProviders)
165
- val providers: StateFlow<List<Provider>> = _providers.asStateFlow()
166
+ override val providers: StateFlow<List<Provider>> = _providers.asStateFlow()
166
167
 
167
168
  // Legacy accessor for backward compatibility
168
169
  val providersList: List<Provider> get() = _providers.value
@@ -223,7 +224,7 @@ object MockDataProvider {
223
224
  val upcomingBookingsList: List<Booking> get() = _upcomingBookings.value
224
225
  val pastBookingsList: List<Booking> get() = _pastBookings.value
225
226
 
226
- fun getTimeSlots(date: LocalDate): List<TimeSlot> {
227
+ override fun getTimeSlots(date: LocalDate): List<TimeSlot> {
227
228
  val times = listOf(
228
229
  "9:00 AM", "9:30 AM", "10:00 AM", "10:30 AM", "11:00 AM", "11:30 AM",
229
230
  "12:00 PM", "12:30 PM", "1:00 PM", "1:30 PM", "2:00 PM", "2:30 PM",
@@ -234,7 +235,7 @@ object MockDataProvider {
234
235
  }
235
236
  }
236
237
 
237
- fun getReviews(providerId: String): List<Review> {
238
+ override fun getReviews(providerId: String): List<Review> {
238
239
  return (1..10).map { i ->
239
240
  Review(
240
241
  id = "r$providerId-$i",
@@ -250,7 +251,7 @@ object MockDataProvider {
250
251
  }
251
252
  }
252
253
 
253
- fun searchProviders(query: String): List<Provider> {
254
+ override fun searchProviders(query: String): List<Provider> {
254
255
  if (query.isBlank()) return _providers.value
255
256
  val q = query.lowercase()
256
257
  return _providers.value.filter {
@@ -261,7 +262,7 @@ object MockDataProvider {
261
262
  }
262
263
 
263
264
  // CRUD Operations for Bookings
264
- fun createBooking(booking: Booking) {
265
+ override fun createBooking(booking: Booking) {
265
266
  when (booking.status) {
266
267
  BookingStatus.PENDING, BookingStatus.CONFIRMED -> {
267
268
  _upcomingBookings.value = _upcomingBookings.value + booking
@@ -273,7 +274,7 @@ object MockDataProvider {
273
274
  SyncManager.incrementPending()
274
275
  }
275
276
 
276
- fun cancelBooking(bookingId: String) {
277
+ override fun cancelBooking(bookingId: String) {
277
278
  val booking = _upcomingBookings.value.find { it.id == bookingId }
278
279
  if (booking != null) {
279
280
  _upcomingBookings.value = _upcomingBookings.value.filter { it.id != bookingId }
@@ -285,7 +286,7 @@ object MockDataProvider {
285
286
  }
286
287
  }
287
288
 
288
- fun completeBooking(bookingId: String) {
289
+ override fun completeBooking(bookingId: String) {
289
290
  val booking = _upcomingBookings.value.find { it.id == bookingId }
290
291
  if (booking != null) {
291
292
  _upcomingBookings.value = _upcomingBookings.value.filter { it.id != bookingId }
@@ -298,19 +299,19 @@ object MockDataProvider {
298
299
  }
299
300
 
300
301
  // CRUD Operations for Reviews
301
- fun addReview(providerId: String, review: Review) {
302
+ override fun addReview(providerId: String, review: Review) {
302
303
  // Reviews are generated dynamically, but we can track them for sync
303
304
  SyncManager.incrementPending()
304
305
  }
305
306
 
306
307
  // CRUD Operations for Providers
307
- fun toggleFavoriteProvider(providerId: String) {
308
+ override fun toggleFavoriteProvider(providerId: String) {
308
309
  // Note: Provider model doesn't have isFavorite field, but we can add it if needed
309
310
  // For now, this is a placeholder for sync tracking
310
311
  SyncManager.incrementPending()
311
312
  }
312
313
 
313
- fun reset() {
314
+ override fun reset() {
314
315
  _providers.value = defaultProviders
315
316
  _upcomingBookings.value = defaultUpcomingBookings
316
317
  _pastBookings.value = defaultPastBookings
@@ -75,4 +75,13 @@ object AppConfig {
75
75
  OnboardingSlide("Get Directions", "Navigate easily with turn-by-turn directions", "directions"),
76
76
  OnboardingSlide("Save Favorites", "Keep track of your favorite places", "favorite")
77
77
  )
78
+
79
+ // CUSTOMIZE:DATASOURCE - Data source configuration
80
+ object DataSource {
81
+ enum class SourceType {
82
+ LOCAL_STORAGE, // Room — real local database (DEFAULT)
83
+ MOCK // In-memory seed data — for development/testing only
84
+ }
85
+ val active: SourceType = SourceType.MOCK
86
+ }
78
87
  }
@@ -0,0 +1,33 @@
1
+ package com.appship.map.data
2
+
3
+ /**
4
+ * Abstracts the data layer. Both MockDataProvider and LocalStorageProvider
5
+ * implement this, allowing the app to swap data sources via AppConfig.DataSource.active.
6
+ *
7
+ * Screens and ViewModels depend on this interface rather than on a concrete implementation.
8
+ * Use [DataSourceResolver.repository] to get the active provider.
9
+ */
10
+ interface DataRepository {
11
+ // Observable state
12
+ val places: List<Place>
13
+ val reviews: Map<String, List<Review>>
14
+ val routes: List<Route>
15
+ val currentUser: User
16
+
17
+ // CRUD operations
18
+ fun getPlace(id: String): Place?
19
+ fun getReviews(placeId: String): List<Review>
20
+ fun addReview(review: Review, placeId: String)
21
+ fun toggleFavorite(place: Place)
22
+ fun getFavoritePlaces(): List<Place>
23
+
24
+ // Filtering & Search
25
+ fun filterPlaces(criteria: FilterCriteria): List<Place>
26
+ fun searchPlaces(query: String): List<Place>
27
+
28
+ // Route operations
29
+ fun getRoute(origin: Coordinate, destination: Coordinate): Route?
30
+
31
+ // Reset
32
+ fun reset()
33
+ }
@@ -0,0 +1,23 @@
1
+ package com.appship.map.data
2
+
3
+ import com.appship.map.AppConfig
4
+ import com.appship.map.mock.MockDataProvider
5
+
6
+ /**
7
+ * Resolves the active [DataRepository] implementation based on [AppConfig.DataSource.active].
8
+ * Screens use this to obtain the correct data source without knowing the concrete type.
9
+ *
10
+ * Usage:
11
+ * val repository = DataSourceResolver.repository
12
+ * val places = repository.places
13
+ */
14
+ object DataSourceResolver {
15
+ val repository: DataRepository
16
+ get() = when (AppConfig.DataSource.active) {
17
+ AppConfig.DataSource.SourceType.LOCAL_STORAGE -> {
18
+ // TODO: Return LocalStorageProvider once implemented
19
+ MockDataProvider
20
+ }
21
+ AppConfig.DataSource.SourceType.MOCK -> MockDataProvider
22
+ }
23
+ }
@@ -76,4 +76,13 @@ object AppConfig {
76
76
  )
77
77
  )
78
78
  }
79
+
80
+ // CUSTOMIZE:DATASOURCE - Data source configuration
81
+ object DataSource {
82
+ enum class SourceType {
83
+ LOCAL_STORAGE, // Room — real local database (DEFAULT)
84
+ MOCK // In-memory seed data — for development/testing only
85
+ }
86
+ val active: SourceType = SourceType.MOCK
87
+ }
79
88
  }
@@ -0,0 +1,62 @@
1
+ package com.appship.shop.data
2
+
3
+ import com.appship.shop.data.models.*
4
+ import kotlinx.coroutines.flow.StateFlow
5
+
6
+ /**
7
+ * Abstracts the data layer. Both MockDataProvider and LocalStorageProvider
8
+ * implement this, allowing the app to swap data sources via AppConfig.DataSource.active.
9
+ *
10
+ * Screens and ViewModels depend on this interface rather than on a concrete implementation.
11
+ * Use [DataSourceResolver.repository] to get the active provider.
12
+ */
13
+ interface DataRepository {
14
+ // Observable state
15
+ val categories: StateFlow<List<Category>>
16
+ val products: StateFlow<List<Product>>
17
+ val banners: StateFlow<List<Banner>>
18
+ val favorites: StateFlow<Set<String>>
19
+ val orders: StateFlow<List<Order>>
20
+
21
+ // CRUD operations - Categories
22
+ fun addCategory(category: Category)
23
+ fun updateCategory(category: Category)
24
+ fun deleteCategory(categoryId: String)
25
+
26
+ // CRUD operations - Products
27
+ fun addProduct(product: Product)
28
+ fun updateProduct(product: Product)
29
+ fun deleteProduct(productId: String)
30
+
31
+ // CRUD operations - Banners
32
+ fun addBanner(banner: Banner)
33
+ fun updateBanner(banner: Banner)
34
+ fun deleteBanner(bannerId: String)
35
+
36
+ // CRUD operations - Favorites
37
+ fun addToFavorites(productId: String)
38
+ fun removeFromFavorites(productId: String)
39
+ fun isFavorite(productId: String): Boolean
40
+
41
+ // CRUD operations - Orders
42
+ fun addOrder(order: Order)
43
+ fun updateOrder(order: Order)
44
+ fun deleteOrder(orderId: String)
45
+ fun getOrder(orderId: String): Order?
46
+
47
+ // Reset
48
+ fun reset()
49
+
50
+ // Helper functions
51
+ fun getProduct(id: String): Product?
52
+ fun getProductsByCategory(categoryId: String): List<Product>
53
+ fun searchProducts(query: String): List<Product>
54
+ fun getFeaturedProducts(): List<Product>
55
+ fun getSaleProducts(): List<Product>
56
+ fun getReviews(productId: String): List<Review>
57
+
58
+ // Static data
59
+ val shippingOptions: List<ShippingOption>
60
+ val storeLocations: List<StoreLocation>
61
+ val sampleUser: User
62
+ }
@@ -0,0 +1,23 @@
1
+ package com.appship.shop.data
2
+
3
+ import com.appship.shop.AppConfig
4
+ import com.appship.shop.mock.MockDataProvider
5
+
6
+ /**
7
+ * Resolves the active [DataRepository] implementation based on [AppConfig.DataSource.active].
8
+ * Screens use this to obtain the correct data source without knowing the concrete type.
9
+ *
10
+ * Usage:
11
+ * val repository = DataSourceResolver.repository
12
+ * val products by repository.products.collectAsState()
13
+ */
14
+ object DataSourceResolver {
15
+ val repository: DataRepository
16
+ get() = when (AppConfig.DataSource.active) {
17
+ AppConfig.DataSource.SourceType.LOCAL_STORAGE -> {
18
+ // TODO: Return LocalStorageProvider once implemented
19
+ MockDataProvider
20
+ }
21
+ AppConfig.DataSource.SourceType.MOCK -> MockDataProvider
22
+ }
23
+ }