// Your implementation here
data class Product(
val id: Int,
val name: String,
val price: Double,
val category: String
)
interface ProductRepository {
// TODO: Add method signatures
}
class InMemoryProductRepository : ProductRepository {
// TODO: Implement repository
}
fun main() {
val repo: ProductRepository = InMemoryProductRepository()
// Add products
repo.save(Product(0, "Laptop", 999.99, "Electronics"))
repo.save(Product(0, "Mouse", 29.99, "Electronics"))
repo.save(Product(0, "Desk", 299.99, "Furniture"))
repo.save(Product(0, "Chair", 199.99, "Furniture"))
println("=== All Products ===")
repo.findAll().forEach { println(it) }
println("\n=== Electronics ===")
repo.findByCategory("Electronics").forEach { println(it) }
println("\n=== Products $50-$300 ===")
repo.findByPriceRange(50.0, 300.0).forEach { println(it) }
println("\n=== After deleting product 2 ===")
repo.delete(2)
repo.findAll().forEach { println(it) }
}