import { platforms } from "@/data/platforms";
import type { Release, ReleaseStyle, ReleaseTheme } from "@/types";

const getPlatformUrl = (id: string) =>
  platforms.find((platform) => platform.id === id)?.url ?? "#";

const artistLinks = {
  spotifyUrl: getPlatformUrl("spotify"),
  appleMusicUrl: getPlatformUrl("appleMusic"),
  amazonMusicUrl: getPlatformUrl("amazonMusic"),
  deezerUrl: getPlatformUrl("deezer"),
  youtubeUrl: getPlatformUrl("youtube"),
  youtubeMusicUrl: getPlatformUrl("youtubeMusic"),
};

type ReleaseSeed = {
  title: string;
  slug: string;
  year?: string;
  description: string;
  excerpt: string;
  theme: ReleaseTheme;
  style: ReleaseStyle;
  reference: string;
  featured?: boolean;
};

const createRelease = (seed: ReleaseSeed): Release => ({
  title: seed.title,
  slug: seed.slug,
  cover: `/images/releases/${seed.slug}.webp`,
  releaseDate: seed.year ?? "2026",
  description: seed.description,
  lyricsExcerpt: seed.excerpt,
  featured: seed.featured ?? false,
  theme: seed.theme,
  style: seed.style,
  biblicalReference: seed.reference,
  ...artistLinks,
});

