import { HttpClient } from '@angular/common/http'; import { Injectable, inject } from '@angular/core'; import { Observable } from 'rxjs'; export interface TenantAttachment { id: string; fileName: string; contentType: string; size: number; } export interface Tenant { id?: string; firstName: string; lastName: string; email: string; phone: string; address: string; attachments?: TenantAttachment[]; } @Injectable({ providedIn: 'root' }) export class TenantService { private readonly http = inject(HttpClient); getTenants(): Observable { return this.http.get('/api/tenants'); } createTenant(tenant: Tenant): Observable { return this.http.post('/api/tenants', tenant); } updateTenant(id: string, tenant: Tenant): Observable { return this.http.put(`/api/tenants/${id}`, tenant); } deleteTenant(id: string): Observable { return this.http.delete(`/api/tenants/${id}`); } uploadAttachment(tenantId: string, file: File): Observable { const formData = new FormData(); formData.append('file', file); return this.http.post(`/api/tenants/${tenantId}/attachments`, formData); } downloadAttachment(tenantId: string, attachmentId: string): Observable { return this.http.get(`/api/tenants/${tenantId}/attachments/${attachmentId}`, { responseType: 'blob', }); } }