import type { RowDataPacket } from 'mysql2'
import { db, DB } from './db'

/**
 * Creador de contenido destacado (`contentcreator`, el menú VIDEOS).
 *
 * Como en Django, se muestra SOLO el primero: la tabla se maneja desde el admin
 * y ahora mismo está vacía, así que la página enseña el aviso de "no hay
 * información" igual que hacía Django.
 */
export interface ContentCreator {
  title: string
  /** HTML de CKEditor. Se sanea antes de pintarlo (ver la página). */
  description: string
  contentType: string
  subtitle: string
  youtubeVideoUrl: string | null
  avatarImageUrl: string | null
  youtubeChannelUrl: string | null
  facebookPageUrl: string | null
}

export async function getContentCreator(): Promise<ContentCreator | null> {
  try {
    const [rows] = await db(DB.default).query<RowDataPacket[]>(
      `SELECT title, description, content_type, subtitle, youtube_video_url,
              avatar_image_url, youtube_channel_url, facebook_page_url
         FROM contentcreator ORDER BY id LIMIT 1`,
    )
    const r = rows[0]
    if (!r) return null
    return {
      title: String(r.title),
      description: String(r.description ?? ''),
      contentType: String(r.content_type ?? ''),
      subtitle: String(r.subtitle ?? ''),
      youtubeVideoUrl: r.youtube_video_url ?? null,
      avatarImageUrl: r.avatar_image_url ?? null,
      youtubeChannelUrl: r.youtube_channel_url ?? null,
      facebookPageUrl: r.facebook_page_url ?? null,
    }
  } catch {
    return null
  }
}
