import { Injectable, signal, WritableSignal } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { delay, Observable, shareReplay } from 'rxjs'; import { Product } from '../product-selection/product-selection.component'; @Injectable({ providedIn: 'root' }) export class ProductService { private productSignal = signal(null); private quantitySignal = signal(1); constructor(private http: HttpClient) {} setProduct(product: Product | null): void { this.productSignal.set(product); if (product) { this.quantitySignal.set(1); } } getProduct(): Product | null { return this.productSignal(); } setQuantity(quantity: number): void { this.quantitySignal.set(quantity); } getQuantity(): number { return this.quantitySignal(); } getProducts(): Observable { return this.http.get('https://fakestoreapi.com/products').pipe( delay(1000) ); } getProductById(id: number): Observable { return this.http.get(`https://fakestoreapi.com/products/${id}`).pipe( delay(1000) ); } }