← Volver a TarjetasController

📸 Gestión de Fotos de Tarjetas

Endpoints para la gestión CRUD completa de imágenes de tarjetas de fidelización

Descripción General

Los endpoints de Gestión de Fotos de Tarjetas proporcionan las operaciones necesarias para administrar las imágenes asociadas a las tarjetas de fidelización del sistema RestMaster. Estos endpoints permiten almacenar, recuperar, actualizar y eliminar imágenes de tarjetas en formato binario.

🎯 Características de las Fotos de Tarjetas

  • Almacenamiento binario: Las imágenes se guardan como datos binarios en la base de datos
  • Relación 1:1: Cada tarjeta puede tener una imagen asociada
  • Identificación visual: Permite identificar tarjetas por su imagen
  • Múltiples formatos: Soporte para diferentes formatos de imagen
  • Optimización de rendimiento: Gestión eficiente de datos binarios
  • Validación de integridad: Verificación de datos de imagen

Endpoints Disponibles

GET /Master/Tarjetas/GetTarjetaFoto/{tarjeta}

Obtiene la imagen de una tarjeta específica por su ID. Este endpoint permite recuperar la imagen asociada a una tarjeta de fidelización.
Parámetros de ruta:
  • tarjeta (string, requerido): ID único de la tarjeta
Parámetros de consulta:
  • initialCatalog (string, requerido): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos
