import { Injectable, inject } from '@angular/core'; import { HttpClient, HttpParams } from '@angular/common/http'; import { Observable } from 'rxjs'; import { environment } from '../../environments/environment'; import { Program } from '../interfaces/program'; @Injectable({ providedIn: 'root', }) export class ProgramService { private http = inject(HttpClient); private baseUrl = `${environment.apiBaseUrl}/api/programs`; /** Fetch all programs, optionally filtered by day_of_week (1=Mon … 7=Sun). */ getPrograms(day?: number): Observable { let params = new HttpParams(); if (day !== undefined) params = params.set('day', String(day)); return this.http.get(this.baseUrl, { params }); } getProgram(id: number): Observable { return this.http.get(`${this.baseUrl}/${id}`); } createProgram(payload: Omit): Observable { return this.http.post(this.baseUrl, payload); } updateProgram(id: number, payload: Partial): Observable { return this.http.put(`${this.baseUrl}/${id}`, payload); } deleteProgram(id: number): Observable { return this.http.delete(`${this.baseUrl}/${id}`); } }