import { HttpClient } from '@angular/common/http';
import { Inject, Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { EmailSettings, UpdateEmailSettingsRequest } from '../models/config.model';
import { API_URL } from '../tokens/api-url.token';

@Injectable({ providedIn: 'root' })
export class EmailSettingsApiService {
  constructor(
    private http: HttpClient,
    @Inject(API_URL) private apiUrl: string,
  ) {}

  get(): Observable<EmailSettings> {
    return this.http.get<EmailSettings>(`${this.apiUrl}/me/email-settings`);
  }

  update(data: UpdateEmailSettingsRequest): Observable<EmailSettings> {
    return this.http.put<EmailSettings>(`${this.apiUrl}/me/email-settings`, data);
  }

  sendTest(toEmail?: string): Observable<{ message: string }> {
    return this.http.post<{ message: string }>(`${this.apiUrl}/me/email-settings/test`, {
      toEmail,
    });
  }
}