200 OK
Imagen de tarjeta encontrada y devuelta
{ "tarjeta": "TARJ001", "imagen": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAApgAAAKYB3X3/OAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAANCSURBVEiJtZZPbBtFFMZ/M7ubXdtdb1xSFyeilBapySVU8h8OoFaooFSqiihIVIpQBKci6KEg9Q6H9kovIHoCIVQJJCKE1ENFjnAgcaSGC6rEnxBwA04Tx43t2FnvDAfjkNibxgHxnWb2e/u992bee7tCa00YFsffekFY+nUzFtjW0LrvjRXrCDIAaPLlW0nHL0SsZtVoaF98mLrx3pdhOqLtYPHChahZcYYO7KvPFxvRl5XPp1sN3adWiD1ZAqD6XYK1b/dvE5IWryTt2udLFedwc1+9kLp+vbbpoDh+6TklxBeAi9TL0taeWpdmZzQDry0AcO+jQ12RyohqqoYoo8RDwJrU+qXkjWtfi8Xxt58BdQuwQs9qC/afLwCw8tnQbqYAPsgxE1S6F3EAIXux2oQFKm0ihMsOF71dHYx+f3NND68ghCu1YIoePPQN1pGRABkJ6Bus96CutRZMydTl+TvuiRW1m3n0eDl0vRPcEysqdXn+jsQPsrHMquGeXEaY4Yk4wxWcY5V/9scqOMOVUFthatyTy8QyqwZ+kDURKoMWxNKr2EeqVKcTNOajqKoBgOE28U4tdQl5p5bwCw7BWquaZSzAPlwjlithJtp3pTImSqQRrb2Z8PHGigD4RZuNX6JYj6wj7O4TFLbCO/Mn/m8R+h6rYSUb3ekokRY6f/YukArN979jcW+V/S8g0eT/N3VN3kTqW66CZY1Ifm9u+sSxOjK09GDu8BXdtTlwZ1E5tG18E8v/pfOjY4t9x+uSXej2F5E3+6b/kh4DYM8K5A3A9PqPpkvt2J8y4rW0jmYEwI38p7Vf3tI7x+4HALuWfgTI4xLaFtvBLX7bZPnHMGx5b3N6s1i4X2tB8GevM3+8mGc/MCiYywgDzR3N1ZbM9EeqFI/0TLmr4tBzfx4AuKu/7U+9C+CaXkp/2r1DM5cp4q8bq+j+V7Cv1Qf4cRhA4/rYPQ3M3A3fdVBPd6GvNQKAvV2VnxXsc0+Q/3kA+VoP00qf2kZbKwRf4/g9AMTB7mzUxPDzZ5pSmDZ5QDEZyyTHZ8Vq4nTYj6Tf/y1Ox/mu5EK5sqqhJ8Cdc4yB4X2fO2y9kC6qXmh1zBwF/MN2DfEnbPw3Kvb5Bxi2/i+I7U+0ZyO2CulT+V/dX2p0zVJb1fO7O5H8Z5F+47cE0+9cqpzJ2uNk/4JF1KAj0fVa5CvB87R04wDwX/wCw32X+3n5ezJ5cI/fN2uPdf9oQ7F2f/Y8Hydv/1j8Ihv6nzb/2d9Mp1KcT3c6V+PNu9zWTEZ9vP9u5W+1Ec60/jwD4W8k5+82cAFnGrejM3/LbuXxoTIMwFZbDSRc0ZKb4P1HjP3u6WX/4Tf03yJlWnmvp7wAAAABJRU5ErkJggg==" }
404 Not Found
Imagen de tarjeta no encontrada
500 Internal Server Error
Error interno del servidor

POST /Master/Tarjetas/AddTarjetaFoto

Crea una nueva imagen de tarjeta en el sistema. Este endpoint permite agregar una imagen asociada a una tarjeta de fidelización.
Body (JSON):
{ "tarjeta": "TARJ001", "imagen": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAApgAAAKYB3X3/OAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAANCSURBVEiJtZZPbBtFFMZ/M7ubXdtdb1xSFyeilBapySVU8h8OoFaooFSqiihIVIpQBKci6KEg9Q6H9kovIHoCIVQJJCKE1ENFjnAgcaSGC6rEnxBwA04Tx43t2FnvDAfjkNibxgHxnWb2e/u992bee7tCa00YFsffekFY+nUzFtjW0LrvjRXrCDIAaPLlW0nHL0SsZtVoaF98mLrx3pdhOqLtYPHChahZcYYO7KvPFxvRl5XPp1sN3adWiD1ZAqD6XYK1b/dvE5IWryTt2udLFedwc1+9kLp+vbbpoDh+6TklxBeAi9TL0taeWpdmZzQDry0AcO+jQ12RyohqqoYoo8RDwJrU+qXkjWtfi8Xxt58BdQuwQs9qC/afLwCw8tnQbqYAPsgxE1S6F3EAIXux2oQFKm0ihMsOF71dHYx+f3NND68ghCu1YIoePPQN1pGRABkJ6Bus96CutRZMydTl+TvuiRW1m3n0eDl0vRPcEysqdXn+jsQPsrHMquGeXEaY4Yk4wxWcY5V/9scqOMOVUFthatyTy8QyqwZ+kDURKoMWxNKr2EeqVKcTNOajqKoBgOE28U4tdQl5p5bwCw7BWquaZSzAPlwjlithJtp3pTImSqQRrb2Z8PHGigD4RZuNX6JYj6wj7O4TFLbCO/Mn/m8R+h6rYSUb3ekokRY6f/YukArN979jcW+V/S8g0eT/N3VN3kTqW66CZY1Ifm9u+sSxOjK09GDu8BXdtTlwZ1E5tG18E8v/pfOjY4t9x+uSXej2F5E3+6b/kh4DYM8K5A3A9PqPpkvt2J8y4rW0jmYEwI38p7Vf3tI7x+4HALuWfgTI4xLaFtvBLX7bZPnHMGx5b3N6s1i4X2tB8GevM3+8mGc/MCiYywgDzR3N1ZbM9EeqFI/0TLmr4tBzfx4AuKu/7U+9C+CaXkp/2r1DM5cp4q8bq+j+V7Cv1Qf4cRhA4/rYPQ3M3A3fdVBPd6GvNQKAvV2VnxXsc0+Q/3kA+VoP00qf2kZbKwRf4/g9AMTB7mzUxPDzZ5pSmDZ5QDEZyyTHZ8Vq4nTYj6Tf/y1Ox/mu5EK5sqqhJ8Cdc4yB4X2fO2y9kC6qXmh1zBwF/MN2DfEnbPw3Kvb5Bxi2/i+I7U+0ZyO2CulT+V/dX2p0zVJb1fO7O5H8Z5F+47cE0+9cqpzJ2uNk/4JF1KAj0fVa5CvB87R04wDwX/wCw32X+3n5ezJ5cI/fN2uPdf9oQ7F2f/Y8Hydv/1j8Ihv6nzb/2d9Mp1KcT3c6V+PNu9zWTEZ9vP9u5W+1Ec60/jwD4W8k5+82cAFnGrejM3/LbuXxoTIMwFZbDSRc0ZKb4P1HjP3u6WX/4Tf03yJlWnmvp7wAAAABJRU5ErkJggg==" }
Parámetros de consulta:
  • initialCatalog (string, requerido): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos
201 Created
Imagen de tarjeta creada exitosamente
{ "tarjeta": "TARJ001", "imagen": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAApgAAAKYB3X3/OAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAANCSURBVEiJtZZPbBtFFMZ/M7ubXdtdb1xSFyeilBapySVU8h8OoFaooFSqiihIVIpQBKci6KEg9Q6H9kovIHoCIVQJJCKE1ENFjnAgcaSGC6rEnxBwA04Tx43t2FnvDAfjkNibxgHxnWb2e/u992bee7tCa00YFsffekFY+nUzFtjW0LrvjRXrCDIAaPLlW0nHL0SsZtVoaF98mLrx3pdhOqLtYPHChahZcYYO7KvPFxvRl5XPp1sN3adWiD1ZAqD6XYK1b/dvE5IWryTt2udLFedwc1+9kLp+vbbpoDh+6TklxBeAi9TL0taeWpdmZzQDry0AcO+jQ12RyohqqoYoo8RDwJrU+qXkjWtfi8Xxt58BdQuwQs9qC/afLwCw8tnQbqYAPsgxE1S6F3EAIXux2oQFKm0ihMsOF71dHYx+f3NND68ghCu1YIoePPQN1pGRABkJ6Bus96CutRZMydTl+TvuiRW1m3n0eDl0vRPcEysqdXn+jsQPsrHMquGeXEaY4Yk4wxWcY5V/9scqOMOVUFthatyTy8QyqwZ+kDURKoMWxNKr2EeqVKcTNOajqKoBgOE28U4tdQl5p5bwCw7BWquaZSzAPlwjlithJtp3pTImSqQRrb2Z8PHGigD4RZuNX6JYj6wj7O4TFLbCO/Mn/m8R+h6rYSUb3ekokRY6f/YukArN979jcW+V/S8g0eT/N3VN3kTqW66CZY1Ifm9u+sSxOjK09GDu8BXdtTlwZ1E5tG18E8v/pfOjY4t9x+uSXej2F5E3+6b/kh4DYM8K5A3A9PqPpkvt2J8y4rW0jmYEwI38p7Vf3tI7x+4HALuWfgTI4xLaFtvBLX7bZPnHMGx5b3N6s1i4X2tB8GevM3+8mGc/MCiYywgDzR3N1ZbM9EeqFI/0TLmr4tBzfx4AuKu/7U+9C+CaXkp/2r1DM5cp4q8bq+j+V7Cv1Qf4cRhA4/rYPQ3M3A3fdVBPd6GvNQKAvV2VnxXsc0+Q/3kA+VoP00qf2kZbKwRf4/g9AMTB7mzUxPDzZ5pSmDZ5QDEZyyTHZ8Vq4nTYj6Tf/y1Ox/mu5EK5sqqhJ8Cdc4yB4X2fO2y9kC6qXmh1zBwF/MN2DfEnbPw3Kvb5Bxi2/i+I7U+0ZyO2CulT+V/dX2p0zVJb1fO7O5H8Z5F+47cE0+9cqpzJ2uNk/4JF1KAj0fVa5CvB87R04wDwX/wCw32X+3n5ezJ5cI/fN2uPdf9oQ7F2f/Y8Hydv/1j8Ihv6nzb/2d9Mp1KcT3c6V+PNu9zWTEZ9vP9u5W+1Ec60/jwD4W8k5+82cAFnGrejM3/LbuXxoTIMwFZbDSRc0ZKb4P1HjP3u6WX/4Tf03yJlWnmvp7wAAAABJRU5ErkJggg==" }
500 Internal Server Error
Error interno del servidor

PUT /Master/Tarjetas/UpdateTarjetaFoto/{tarjeta}

Actualiza la imagen de una tarjeta existente en el sistema. Este endpoint permite modificar la imagen asociada a una tarjeta de fidelización.
Parámetros de ruta:
  • tarjeta (string, requerido): ID de la tarjeta cuya imagen se actualizará
Body (JSON):
{ "tarjeta": "TARJ001", "imagen": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAApgAAAKYB3X3/OAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAANCSURBVEiJtZZPbBtFFMZ/M7ubXdtdb1xSFyeilBapySVU8h8OoFaooFSqiihIVIpQBKci6KEg9Q6H9kovIHoCIVQJJCKE1ENFjnAgcaSGC6rEnxBwA04Tx43t2FnvDAfjkNibxgHxnWb2e/u992bee7tCa00YFsffekFY+nUzFtjW0LrvjRXrCDIAaPLlW0nHL0SsZtVoaF98mLrx3pdhOqLtYPHChahZcYYO7KvPFxvRl5XPp1sN3adWiD1ZAqD6XYK1b/dvE5IWryTt2udLFedwc1+9kLp+vbbpoDh+6TklxBeAi9TL0taeWpdmZzQDry0AcO+jQ12RyohqqoYoo8RDwJrU+qXkjWtfi8Xxt58BdQuwQs9qC/afLwCw8tnQbqYAPsgxE1S6F3EAIXux2oQFKm0ihMsOF71dHYx+f3NND68ghCu1YIoePPQN1pGRABkJ6Bus96CutRZMydTl+TvuiRW1m3n0eDl0vRPcEysqdXn+jsQPsrHMquGeXEaY4Yk4wxWcY5V/9scqOMOVUFthatyTy8QyqwZ+kDURKoMWxNKr2EeqVKcTNOajqKoBgOE28U4tdQl5p5bwCw7BWquaZSzAPlwjlithJtp3pTImSqQRrb2Z8PHGigD4RZuNX6JYj6wj7O4TFLbCO/Mn/m8R+h6rYSUb3ekokRY6f/YukArN979jcW+V/S8g0eT/N3VN3kTqW66CZY1Ifm9u+sSxOjK09GDu8BXdtTlwZ1E5tG18E8v/pfOjY4t9x+uSXej2F5E3+6b/kh4DYM8K5A3A9PqPpkvt2J8y4rW0jmYEwI38p7Vf3tI7x+4HALuWfgTI4xLaFtvBLX7bZPnHMGx5b3N6s1i4X2tB8GevM3+8mGc/MCiYywgDzR3N1ZbM9EeqFI/0TLmr4tBzfx4AuKu/7U+9C+CaXkp/2r1DM5cp4q8bq+j+V7Cv1Qf4cRhA4/rYPQ3M3A3fdVBPd6GvNQKAvV2VnxXsc0+Q/3kA+VoP00qf2kZbKwRf4/g9AMTB7mzUxPDzZ5pSmDZ5QDEZyyTHZ8Vq4nTYj6Tf/y1Ox/mu5EK5sqqhJ8Cdc4yB4X2fO2y9kC6qXmh1zBwF/MN2DfEnbPw3Kvb5Bxi2/i+I7U+0ZyO2CulT+V/dX2p0zVJb1fO7O5H8Z5F+47cE0+9cqpzJ2uNk/4JF1KAj0fVa5CvB87R04wDwX/wCw32X+3n5ezJ5cI/fN2uPdf9oQ7F2f/Y8Hydv/1j8Ihv6nzb/2d9Mp1KcT3c6V+PNu9zWTEZ9vP9u5W+1Ec60/jwD4W8k5+82cAFnGrejM3/LbuXxoTIMwFZbDSRc0ZKb4P1HjP3u6WX/4Tf03yJlWnmvp7wAAAABJRU5ErkJggg==" }
Parámetros de consulta:
  • initialCatalog (string, requerido): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos
200 OK
Imagen de tarjeta actualizada exitosamente
404 Not Found
Imagen de tarjeta no encontrada
500 Internal Server Error
Error interno del servidor

DELETE /Master/Tarjetas/DeleteTarjetaFoto/{tarjeta}

Elimina la imagen de una tarjeta del sistema. Este endpoint permite remover la imagen asociada a una tarjeta de fidelización.
Parámetros de ruta:
  • tarjeta (string, requerido): ID de la tarjeta cuya imagen se eliminará
Parámetros de consulta:
  • initialCatalog (string, requerido): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos
200 OK
Imagen de tarjeta eliminada exitosamente
{ "message": "Tarjeta foto deleted successfully", "deletedEntity": { "tarjeta": "TARJ001", "imagen": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAApgAAAKYB3X3/OAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAANCSURBVEiJtZZPbBtFFMZ/M7ubXdtdb1xSFyeilBapySVU8h8OoFaooFSqiihIVIpQBKci6KEg9Q6H9kovIHoCIVQJJCKE1ENFjnAgcaSGC6rEnxBwA04Tx43t2FnvDAfjkNibxgHxnWb2e/u992bee7tCa00YFsffekFY+nUzFtjW0LrvjRXrCDIAaPLlW0nHL0SsZtVoaF98mLrx3pdhOqLtYPHChahZcYYO7KvPFxvRl5XPp1sN3adWiD1ZAqD6XYK1b/dvE5IWryTt2udLFedwc1+9kLp+vbbpoDh+6TklxBeAi9TL0taeWpdmZzQDry0AcO+jQ12RyohqqoYoo8RDwJrU+qXkjWtfi8Xxt58BdQuwQs9qC/afLwCw8tnQbqYAPsgxE1S6F3EAIXux2oQFKm0ihMsOF71dHYx+f3NND68ghCu1YIoePPQN1pGRABkJ6Bus96CutRZMydTl+TvuiRW1m3n0eDl0vRPcEysqdXn+jsQPsrHMquGeXEaY4Yk4wxWcY5V/9scqOMOVUFthatyTy8QyqwZ+kDURKoMWxNKr2EeqVKcTNOajqKoBgOE28U4tdQl5p5bwCw7BWquaZSzAPlwjlithJtp3pTImSqQRrb2Z8PHGigD4RZuNX6JYj6wj7O4TFLbCO/Mn/m8R+h6rYSUb3ekokRY6f/YukArN979jcW+V/S8g0eT/N3VN3kTqW66CZY1Ifm9u+sSxOjK09GDu8BXdtTlwZ1E5tG18E8v/pfOjY4t9x+uSXej2F5E3+6b/kh4DYM8K5A3A9PqPpkvt2J8y4rW0jmYEwI38p7Vf3tI7x+4HALuWfgTI4xLaFtvBLX7bZPnHMGx5b3N6s1i4X2tB8GevM3+8mGc/MCiYywgDzR3N1ZbM9EeqFI/0TLmr4tBzfx4AuKu/7U+9C+CaXkp/2r1DM5cp4q8bq+j+V7Cv1Qf4cRhA4/rYPQ3M3A3fdVBPd6GvNQKAvV2VnxXsc0+Q/3kA+VoP00qf2kZbKwRf4/g9AMTB7mzUxPDzZ5pSmDZ5QDEZyyTHZ8Vq4nTYj6Tf/y1Ox/mu5EK5sqqhJ8Cdc4yB4X2fO2y9kC6qXmh1zBwF/MN2DfEnbPw3Kvb5Bxi2/i+I7U+0ZyO2CulT+V/dX2p0zVJb1fO7O5H8Z5F+47cE0+9cqpzJ2uNk/4JF1KAj0fVa5CvB87R04wDwX/wCw32X+3n5ezJ5cI/fN2uPdf9oQ7F2f/Y8Hydv/1j8Ihv6nzb/2d9Mp1KcT3c6V+PNu9zWTEZ9vP9u5W+1Ec60/jwD4W8k5+82cAFnGrejM3/LbuXxoTIMwFZbDSRc0ZKb4P1HjP3u6WX/4Tf03yJlWnmvp7wAAAABJRU5ErkJggg==" } }
404 Not Found
Imagen de tarjeta no encontrada
500 Internal Server Error
Error interno del servidor

Modelo de Datos - TarjetasFoto

Propiedades del modelo TarjetasFoto:
  • Tarjeta (string): ID de la tarjeta (clave primaria)
  • Imagen (byte[]): Imagen de la tarjeta en formato binario

📋 Características del Modelo

  • Clave primaria: Tarjeta es la clave primaria de la tabla TARJETAS_FOTO
  • Longitud máxima: 20 caracteres para el ID de tarjeta
  • Tipo de datos: String no Unicode para optimización
  • Almacenamiento de imagen: Tipo byte[] para datos binarios
  • Restricciones: No permite valores nulos en la clave
  • Índice: Clave primaria con índice I_TARJETAS_FOTO
  • Relación: 1:1 con la tabla TARJETAS

Servicio Utilizado

ITarjetasFotoService - Servicio para la gestión de fotos de tarjetas
  • GetTarjetaFoto(): Obtiene la imagen de una tarjeta específica
  • AddTarjetaFoto(): Crea una nueva imagen de tarjeta
  • UpdateTarjetaFoto(): Actualiza la imagen de una tarjeta
  • DeleteTarjetaFoto(): Elimina la imagen de una tarjeta

Casos de Uso

🎯 Escenarios Comunes

  • Subida de imágenes de tarjetas: Agregar imágenes para identificación visual
  • Actualización de diseño: Cambiar la imagen de una tarjeta existente
  • Eliminación de imágenes: Remover imágenes obsoletas o incorrectas
  • Consulta de imágenes: Recuperar imágenes para mostrar en la aplicación
  • Validación visual: Verificar la imagen de una tarjeta en transacciones
  • Gestión de diseño: Administrar diferentes versiones de diseño de tarjetas

⚠️ Consideraciones Técnicas

  • Tamaño de imagen: Se recomienda limitar el tamaño para optimizar rendimiento
  • Formato de imagen: Soporte para múltiples formatos (JPEG, PNG, etc.)
  • Compresión: Considerar comprimir imágenes antes de almacenar
  • Validación: Verificar que los datos binarios sean imágenes válidas
  • Rendimiento: Las imágenes grandes pueden afectar el rendimiento de la base de datos
  • Backup: Considerar estrategias de backup para datos binarios