import { Empresa } from './empresa'; import { Persona } from './persona'; import { Movimiento } from './movimiento'; import { RatingResumen } from './ratingResumen'; import { Responsable } from './responsable'; import { TipoReserva } from './tipoReserva'; import { EstadoReserva } from './estadoReserva'; /** * Modela la reservacion de un evento! */ export interface Reserva { responsable?: Responsable; /** * Datos de las personas. */ personas?: Array; /** * Comentario de la reserva. */ comentario?: string; /** * El identificador de la reserva. */ readonly id?: string; /** * La empresa id del evento. */ readonly empresa?: string; /** * El numero de cupos a reservar del evento. Su sumatoria influye en la cantidad de cupos que tiene el evento. */ cupos?: number; tipo?: TipoReserva; /** * Especifica el id evento o activividad que se quiere reservar. */ readonly refId?: string; /** * Especifica la programacion. */ readonly programacion?: string; /** * Referencia al objeto de la reserva. */ readonly ref?: object; refEmpresa?: Empresa; /** * Especifica la fecha del evento o programacion de la actividad. */ readonly refFecha?: Date; /** * Especifica la finalizacion del evento o programacion de la actividad. */ readonly refFinalizacion?: Date; refRating?: RatingResumen; readonly refStatus?: string; /** * Marca para indicar que fue rated el evento o progrmacion asociado a esta actividad. */ readonly rated?: boolean; readonly movimientos?: Array; /** * El monto a pagar por la reserva individualmente por cada persona, es el costo del evento o actividad. */ readonly montoIndividual?: number; /** * El monto a pagar por la reserva, es el costo del evento por el numero de cupos de la reserva. */ readonly montoTotal?: number; /** * El monto pagado de la reserva. */ readonly montoAbonado?: number; /** * Fecha de creacion de la reserva. */ readonly createdAt?: Date; /** * Especifica la fecha de la ultima modificacion de l reserva. */ readonly updatedAt?: Date; /** * Especifica la fecha de la cancelacion del evento */ readonly canceledAt?: Date; readonly estado?: EstadoReserva; /** * Fecha en la que una pre reserva es eliminada. Debe estar asociada al estado PRE, Y no puede haber reservas con otro estado, y un expiraEn. */ expireAt?: Date; /** * Especifica algunos tags o etiquetas asociados a esta reserva. */ readonly tags?: Array; /** * Especifica un codigo unico para la reserva dentro de la empresa. */ readonly codigo?: number; }