import { HttpClient, HttpParams } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { Observable } from 'rxjs'; import { environment } from 'src/environments/environment'; @Injectable({ providedIn: 'root' }) export class SystemProfileFieldManagementService { private apiUrl = environment.apiUrl + '/profiles/system'; constructor(private http: HttpClient) { } /** * Get system profile fields with pagination * @param page Page number (default: 0) * @param size Page size (default: 10) */ getSystemProfileFields(page: number = 0, size: number = 10): Observable { let params = new HttpParams() .set('page', page.toString()) .set('size', size.toString()); return this.http.get(this.apiUrl, { params }); } /** * Get a specific system profile field by name * @param name Field name */ getByName(name: string): Observable { return this.http.get(`${this.apiUrl}/${name}`); } /** * Update a system profile field * @param systemProfileField System profile field object */ update(systemProfileField: any): Observable { return this.http.post(this.apiUrl, systemProfileField); } /** * Update multiple system profile fields * @param systemProfileFields Array of system profile field objects */ updateList(systemProfileFields: any[]): Observable { return this.http.post(`${this.apiUrl}/list`, systemProfileFields); } /** * Delete a system profile field * @param name Field name */ deleteByName(name: string): Observable { return this.http.delete(`${this.apiUrl}/${name}`); } }