import type { FrontendSettings } from '@n8n/api-types';

export const defaultSettings: FrontendSettings = {
	ai: {
		allowSendingParameterValues: true,
	},
	inE2ETests: false,
	databaseType: 'sqlite',
	isDocker: false,
	pruning: {
		isEnabled: false,
		maxAge: 0,
		maxCount: 0,
	},
	allowedModules: {},
	communityNodesEnabled: false,
	unverifiedCommunityNodesEnabled: true,
	communityNodesManagedByEnv: false,
	defaultLocale: '',
	endpointForm: '',
	endpointFormTest: '',
	endpointFormWaiting: '',
	endpointMcp: '',
	endpointMcpTest: '',
	endpointWebhook: '',
	endpointWebhookTest: '',
	endpointWebhookWaiting: '',
	endpointHealth: '/healthz',
	enterprise: {
		sharing: false,
		ldap: false,
		oidc: false,
		saml: false,
		mfaEnforcement: false,
		logStreaming: false,
		debugInEditor: false,
		advancedExecutionFilters: false,
		variables: false,
		sourceControl: false,
		auditLogs: false,
		showNonProdBanner: false,
		binaryDataS3: false,
		externalSecrets: false,
		workerView: false,
		advancedPermissions: false,

		workflowDiffs: false,
		namedVersions: false,
		provisioning: true,
		projects: {
			team: {
				limit: 1,
			},
		},
		customRoles: false,
		personalSpacePolicy: false,
		dataRedaction: false,
		otelCustomSpanAttributes: false,
		workflowReviews: false,
	},
	executionMode: 'regular',
	isMultiMain: false,
	executionTimeout: 0,
	hideUsagePage: false,
	hiringBannerEnabled: false,
	instanceId: '',
	license: { environment: 'development', consumerId: 'unknown' },
	logLevel: 'info',
	maxExecutionTimeout: 0,
	oauthCallbackUrls: { oauth1: '', oauth2: '' },
	jwksUri: '',
	personalizationSurveyEnabled: false,
	releaseChannel: 'stable',
	posthog: {
		apiHost: '',
		apiKey: '',
		autocapture: false,
		debug: false,
		disableSessionRecording: false,
		enabled: false,
		proxy: '',
	},
	publicApi: {
		enabled: false,
		latestVersion: 0,
		path: '',
		swaggerUi: { enabled: false },
	},
	pushBackend: 'websocket',
	saveDataErrorExecution: 'all',
	saveDataSuccessExecution: 'all',
	saveManualExecutions: false,
	saveExecutionProgress: false,
	sso: {
		managedByEnv: false,
		ldap: { loginEnabled: false, loginLabel: '' },
		saml: { loginEnabled: false, loginLabel: '' },
		oidc: { loginEnabled: false, loginUrl: '', callbackUrl: '' },
	},
	logStreaming: {
		managedByEnv: false,
	},
	telemetry: {
		enabled: false,
	},
	templates: { enabled: false, host: '' },
	timezone: '',
	urlBaseEditor: '',
	urlBaseWebhook: '',
	urlBaseWebhookTest: '',
	authCookie: {
		secure: false,
	},
	userManagement: {
		showSetupOnFirstLoad: false,
		smtpSetup: true,
		authenticationMethod: 'email',
		quota: 10,
		passwordMinLength: 8,
	},
	versionCli: '',
	nodeJsVersion: '',
	nodeEnv: '',
	concurrency: -1,
	evaluationConcurrencyLimit: -1,
	versionNotifications: {
		enabled: true,
		endpoint: '',
		infoUrl: '',
		whatsNewEnabled: true,
		whatsNewEndpoint: '',
	},
	dataTables: {
		maxSize: 0,
	},
	workflowCallerPolicyDefaultOption: 'any',
	excludeNodes: [],
	workflowTagsDisabled: false,
	workflowsAutosaveDisabled: false,
	variables: {
		limit: -1,
	},
	deployment: {
		type: 'default',
	},
	banners: {
		dismissed: [],
	},
	binaryDataMode: 'default',
	previewMode: false,
	mfa: {
		enabled: false,
		enforced: false,
	},
	askAi: {
		enabled: false,
	},
	aiBuilder: {
		enabled: false,
		setup: false,
	},
	workflowHistory: {
		pruneTime: 0,
		licensePruneTime: 0,
	},
	security: {
		blockFileAccessToN8nFiles: false,
		postMessageAllowedOrigins: [],
	},
	aiAssistant: {
		enabled: false,
		setup: false,
	},
	aiCredits: {
		enabled: false,
		credits: 0,
		setup: false,
	},
	easyAIWorkflowOnboarded: false,
	folders: {
		enabled: false,
	},
	workerPools: {
		enabled: false,
	},
	collaboration: {
		crdt: 'off',
	},
	evaluation: {
		quota: 0,
		collectionsEnabled: false,
		configEvalsEnabled: false,
		agentEvalsEnabled: false,
	},
	activeModules: [],
	canvasOnly: false,
	envFeatureFlags: {},
	dynamicBanners: {
		endpoint: 'https://api.n8n.io/api/banners',
		enabled: true,
		filters: {
			publishedWorkflowCount: 0,
		},
	},
	useWorkflowPublicationService: false,
};
