diff --git a/Frontend/src/models/dtos/Suscripciones/CreateSuscriptorDto.ts b/Frontend/src/models/dtos/Suscripciones/CreateSuscriptorDto.ts new file mode 100644 index 0000000..b644d99 --- /dev/null +++ b/Frontend/src/models/dtos/Suscripciones/CreateSuscriptorDto.ts @@ -0,0 +1,11 @@ +export interface CreateSuscriptorDto { + nombreCompleto: string; + email?: string | null; + telefono?: string | null; + direccion: string; + tipoDocumento: string; + nroDocumento: string; + cbu?: string | null; + idFormaPagoPreferida: number; + observaciones?: string | null; +} \ No newline at end of file diff --git a/Frontend/src/models/dtos/Suscripciones/FormaPagoDto.ts b/Frontend/src/models/dtos/Suscripciones/FormaPagoDto.ts new file mode 100644 index 0000000..22a84ff --- /dev/null +++ b/Frontend/src/models/dtos/Suscripciones/FormaPagoDto.ts @@ -0,0 +1,5 @@ +export interface FormaPagoDto { + idFormaPago: number; + nombre: string; + requiereCBU: boolean; +} \ No newline at end of file diff --git a/Frontend/src/models/dtos/Suscripciones/SuscriptorDto.ts b/Frontend/src/models/dtos/Suscripciones/SuscriptorDto.ts new file mode 100644 index 0000000..b5c00f2 --- /dev/null +++ b/Frontend/src/models/dtos/Suscripciones/SuscriptorDto.ts @@ -0,0 +1,14 @@ +export interface SuscriptorDto { + idSuscriptor: number; + nombreCompleto: string; + email?: string | null; + telefono?: string | null; + direccion: string; + tipoDocumento: string; + nroDocumento: string; + cbu?: string | null; + idFormaPagoPreferida: number; + nombreFormaPagoPreferida: string; + observaciones?: string | null; + activo: boolean; +} \ No newline at end of file diff --git a/Frontend/src/models/dtos/Suscripciones/UpdateSuscriptorDto.ts b/Frontend/src/models/dtos/Suscripciones/UpdateSuscriptorDto.ts new file mode 100644 index 0000000..6513047 --- /dev/null +++ b/Frontend/src/models/dtos/Suscripciones/UpdateSuscriptorDto.ts @@ -0,0 +1,11 @@ +export interface UpdateSuscriptorDto { + nombreCompleto: string; + email?: string | null; + telefono?: string | null; + direccion: string; + tipoDocumento: string; + nroDocumento: string; + cbu?: string | null; + idFormaPagoPreferida: number; + observaciones?: string | null; +} \ No newline at end of file diff --git a/Frontend/src/services/Suscripciones/formaPagoService.ts b/Frontend/src/services/Suscripciones/formaPagoService.ts new file mode 100644 index 0000000..0c9dbd8 --- /dev/null +++ b/Frontend/src/services/Suscripciones/formaPagoService.ts @@ -0,0 +1,13 @@ +import apiClient from '../apiClient'; +import type { FormaPagoDto } from '../../models/dtos/Suscripciones/FormaPagoDto'; + +const API_URL = '/formaspago'; + +const getAllFormasDePago = async (): Promise => { + const response = await apiClient.get(API_URL); + return response.data; +}; + +export default { + getAllFormasDePago, +}; \ No newline at end of file diff --git a/Frontend/src/services/Suscripciones/suscriptorService.ts b/Frontend/src/services/Suscripciones/suscriptorService.ts new file mode 100644 index 0000000..38006d4 --- /dev/null +++ b/Frontend/src/services/Suscripciones/suscriptorService.ts @@ -0,0 +1,47 @@ +import apiClient from '../apiClient'; +import type { SuscriptorDto } from '../../models/dtos/Suscripciones/SuscriptorDto'; +import type { CreateSuscriptorDto } from '../../models/dtos/Suscripciones/CreateSuscriptorDto'; +import type { UpdateSuscriptorDto } from '../../models/dtos/Suscripciones/UpdateSuscriptorDto'; + +const API_URL = '/suscriptores'; + +const getAllSuscriptores = async (nombre?: string, nroDoc?: string, soloActivos: boolean = true): Promise => { + const params = new URLSearchParams(); + if (nombre) params.append('nombre', nombre); + if (nroDoc) params.append('nroDoc', nroDoc); + params.append('soloActivos', String(soloActivos)); + + const response = await apiClient.get(`${API_URL}?${params.toString()}`); + return response.data; +}; + +const getSuscriptorById = async (id: number): Promise => { + const response = await apiClient.get(`${API_URL}/${id}`); + return response.data; +}; + +const createSuscriptor = async (data: CreateSuscriptorDto): Promise => { + const response = await apiClient.post(API_URL, data); + return response.data; +}; + +const updateSuscriptor = async (id: number, data: UpdateSuscriptorDto): Promise => { + await apiClient.put(`${API_URL}/${id}`, data); +}; + +const deactivateSuscriptor = async (id: number): Promise => { + await apiClient.delete(`${API_URL}/${id}`); +}; + +const activateSuscriptor = async (id: number): Promise => { + await apiClient.post(`${API_URL}/${id}/activar`); +}; + +export default { + getAllSuscriptores, + getSuscriptorById, + createSuscriptor, + updateSuscriptor, + deactivateSuscriptor, + activateSuscriptor, +}; \ No newline at end of file