import {inject, Injectable} from '@angular/core'; import {HttpClient} from '@angular/common/http'; import {Observable} from 'rxjs'; export interface UserProfile { id: string; participantType: string; firstName: string; lastName: string; organizationName: string | null; email: string; status: string; } export interface UpdateProfileRequest { firstName: string; lastName: string; organizationName?: string; participantType: 'PRIVATE' | 'COMPANY'; } export interface ChangePasswordRequest { currentPassword: string; newPassword: string; } export interface ChangeEmailRequest { newEmail: string; } @Injectable({providedIn: 'root'}) export class UserService { private http = inject(HttpClient); private apiUrl = 'http://localhost:8080/api'; getProfile(): Observable { return this.http.get(`${this.apiUrl}/users/me`); } updateProfile(request: UpdateProfileRequest): Observable { return this.http.put(`${this.apiUrl}/users/me`, request); } changePassword(request: ChangePasswordRequest): Observable { return this.http.put(`${this.apiUrl}/users/me/password`, request); } changeEmail(request: ChangeEmailRequest): Observable { return this.http.put(`${this.apiUrl}/users/me/email`, request); } }