export const releases: Release[] = [
  createRelease({
    title: "Mesmo no Silêncio",
    slug: "mesmo-no-silencio",
    description:
      "Uma canção sobre confiar quando Deus parece em silêncio, reconhecendo que a pausa também pode carregar propósito.",
    excerpt:
      "Nem todo silêncio é ausência. Deus trabalha no secreto e cumpre no tempo certo.",
    theme: "Perseverança",
    style: "Trap gospel",
    reference: "Salmos 46:10",
    featured: true,
  }),
  createRelease({
    title: "Se Deus Falou, Vai Acontecer",
    slug: "se-deus-falou-vai-acontecer",
    description:
      "Fé em movimento para lembrar que nenhuma promessa de Deus perde força com o tempo.",
    excerpt: "A promessa não depende do cenário. Se Deus falou, Ele sustenta.",
    theme: "Fé",
    style: "Trap gospel",
    reference: "Números 23:19",
  }),
  createRelease({
    title: "Você Não Chegou Até Aqui Sozinho",
    slug: "voce-nao-chegou-ate-aqui-sozinho",
    description:
      "Um testemunho sobre a presença de Cristo em cada passo, inclusive nos caminhos que pareciam solitários.",
    excerpt: "Jesus esteve em cada passo. A graça também escreveu o caminho.",
    theme: "Testemunho",
    style: "Worship urbano",
    reference: "Isaías 41:10",
  }),
  createRelease({
    title: "Trinta Moedas",
    slug: "trinta-moedas",
    description:
      "Uma faixa confrontadora sobre valor, lealdade e as pequenas trocas que podem afastar o coração de Cristo.",
    excerpt: "Por quanto você está trocando Ele?",
    theme: "Confronto",
    style: "Trap gospel",
    reference: "Mateus 26:14–16",
  }),
  createRelease({
    title: "Cura da Alma",
    slug: "cura-da-alma",
    description:
      "Uma narrativa sobre feridas invisíveis, restauração e a luz de Deus atravessando aquilo que parecia quebrado.",
    excerpt: "Deus não descarta vasos feridos. Ele restaura por dentro.",
    theme: "Graça",
    style: "Reflexiva",
    reference: "Salmos 147:3",
  }),
  createRelease({
    title: "Cordeiro Santo",
    slug: "cordeiro-santo",
    description:
      "Adoração cristocêntrica sobre o sacrifício perfeito, o perdão e a vitória definitiva da cruz.",
    excerpt: "O Cordeiro venceu. O preço foi pago e a graça abriu o caminho.",
    theme: "Salvação",
    style: "Worship urbano",
    reference: "João 1:29",
  }),
  createRelease({
    title: "Deus Tornou em Bem",
    slug: "deus-tornou-em-bem",
    description:
      "Inspirada na história de José, a faixa fala sobre redenção, processo e a soberania de Deus sobre o mal.",
    excerpt: "O que tentaram usar para ferir, Deus transformou em testemunho.",
    theme: "Testemunho",
    style: "Rap cristão",
    reference: "Gênesis 50:20",
  }),
  createRelease({
    title: "Você Aguenta a Verdade?",
    slug: "voce-aguenta-a-verdade",
    description:
      "Uma convocação à honestidade bíblica, ao arrependimento e a uma fé que não foge do confronto.",
    excerpt: "A verdade pode confrontar antes de libertar.",
    theme: "Confronto",
    style: "Rap cristão",
    reference: "João 8:32",
  }),
  createRelease({
    title: "Nome Acima de Tudo",
    slug: "nome-acima-de-tudo",
    description:
      "Uma declaração direta sobre a supremacia de Jesus e a centralidade do Seu nome em toda a história.",
    excerpt: "Todo joelho se dobra diante do nome que permanece acima de tudo.",
    theme: "Adoração",
    style: "Worship urbano",
    reference: "Filipenses 2:9–11",
  }),
  createRelease({
    title: "A Presença É o Ouro",
    slug: "a-presenca-e-o-ouro",
    description:
      "Uma reflexão sobre aquilo que realmente tem valor quando sucesso, dinheiro e aparência perdem o brilho.",
    excerpt: "Sem a presença, todo ouro é pouco.",
    theme: "Adoração",
    style: "Trap gospel",
    reference: "Êxodo 33:15",
  }),
  createRelease({
    title: "Quando o Louvor Vira Arma",
    slug: "quando-o-louvor-vira-arma",
    description:
      "Uma faixa intensa sobre batalhas vencidas em adoração e fé, com a Palavra acima do medo.",
    excerpt: "Há guerras em que a primeira linha é formada por adoradores.",
    theme: "Fé",
    style: "Rap cristão",
    reference: "2 Crônicas 20:21–22",
  }),
  createRelease({
    title: "Reino Eterno",
    slug: "reino-eterno",
    description:
      "Uma visão de esperança sobre o governo de Cristo, um Reino que não se abala nem conhece fim.",
    excerpt: "Os impérios passam. O Reino de Cristo permanece.",
    theme: "Adoração",
    style: "Worship urbano",
    reference: "Daniel 7:14",
  }),
  createRelease({
    title: "Plano Perfeito",
    slug: "plano-perfeito",
    description:
      "Uma canção sobre caminhar pela fé quando o mapa ainda não está completo e a direção vem da Palavra.",
    excerpt: "O caminho pode surpreender. O Autor nunca perde o controle.",
    theme: "Propósito",
    style: "Trap gospel",
    reference: "Jeremias 29:11",
  }),
  createRelease({
    title: "Fogo Consumidor",
    slug: "fogo-consumidor",
    description:
      "Uma oração por purificação, entrega e transformação diante da santidade de Deus.",
    excerpt: "Que o fogo consuma o orgulho e preserve o que nasceu no altar.",
    theme: "Adoração",
    style: "Trap gospel",
    reference: "Hebreus 12:29",
  }),
  createRelease({
    title: "Coração Endurecido",
    slug: "coracao-endurecido",
    description:
      "Uma advertência sobre resistência, orgulho e o risco de ouvir a verdade sem permitir que ela transforme.",
    excerpt: "O coração que rejeita a voz de Deus acaba prisioneiro de si mesmo.",
    theme: "Confronto",
    style: "Rap cristão",
    reference: "Êxodo 8:15",
  }),
  createRelease({
    title: "Ele Veio",
    slug: "ele-veio",
    description:
      "Uma celebração da encarnação: o Deus eterno entrou na história, aproximou-se e trouxe salvação.",
    excerpt: "A esperança ganhou rosto. A Palavra habitou entre nós.",
    theme: "Salvação",
    style: "Worship urbano",
    reference: "João 1:14",
  }),
  createRelease({
    title: "A Noite em que Meu Nome Mudou",
    slug: "a-noite-em-que-meu-nome-mudou",
    description:
      "Uma narrativa inspirada em Jacó sobre luta, identidade e o encontro que redefine uma vida inteira.",
    excerpt: "Há encontros com Deus dos quais ninguém sai com o mesmo nome.",
    theme: "Identidade",
    style: "Trap gospel",
    reference: "Gênesis 32:28",
  }),
  createRelease({
    title: "Sangue na Porta",
    slug: "sangue-na-porta",
    description:
      "Uma composição sobre proteção, aliança e a redenção anunciada desde o Êxodo.",
    excerpt: "O sinal na porta apontava para um Cordeiro maior.",
    theme: "Salvação",
    style: "Rap cristão",
    reference: "Êxodo 12:13",
  }),
  createRelease({
    title: "Jesus Vem",
    slug: "jesus-vem",
    description:
      "Uma canção de esperança e vigilância sobre a promessa da volta de Cristo.",
    excerpt: "A noite não é eterna. O Rei vem.",
    theme: "Fé",
    style: "Worship urbano",
    reference: "Apocalipse 22:20",
  }),
  createRelease({
    title: "Voz no Silêncio",
    slug: "voz-no-silencio",
    description:
      "Uma faixa sobre reconhecer a presença de Deus em meio ao ruído interno, à perda e à reconstrução.",
    excerpt: "Quando tudo cala, a graça ainda sabe chamar pelo nome.",
    theme: "Perseverança",
    style: "Reflexiva",
    reference: "1 Reis 19:12",
  }),
  createRelease({
    title: "Selado",
    slug: "selado",
    description:
      "Uma declaração sobre pertencimento, identidade e a marca de uma aliança que não depende da aprovação humana.",
    excerpt: "Pertencemos a Cristo. A identidade está selada.",
    theme: "Identidade",
    style: "Trap gospel",
    reference: "Efésios 1:13",
  }),
  createRelease({
    title: "Em Meio à Tempestade",
    slug: "em-meio-a-tempestade",
    description:
      "Uma travessia musical sobre permanecer firme quando as ondas crescem e o horizonte desaparece.",
    excerpt: "A tempestade faz barulho. A voz de Jesus continua tendo autoridade.",
    theme: "Perseverança",
    style: "Trap gospel",
    reference: "Marcos 4:39",
  }),
  createRelease({
    title: "Coluna de Fogo",
    slug: "coluna-de-fogo",
    description:
      "Uma faixa sobre direção divina em territórios incertos e presença no meio do deserto.",
    excerpt: "No deserto, a presença não apenas acompanha: ela guia.",
    theme: "Fé",
    style: "Rap cristão",
    reference: "Êxodo 13:21",
  }),
  createRelease({
    title: "Casa Debaixo da Graça",
    slug: "casa-debaixo-da-graca",
    description:
      "Uma canção sobre família, aliança e a cobertura de Deus nos detalhes da vida comum.",
    excerpt: "Uma casa firmada na graça aprende a permanecer.",
    theme: "Graça",
    style: "Worship urbano",
    reference: "Josué 24:15",
  }),
  createRelease({
    title: "Embaixadores",
    slug: "embaixadores",
    description:
      "Uma chamada à missão para quem representa um Reino eterno em cada território e linguagem.",
    excerpt: "Carregamos uma mensagem maior do que nós.",
    theme: "Propósito",
    style: "Rap cristão",
    reference: "2 Coríntios 5:20",
  }),
  createRelease({
    title: "Vem Como Estás",
    slug: "vem-como-estas",
    description:
      "Um convite à graça para quem pensa que precisa primeiro consertar tudo antes de se aproximar.",
    excerpt: "A graça recebe como estamos e não nos deixa como éramos.",
    theme: "Graça",
    style: "Reflexiva",
    reference: "Mateus 11:28",
  }),
  createRelease({
    title: "Vida em Abundância",
    slug: "vida-em-abundancia",
    description:
      "Uma declaração de liberdade e plenitude sobre a vida que Cristo oferece além da sobrevivência.",
    excerpt: "Em Cristo, existir deixa de ser prisão e se torna propósito.",
    theme: "Salvação",
    style: "Rap cristão",
    reference: "João 10:10",
  }),
  createRelease({
    title: "Chamado nas Águas",
    slug: "chamado-nas-aguas",
    description:
      "Uma narrativa sobre chamado, preservação e o propósito de Deus antes mesmo de entendermos o caminho.",
    excerpt: "O rio não levou a promessa. Apenas a conduziu ao lugar certo.",
    theme: "Propósito",
    style: "Reflexiva",
    reference: "Êxodo 2:3–10",
  }),
  createRelease({
    title: "Daniel 3",
    slug: "daniel-3",
    description:
      "Uma faixa sobre fidelidade no fogo e a presença do quarto homem quando a pressão chega ao limite.",
    excerpt: "O fogo não teve a palavra final. Havia outro no meio da fornalha.",
    theme: "Perseverança",
    style: "Rap cristão",
    reference: "Daniel 3:25",
  }),
  createRelease({
    title: "Até o Galo Cantar",
    slug: "ate-o-galo-cantar",
    description:
      "Uma reflexão sobre queda, medo e restauração a partir da história de Pedro.",
    excerpt: "A negação não foi o último capítulo. A graça ainda tinha uma pergunta.",
    theme: "Graça",
    style: "Reflexiva",
    reference: "Lucas 22:61–62",
  }),
  createRelease({
    title: "Não Vivo Mais pra Mim",
    slug: "nao-vivo-mais-pra-mim",
    year: "2025",
    description:
      "Uma declaração de entrega sobre deixar o ego no centro e viver a nova identidade em Cristo.",
    excerpt: "Já não vivo para o que fui. Cristo redefine o centro.",
    theme: "Identidade",
    style: "Worship urbano",
    reference: "Gálatas 2:20",
  }),
  createRelease({
    title: "Filho, Não Escravo",
    slug: "filho-nao-escravo",
    year: "2025",
    description:
      "Uma faixa sobre adoção, liberdade e a identidade que substitui medo por pertencimento.",
    excerpt: "Eu não sou escravo. Eu sou filho.",
    theme: "Identidade",
    style: "Trap gospel",
    reference: "Gálatas 4:7",
  }),
  createRelease({
    title: "Uma Só História",
    slug: "uma-so-historia",
    year: "2025",
    description:
      "Uma visão panorâmica da Bíblia como uma única narrativa de criação, queda, redenção e restauração.",
    excerpt: "Do início ao fim, é Deus falando.",
    theme: "Fé",
    style: "Rap cristão",
    reference: "2 Timóteo 3:16",
  }),
  createRelease({
    title: "Gratidão Mesmo Sem Entender",
    slug: "gratidao-mesmo-sem-entender",
    year: "2025",
    description:
      "Uma canção sobre agradecer sem possuir todas as respostas e confiar no caráter de Deus.",
    excerpt: "A gratidão também é fé quando a explicação ainda não chegou.",
    theme: "Fé",
    style: "Reflexiva",
    reference: "1 Tessalonicenses 5:18",
  }),
  createRelease({
    title: "Vida Consagrada",
    slug: "vida-consagrada",
    year: "2025",
    description:
      "Uma entrega musical sobre viver para a glória de Deus com integridade no secreto e no público.",
    excerpt: "Minha vida é dEle. Toda honra e glória pertencem a Deus.",
    theme: "Adoração",
    style: "Trap gospel",
    reference: "Romanos 12:1",
  }),
  createRelease({
    title: "Água e Fogo",
    slug: "agua-e-fogo",
    year: "2025",
    description:
      "Uma composição sobre batismo, transformação e uma nova identidade que nasce em Cristo.",
    excerpt: "Morte para o velho. Renovo no coração.",
    theme: "Salvação",
    style: "Trap gospel",
    reference: "Romanos 6:4",
  }),
  createRelease({
    title: "Luz na Quebrada",
    slug: "luz-na-quebrada",
    year: "2025",
    description:
      "Funk gospel urbano sobre levar esperança, verdade e propósito para dentro da realidade cotidiana.",
    excerpt: "Coração blindado. Mente no Reino. Luz onde a noite pesa.",
    theme: "Propósito",
    style: "Funk gospel",
    reference: "Mateus 5:14",
  }),
  createRelease({
    title: "Os 12",
    slug: "os-12",
    year: "2025",
    description:
      "Uma faixa sobre pessoas comuns chamadas, transformadas e enviadas para impactar o mundo.",
    excerpt: "Chamados. Transformados. Enviados.",
    theme: "Propósito",
    style: "Rap cristão",
    reference: "Marcos 3:14",
  }),
  createRelease({
    title: "Nascer de Novo",
    slug: "nascer-de-novo",
    year: "2025",
    description:
      "Uma narrativa de transformação sobre abandonar velhas correntes e receber uma vida renovada.",
    excerpt: "É um novo viver. É transformação.",
    theme: "Salvação",
    style: "Trap gospel",
    reference: "João 3:3",
  }),
  createRelease({
    title: "Não Existe Pecadinho",
    slug: "nao-existe-pecadinho",
    year: "2025",
    description:
      "Uma faixa direta sobre autoengano, responsabilidade e a graça que começa pela verdade.",
    excerpt: "A verdade liberta. O perdão transforma.",
    theme: "Confronto",
    style: "Trap gospel",
    reference: "Salmos 139:23–24",
  }),
];

export const featuredRelease =
  releases.find((release) => release.featured) ?? releases[0];

export const releaseStyles = Array.from(
  new Set(releases.map((release) => release.style)),
);

export const releaseThemes = Array.from(
  new Set(releases.map((release) => release.theme)),
);

export const releaseYears = Array.from(
  new Set(releases.map((release) => release.releaseDate)),
).sort((a, b) => Number(b) - Number(a));

export function getRelease(slug: string) {
  return releases.find((release) => release.slug === slug);
}
