Skip to main content

Recurso

Entidad de Dominio: Resource

Archivo: models-domains/Resource.md

Este documento define la entidad de dominio Resource, sus propiedades, su propósito dentro del sistema y sus relaciones clave con otras entidades. Sirve como la fuente principal de verdad para la estructura de datos relacionada con los recursos disponibles para reserva.


1. Propósito de la Entidad

La entidad Resource representa un bien o servicio individual disponible para ser reservado o utilizado por los clientes en el sistema. Su propósito es centralizar toda la información relevante de cada recurso, como sus detalles descriptivos, disponibilidad actual y precio, permitiendo a los usuarios visualizar y gestionar lo que se puede reservar.


2. Propiedades y Atributos

A continuación, se detallan las propiedades de la entidad Resource, incluyendo su tipo de dato conceptual y una descripción clara de su propósito.

PropiedadesTipo de Dato (conceptual)Descripción
IdUUID (o int si es identidad generada por DB)Identificador único para cada recurso.
CategoryIdUUID (o int)Clave foránea (FK) a la entidad Category, indicando a qué categoria pertenece este recurso.
StatusIdint (o Enum)Clave foránea (FK) a la entidad StatusResource (o valor de enum), relacionando el estado actual del recurso (ej. Disponible, Bloqueado, FueraDeServicio, Eliminado).
NamestringNombre corto o título identificador del recurso.
DescriptionstringDescripción detallada del recurso, sus características o funcionalidades.
AvailableQuantityintNúmero de unidades de este recurso que están actualmente disponibles para ser reservadas.
UnitPriceDecimal(numeric)Precio por una unidad de este recurso al momento de la consulta.
AuthorizationTypeEnum (int)Define si la reserva de este recurso se autoriza automáticamente o requiere revisión y aprobación manual por un administrador. Los valores posibles se definen en el enum TypeAuthorization en el código (ej. automatico=1, manual=2).
LocationIdUUID (o int)Clave foránea (FK) a la entidad Location (Direccion) donde se almacena el recurso.
CreatedByUserIdUUID (o int)Clave foránea (FK) a la entidad User (Usuario) quien realiza el registro de la direccion.
CreatedAtDateTimeMarca de tiempo que registra cuándo se creó la reserva.

Nota sobre Imágenes: Las imágenes asociadas a los recursos se almacenan de forma distinta, típicamente en un servicio de almacenamiento de archivos (como Azure Blob Storage, AWS S3) y se referencian mediante URLs. Esta entidad Resource contendría los metadatos de las imágenes o un enlace a la URL principal.