import { Document } from 'mongoose'; import { IRoomType, IRoomTypeSchema } from './room-type.interface'; import { IUser } from './user.interface'; import { IGeolocation, IGeolocationInput } from '../common/geolocation.interface'; interface IRoomSchema { name: string; geolocation: IGeolocation; active: boolean; createdAt: Date; createdBy: string; updatedAt?: Date; updatedBy?: string; deletedAt?: Date; deletedBy?: string; } interface IRoomTypeValueSchema { roomTypeId: string; roomType: IRoomTypeSchema; key: string; value: string; } export interface IRoomTypeValue { _id?: string; roomTypeId: string; roomType: IRoomType; key: string; value: string; } export interface IRoomModel extends Document, IRoomSchema { types: IRoomTypeValueSchema[]; } export interface IRoom extends IRoomSchema { _id?: string; types: IRoomTypeValue[]; users: IUser[]; } export interface IRoomInput { name: string; types: IRoomTypeValueInput[]; geolocation?: IGeolocationInput; active?: boolean; } export interface IRoomTypeValueInput extends IRoomTypeValueSchema { } export interface IRoomFilter { _id?: string; name?: string; type?: IRoomTypeValueFilter; active?: boolean; } export interface IRoomTypeValueFilter { key: string; value: string; } export {};