import { ReportTemplateDto, GeneratedReportDto, CreateReportTemplateDto, UpdateReportTemplateDto, GenerateReportDto, // backend'deki GenerateReportDto (templateId + parameters) } from '@/proxy/reports/models' import apiService from './api.service' import { PagedAndSortedResultRequestDto, PagedResultDto } from '@/proxy' export interface ReportsData { templates: ReportTemplateDto[] generatedReports: GeneratedReportDto[] } export class ReportsService { apiName = 'Default' // TEMPLATES getTemplates = (input: PagedAndSortedResultRequestDto) => apiService.fetchData, PagedAndSortedResultRequestDto>( { method: 'GET', url: '/api/app/report/templates', // ✔ Swagger: GET /api/app/report/templates params: { sorting: input.sorting, skipCount: input.skipCount, maxResultCount: input.maxResultCount, }, }, { apiName: this.apiName }, ) getTemplateById = (id: string) => apiService.fetchData( { method: 'GET', url: `/api/app/report/${id}/template`, // ✔ Swagger: GET /api/app/report/{id}/template }, { apiName: this.apiName }, ) createTemplate = (input: CreateReportTemplateDto) => apiService.fetchData( { method: 'POST', url: '/api/app/report/template', // ✔ Swagger: POST /api/app/report/template data: input, }, { apiName: this.apiName }, ) updateTemplate = (id: string, input: UpdateReportTemplateDto) => apiService.fetchData( { method: 'PUT', url: `/api/app/report/${id}/template`, // ✔ Swagger: PUT /api/app/report/{id}/template data: input, }, { apiName: this.apiName }, ) deleteTemplate = (id: string) => apiService.fetchData( { method: 'DELETE', url: `/api/app/report/${id}/template`, // ✔ Swagger: DELETE /api/app/report/{id}/template }, { apiName: this.apiName }, ) // GENERATED REPORTS getGeneratedReports = (input: PagedAndSortedResultRequestDto) => apiService.fetchData, PagedAndSortedResultRequestDto>( { method: 'GET', url: '/api/app/report/generated-reports', // ✔ Swagger: GET /api/app/report/generated-reports params: { sorting: input.sorting, skipCount: input.skipCount, maxResultCount: input.maxResultCount, }, }, { apiName: this.apiName }, ) getGeneratedReportById = (id: string) => apiService.fetchData( { method: 'GET', url: `/api/app/report/${id}/generated-report`, // ✔ Swagger: GET /api/app/report/{id}/generated-report }, { apiName: this.apiName }, ) generateReport = (input: GenerateReportDto) => apiService.fetchData( { method: 'POST', url: '/api/app/report/generate-report', // ✔ Swagger: POST /api/app/report/generate-report data: input, }, { apiName: this.apiName }, ) deleteGeneratedReport = (id: string) => apiService.fetchData( { method: 'DELETE', url: `/api/app/report/${id}/generated-report`, // ✔ Swagger: DELETE /api/app/report/{id}/generated-report }, { apiName: this.apiName }, ) // BULK getAllData = () => apiService.fetchData( { method: 'GET', url: '/api/app/report/data', // ✔ Swagger: GET /api/app/report/data }, { apiName: this.apiName }, ) } export default ReportsService