/**
 * Shared trait catalog and package definitions.
 * Used by collection/new (package selector) and TraitAdmin (trait management).
 */

export interface TraitCategory {
	label: string;
	traits: string[];
}

export const traitCatalog: TraitCategory[] = [
	{ label: 'Innhold & redigering', traits: ['editor', 'versioning', 'collaboration', 'translation', 'templates'] },
	{ label: 'Publisering & distribusjon', traits: ['publishing', 'rss', 'newsletter', 'custom_domain', 'analytics', 'embed', 'api'] },
	{ label: 'Lyd & video', traits: ['podcast', 'recording', 'transcription', 'tts', 'clips', 'playlist'] },
	{ label: 'Kommunikasjon', traits: ['chat', 'forum', 'comments', 'guest_input', 'announcements', 'polls', 'qa'] },
	{ label: 'Organisering', traits: ['kanban', 'calendar', 'timeline', 'table', 'gallery', 'bookmarks', 'tags'] },
	{ label: 'Kunnskap', traits: ['knowledge_graph', 'mindmap', 'wiki', 'glossary', 'faq', 'bibliography'] },
	{ label: 'Automatisering & AI', traits: ['auto_tag', 'auto_summarize', 'digest', 'bridge', 'moderation'] },
	{ label: 'Tilgang & fellesskap', traits: ['membership', 'roles', 'invites', 'paywall', 'directory'] },
	{ label: 'Ekstern integrasjon', traits: ['webhook', 'import', 'export', 'ical_sync'] },
];

export interface Package {
	id: string;
	name: string;
	description: string;
	icon: string;
	traits: Record<string, Record<string, unknown>>;
}

export const packages: Package[] = [
	{
		id: 'nettmagasin',
		name: 'Nettmagasin',
		description: 'Publiser artikler med RSS, kommentarer og nyhetsbrev',
		icon: '📰',
		traits: {
			editor: { preset: 'longform' },
			publishing: {},
			rss: {},
			comments: {},
			analytics: {},
			custom_domain: {},
			newsletter: {},
		},
	},
	{
		id: 'podcaststudio',
		name: 'Podcaststudio',
		description: 'Podcast med opptak, transkripsjon og kunnskapsgraf',
		icon: '🎙️',
		traits: {
			podcast: {},
			recording: {},
			transcription: {},
			editor: { preset: 'shownotes' },
			rss: {},
			analytics: {},
			clips: {},
			knowledge_graph: {},
			mindmap: { default_depth: 2, layout: 'radial' },
		},
	},
	{
		id: 'nyhetsbrev',
		name: 'Nyhetsbrev',
		description: 'Skriv og distribuer nyhetsbrev med analyse',
		icon: '✉️',
		traits: {
			editor: { preset: 'longform' },
			newsletter: {},
			analytics: {},
			versioning: {},
		},
	},
	{
		id: 'wiki',
		name: 'Wiki',
		description: 'Samarbeidende kunnskapsbase med versjonering',
		icon: '📚',
		traits: {
			wiki: {},
			editor: { preset: 'longform' },
			collaboration: {},
			versioning: {},
			knowledge_graph: {},
			mindmap: { default_depth: 2, layout: 'tree' },
			glossary: {},
		},
	},
	{
		id: 'diskusjonsklubb',
		name: 'Diskusjonsklubb',
		description: 'Forum, chat og avstemninger for en gruppe',
		icon: '💬',
		traits: {
			forum: {},
			chat: {},
			polls: {},
			membership: {},
			roles: {},
			directory: {},
		},
	},
	{
		id: 'kursplattform',
		name: 'Kursplattform',
		description: 'Kursinnhold med spillelister, Q&A og betaling',
		icon: '🎓',
		traits: {
			editor: { preset: 'longform' },
			playlist: {},
			qa: {},
			membership: {},
			paywall: {},
			templates: {},
		},
	},
	{
		id: 'moteplass',
		name: 'Møteplass',
		description: 'Opptak, chat, kanban og kalender for møter',
		icon: '🤝',
		traits: {
			recording: {},
			chat: {},
			kanban: {},
			calendar: {},
			auto_summarize: {},
			guest_input: {},
		},
	},
	{
		id: 'fotoblogg',
		name: 'Fotoblogg',
		description: 'Bildegalleri med publisering og kommentarer',
		icon: '📷',
		traits: {
			gallery: {},
			publishing: {},
			comments: {},
			custom_domain: {},
			rss: {},
		},
	},
	{
		id: 'prosjektstyring',
		name: 'Prosjektstyring',
		description: 'Kanban, kalender og chat for teamarbeid',
		icon: '📋',
		traits: {
			kanban: {},
			calendar: {},
			chat: {},
			table: {},
			tags: {},
			roles: {},
		},
	},
	{
		id: 'forskning',
		name: 'Åpen forskning',
		description: 'Akademisk publisering med versjonering og bibliografi',
		icon: '🔬',
		traits: {
			editor: { preset: 'longform' },
			versioning: {},
			bibliography: {},
			publishing: {},
			comments: {},
			collaboration: {},
			api: {},
		},
	},
	{
		id: 'community-radio',
		name: 'Community radio',
		description: 'Opptak, podcast, chat og avstemninger',
		icon: '📻',
		traits: {
			recording: {},
			podcast: {},
			chat: {},
			polls: {},
			membership: {},
			clips: {},
			playlist: {},
		},
	},
	{
		id: 'bokmerke-vegg',
		name: 'Bokmerke-vegg',
		description: 'Kuraterte lenker med tags og kommentarer',
		icon: '🔖',
		traits: {
			bookmarks: {},
			tags: {},
			publishing: {},
			rss: {},
			comments: {},
		},
	},
	{
		id: 'redaksjon',
		name: 'Redaksjon',
		description: 'Redaksjonelt arbeid med chat, kanban og kalender',
		icon: '🗞️',
		traits: {
			chat: {},
			kanban: {},
			calendar: {},
			editor: { preset: 'longform' },
			knowledge_graph: {},
			guest_input: {},
		},
	},
];
