import { Injectable, inject } from '@angular/core'; import { HttpClient, HttpParams } from '@angular/common/http'; import { Observable } from 'rxjs'; import { CommunityHighlight } from '../interfaces/community-highlight'; import { getAppConfig } from './app-config.service'; @Injectable({ providedIn: 'root', }) export class CommunityHighlightService { private http = inject(HttpClient); private baseUrl = `${getAppConfig().apiBaseUrl}/api/community`; /** Fetch community highlights, optionally filtered by active status. */ getCommunityHighlights(active?: boolean): Observable { let params = new HttpParams(); if (active !== undefined) params = params.set('active', String(active)); return this.http.get(this.baseUrl, { params }); } getCommunityHighlight(id: number): Observable { return this.http.get(`${this.baseUrl}/${id}`); } createCommunityHighlight(payload: Omit): Observable { return this.http.post(this.baseUrl, payload); } updateCommunityHighlight(id: number, payload: Partial): Observable { return this.http.put(`${this.baseUrl}/${id}`, payload); } deleteCommunityHighlight(id: number): Observable { return this.http.delete(`${this.baseUrl}/${id}`); } }