"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.cliterConfig = void 0;
const path = require("node:path");
exports.cliterConfig = {
    // front
    dashboardContainer: path.join('app', 'modules', 'admin', 'apps'),
    adminContainer: path.join('app', 'modules', 'admin'),
    dashboardTranslations: path.join('assets', 'i18n'),
    // back
    appContainer: '@app',
    apiContainer: '@api',
    auroraLocalPackage: '@aurora',
    auroraCorePackage: '@aurora-ts/core',
    configYamlVersion: '0.0.1',
    lockJsonVersion: '0.0.1',
    schemaDefinitionExtension: '.aurora.yaml',
    timestampFields: ['createdAt', 'updatedAt', 'deletedAt'],
    deletedAtField: ['deletedAt'],
    sqlTypesEquivalenceDashboardColumnDataTypes: {
        'bigint.unsigned': 'NUMBER',
        'blob.long': 'BINARY',
        'blob.medium': 'BINARY',
        'blob.tiny': 'BINARY',
        'int.unsigned': 'NUMBER',
        'smallint.unsigned': 'NUMBER',
        'tinyint.unsigned': 'NUMBER',
        bigint: 'NUMBER',
        blob: 'BINARY',
        boolean: 'BOOLEAN',
        char: 'STRING',
        date: 'STRING',
        decimal: 'NUMBER',
        enum: 'STRING',
        float: 'NUMBER',
        id: 'STRING',
        int: 'NUMBER',
        json: '',
        manyToMany: '',
        password: 'STRING',
        smallint: 'NUMBER',
        text: 'STRING',
        timestamp: 'STRING',
        tinyint: 'NUMBER',
        varchar: 'STRING',
    },
    sqlTypesEquivalenceJavascriptTypes: {
        'bigint.unsigned': 'number',
        'blob.long': 'string',
        'blob.medium': 'string',
        'blob.tiny': 'string',
        'int.unsigned': 'number',
        'smallint.unsigned': 'number',
        'tinyint.unsigned': 'number',
        bigint: 'number',
        blob: 'string',
        boolean: 'boolean',
        char: 'string',
        date: 'string',
        decimal: 'number',
        enum: 'string',
        float: 'number',
        id: 'string',
        int: 'number',
        json: 'any',
        manyToMany: 'string[]',
        password: 'string',
        smallint: 'number',
        text: 'string',
        timestamp: 'string',
        tinyint: 'number',
        varchar: 'string',
    },
    sqlTypesEquivalenceJavascriptModelTypes: {
        'bigint.unsigned': 'number',
        'blob.long': 'Buffer',
        'blob.medium': 'Buffer',
        'blob.tiny': 'Buffer',
        'int.unsigned': 'number',
        'smallint.unsigned': 'number',
        'tinyint.unsigned': 'number',
        bigint: 'number',
        blob: 'Buffer',
        boolean: 'boolean',
        char: 'string',
        date: 'string',
        decimal: 'number',
        enum: 'string',
        float: 'number',
        id: 'string',
        int: 'number',
        json: 'any',
        manyToMany: 'string[]',
        password: 'string',
        smallint: 'number',
        text: 'string',
        timestamp: 'string',
        tinyint: 'number',
        varchar: 'string',
    },
    sqlTypesEquivalenceSwaggerTypes: {
        'bigint.unsigned': 'Number',
        'blob.long': 'String',
        'blob.medium': 'String',
        'blob.tiny': 'String',
        'int.unsigned': 'Number',
        'smallint.unsigned': 'Number',
        'tinyint.unsigned': 'Number',
        bigint: 'Number',
        blob: 'String',
        boolean: 'Boolean',
        char: 'String',
        date: 'String',
        decimal: 'Number',
        enum: 'String',
        float: 'Number',
        id: 'String',
        int: 'Number',
        json: 'Object',
        manyToMany: '[String]',
        password: 'String',
        smallint: 'Number',
        text: 'String',
        timestamp: 'String',
        tinyint: 'Number',
        varchar: 'String',
    },
    sqlTypesEquivalenceDtoTypes: {
        'bigint.unsigned': 'number',
        'blob.long': 'string',
        'blob.medium': 'string',
        'blob.tiny': 'string',
        'int.unsigned': 'number',
        'smallint.unsigned': 'number',
        'tinyint.unsigned': 'number',
        bigint: 'number',
        blob: 'string',
        boolean: 'boolean',
        char: 'string',
        date: 'string',
        decimal: 'number',
        enum: 'string',
        float: 'number',
        id: 'string',
        int: 'number',
        json: 'any',
        manyToMany: 'string[]',
        password: 'string',
        smallint: 'number',
        text: 'string',
        timestamp: 'string',
        tinyint: 'number',
        varchar: 'string',
    },
    sqlTypesEquivalenceQraphqlTypes: {
        'bigint.unsigned': 'GraphQLInt',
        'blob.long': 'GraphQLString',
        'blob.medium': 'GraphQLString',
        'blob.tiny': 'GraphQLString',
        'int.unsigned': 'GraphQLInt',
        'smallint.unsigned': 'GraphQLInt',
        'tinyint.unsigned': 'GraphQLInt',
        bigint: 'GraphQLInt',
        blob: 'GraphQLString',
        boolean: 'GraphQLBoolean',
        char: 'GraphQLString',
        date: 'GraphQLISODateTime',
        decimal: 'GraphQLFloat',
        enum: 'GraphQLString',
        float: 'GraphQLFloat',
        id: 'ID',
        int: 'GraphQLInt',
        json: 'JSON',
        manyToMany: '[ID]',
        password: 'GraphQLString',
        smallint: 'GraphQLInt',
        text: 'GraphQLString',
        timestamp: 'GraphQLTimestamp',
        tinyint: 'GraphQLInt',
        varchar: 'GraphQLString',
    },
    sqlTypesEquivalenceSequelizeTypes: {
        'bigint.unsigned': (length) => 'DataTypes.BIGINT.UNSIGNED',
        'blob.long': (length) => 'DataTypes.BLOB(\'long\')',
        'blob.medium': (length) => 'DataTypes.BLOB(\'medium\')',
        'blob.tiny': (length) => 'DataTypes.BLOB(\'tiny\')',
        'int.unsigned': (length) => 'DataTypes.INTEGER.UNSIGNED',
        'smallint.unsigned': (length) => 'DataTypes.SMALLINT.UNSIGNED',
        'tinyint.unsigned': (length) => 'DataTypes.TINYINT.UNSIGNED',
        bigint: (length) => 'DataTypes.BIGINT',
        blob: (length) => 'DataTypes.BLOB',
        boolean: (length) => 'DataTypes.BOOLEAN',
        char: (length) => `DataTypes.CHAR(${length === null || length === void 0 ? void 0 : length.toString()})`,
        date: (length) => 'DataTypes.DATE',
        decimal: (decimals) => `DataTypes.DECIMAL(${decimals.join(',')})`,
        enum: (values) => `DataTypes.ENUM(${values})`,
        float: (length) => 'DataTypes.FLOAT',
        id: (length) => 'DataTypes.UUID',
        int: (length) => 'DataTypes.INTEGER',
        json: (length) => 'DataTypes.JSON',
        password: (length) => `DataTypes.STRING(${length === null || length === void 0 ? void 0 : length.toString()})`,
        smallint: (length) => 'DataTypes.SMALLINT',
        text: (length) => 'DataTypes.TEXT',
        timestamp: (length) => 'DataTypes.DATE',
        tinyint: (length) => 'DataTypes.TINYINT',
        varchar: (length) => `DataTypes.STRING(${length === null || length === void 0 ? void 0 : length.toString()})`,
    },
    defaultTypeLength: {
        'bigint.unsigned': 20,
        'int.unsigned': 10,
        'smallint.unsigned': 6,
        'tinyint.unsigned': 2,
        bigint: 20,
        char: 127,
        int: 10,
        password: 255,
        smallint: 6,
        tinyint: 2,
        varchar: 255,
    },
    quotationTypes: {
        'bigint.unsigned': false,
        'blob.long': true,
        'blob.medium': true,
        'blob.tiny': true,
        'int.unsigned': false,
        'smallint.unsigned': false,
        'tinyint.unsigned': false,
        bigint: false,
        blob: true,
        boolean: false,
        char: true,
        date: true,
        decimal: false,
        enum: false,
        float: false,
        id: true,
        int: false,
        json: false,
        password: true,
        smallint: false,
        text: true,
        timestamp: true,
        tinyint: false,
        varchar: true,
    },
    fileTags: {
        ignoredFile: '8ca93fe73cc6e48cde17e74342122d3b86210ff5',
        ignoredGraphQLFile: '03b1aa4e5de61b13327591869a4c96d5f82de70c',
        ignoredHtmlFile: '4e6c548816bc0b2087633182f1e7e0f75ecba428', // <!-- ignored file --> (for HTML)
    },
    compareActions: {
        deleteOriginAndLoadNext: 'Delete origin file and load next',
        ignore: 'Ignore the file to be overwritten in future uploads',
        selectFile: 'Go to file selection',
        finish: 'Finish comparison and exit',
    },
    skipDirectories: ['node_modules', 'dist', 'coverage', 'cliter'],
    avoidOverwritingFilesIfExist: [
        path.join('back', '@app', 'index.ts'),
        path.join('back', '@api', '__bounded_context_name__.module.ts'),
        path.join('front', 'module', '__bounded_context_name__.navigation.ts'),
        path.join('front', 'module', '__bounded_context_name__.module.ts'),
        path.join('front', 'module', '__bounded_context_name__.routing.ts'),
        path.join('front', 'module', '__bounded_context_name__.types.ts'),
        path.join('front', 'module-translations', 'en.json'),
        path.join('front', 'module-translations', 'es.json'),
    ],
    allowedRenderExtensions: ['.ts', '.js', '.json', '.graphql', '.env', '.md', '.txt', '.htm', '.html', '.yaml'],
    platformFromDeploy: ['GitHub'],
    platformToDeploy: ['Azure', 'Google Cloud', 'On Premise'],
    serviceToDeploy: {
        back: {
            azure: ['App Service'],
            googleCloud: ['App Engine'],
            onPremise: ['Plesk'],
        },
        front: {
            googleCloud: ['App Engine'],
            onPremise: ['Plesk'],
        },
    },
    backPackages: [
        'auditing',
        'azureAd',
        'iam',
        'oAuth',
    ],
    frontPackages: [
        'auditing',
        'azureAd',
        'environments',
        'iam',
        'oAuth',
    ],
};
