import { SchemaType } from 'mongoose';
import { GtSchemaContainer } from '../../store';
import { GtColumnMetadata } from '../../metadata';
import { GtDocumentArrayPath } from './document-array-path';
import { GtMapPath } from './map';

export function createEmbeddedContainerForType(knownContainer: GtSchemaContainer, column: GtColumnMetadata): SchemaType {
  const newSchema = column.resolvedColumnType.reflectedType.tsType === Map
    ? new GtMapPath(knownContainer, column.key, column.schema.of)
    : new GtDocumentArrayPath(knownContainer, column.key, column.schema.type[0], column.schema)
  ;

  return newSchema;
}