feat: calendario liturgico en BD con API publica /calendario/hoy

This commit is contained in:
Tatiana Villa Ema 2026-04-27 22:26:51 +02:00
parent cebc164f54
commit 99770d952a
9 changed files with 479 additions and 21 deletions

View File

@ -1,14 +1,22 @@
package es.recursoscatolicos;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import es.recursoscatolicos.model.CalendarioLiturgico;
import es.recursoscatolicos.model.Grupo;
import es.recursoscatolicos.model.Parroquia;
import es.recursoscatolicos.repository.CalendarioLiturgicoRepository;
import es.recursoscatolicos.repository.GrupoRepository;
import es.recursoscatolicos.repository.ParroquiaRepository;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
@RequiredArgsConstructor
@Slf4j
@ -16,12 +24,16 @@ public class DataInitializer implements CommandLineRunner {
private final ParroquiaRepository parroquiaRepository;
private final GrupoRepository grupoRepository;
private final CalendarioLiturgicoRepository calendarioRepository;
@Override
public void run(String... args) {
if (parroquiaRepository.count() > 0) {
return; // Datos ya cargados
}
public void run(String... args) throws Exception {
cargarParroquias();
cargarCalendario();
}
private void cargarParroquias() {
if (parroquiaRepository.count() > 0) return;
log.info("Cargando datos de ejemplo...");
@ -41,6 +53,23 @@ public class DataInitializer implements CommandLineRunner {
log.info("Datos de ejemplo cargados correctamente.");
}
private void cargarCalendario() throws Exception {
if (calendarioRepository.count() > 0) return;
log.info("Cargando calendario litúrgico...");
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JavaTimeModule());
List<CalendarioLiturgico> entradas = mapper.readValue(
new ClassPathResource("calendario-liturgico.json").getInputStream(),
new TypeReference<>() {}
);
calendarioRepository.saveAll(entradas);
log.info("Calendario litúrgico cargado: {} entradas.", entradas.size());
}
private Parroquia saveParroquia(String nombre, String direccion) {
Parroquia p = new Parroquia();
p.setNombre(nombre);
@ -55,3 +84,4 @@ public class DataInitializer implements CommandLineRunner {
grupoRepository.save(g);
}
}

View File

@ -0,0 +1,33 @@
package es.recursoscatolicos.controller;
import es.recursoscatolicos.model.CalendarioLiturgico;
import es.recursoscatolicos.repository.CalendarioLiturgicoRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDate;
@RestController
@RequestMapping("/calendario")
@RequiredArgsConstructor
public class CalendarioLiturgicoController {
private final CalendarioLiturgicoRepository repo;
/** Devuelve la entrada litúrgica vigente para hoy. */
@GetMapping("/hoy")
public ResponseEntity<CalendarioLiturgico> hoy() {
return repo.findEntradaVigente(LocalDate.now())
.map(ResponseEntity::ok)
.orElse(ResponseEntity.notFound().build());
}
/** Devuelve la entrada litúrgica vigente para una fecha concreta (YYYY-MM-DD). */
@GetMapping("/fecha/{fecha}")
public ResponseEntity<CalendarioLiturgico> porFecha(@PathVariable String fecha) {
return repo.findEntradaVigente(LocalDate.parse(fecha))
.map(ResponseEntity::ok)
.orElse(ResponseEntity.notFound().build());
}
}

View File

@ -0,0 +1,27 @@
package es.recursoscatolicos.model;
import jakarta.persistence.*;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDate;
@Entity
@Table(name = "calendario_liturgico")
@Data
@NoArgsConstructor
public class CalendarioLiturgico {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false, unique = true)
private LocalDate fecha;
@Column(nullable = false, length = 50)
private String color;
@Column(nullable = false, length = 200)
private String tiempo;
}

View File

@ -0,0 +1,19 @@
package es.recursoscatolicos.repository;
import es.recursoscatolicos.model.CalendarioLiturgico;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.time.LocalDate;
import java.util.Optional;
public interface CalendarioLiturgicoRepository extends JpaRepository<CalendarioLiturgico, Long> {
/**
* Devuelve la entrada más reciente cuya fecha sea <= la fecha dada.
* Útil para obtener el tiempo litúrgico de hoy aunque no haya entrada exacta.
*/
@Query("SELECT c FROM CalendarioLiturgico c WHERE c.fecha <= :fecha ORDER BY c.fecha DESC LIMIT 1")
Optional<CalendarioLiturgico> findEntradaVigente(@Param("fecha") LocalDate fecha);
}

View File

@ -43,6 +43,7 @@ public class SecurityConfig {
.authorizeHttpRequests(auth -> auth
.requestMatchers("/auth/**").permitAll()
.requestMatchers(HttpMethod.GET, "/parroquias/**").permitAll()
.requestMatchers(HttpMethod.GET, "/calendario/**").permitAll()
.requestMatchers(HttpMethod.OPTIONS, "/**").permitAll()
.anyRequest().authenticated()
)

View File

@ -0,0 +1,356 @@
[
{ "fecha": "2026-01-01", "color": "blanco", "tiempo": "Navidad (Sta. María, Madre de Dios)" },
{ "fecha": "2026-01-04", "color": "blanco", "tiempo": "Navidad (II Domingo después de Navidad)" },
{ "fecha": "2026-01-06", "color": "blanco", "tiempo": "Navidad (Epifanía del Señor)" },
{ "fecha": "2026-01-11", "color": "blanco", "tiempo": "Navidad (Bautismo del Señor)" },
{ "fecha": "2026-01-17", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-01-18", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-01-19", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-01-20", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-01-21", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-01-22", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-01-23", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-01-24", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-01-25", "color": "blanco", "tiempo": "Tiempo Ordinario (Conversión de San Pablo)" },
{ "fecha": "2026-01-26", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-01-27", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-01-28", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-01-29", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-01-30", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-01-31", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-02-01", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-02-02", "color": "blanco", "tiempo": "Tiempo Ordinario (Presentación del Señor)" },
{ "fecha": "2026-02-03", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-02-04", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-02-05", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-02-06", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-02-07", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-02-08", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-02-09", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-02-10", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-02-11", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-02-12", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-02-13", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-02-14", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-02-15", "color": "verde", "tiempo": "Domingo de Carnaval" },
{ "fecha": "2026-02-16", "color": "verde", "tiempo": "Carnaval (Lunes de Carnaval)" },
{ "fecha": "2026-02-17", "color": "verde", "tiempo": "Carnaval (Martes de Carnaval)" },
{ "fecha": "2026-02-18", "color": "morado", "tiempo": "Cuaresma (Miércoles de Ceniza)" },
{ "fecha": "2026-02-19", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-02-20", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-02-21", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-02-22", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-02-23", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-02-24", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-02-25", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-02-26", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-02-27", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-02-28", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-01", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-02", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-03", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-04", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-05", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-06", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-07", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-08", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-09", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-10", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-11", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-12", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-13", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-14", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-15", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-16", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-17", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-18", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-19", "color": "blanco", "tiempo": "Cuaresma (San José)" },
{ "fecha": "2026-03-20", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-21", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-22", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-23", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-24", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-25", "color": "violeta", "tiempo": "Cuaresma (Anunciación del Señor)" },
{ "fecha": "2026-03-26", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-27", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-28", "color": "morado", "tiempo": "Cuaresma" },
{ "fecha": "2026-03-29", "color": "rojo", "tiempo": "Semana Santa (Domingo de Ramos)" },
{ "fecha": "2026-03-30", "color": "morado", "tiempo": "Lunes de Semana Santa" },
{ "fecha": "2026-03-31", "color": "morado", "tiempo": "Martes de Semana Santa" },
{ "fecha": "2026-04-01", "color": "morado", "tiempo": "Semana Santa" },
{ "fecha": "2026-04-02", "color": "blanco", "tiempo": "Semana Santa (Jueves Santo)" },
{ "fecha": "2026-04-03", "color": "rojo", "tiempo": "Semana Santa (Viernes Santo)" },
{ "fecha": "2026-04-04", "color": "morado/negro", "tiempo": "Semana Santa" },
{ "fecha": "2026-04-05", "color": "blanco", "tiempo": "Semana Santa (Domingo de Resurrección)" },
{ "fecha": "2026-04-06", "color": "morado", "tiempo": "Lunes de Pascua" },
{ "fecha": "2026-04-07", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-04-08", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-04-09", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-04-10", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-04-11", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-04-12", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-04-13", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-04-14", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-04-15", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-04-16", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-04-17", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-04-18", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-04-19", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-04-20", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-04-21", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-04-22", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-04-23", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-04-24", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-04-25", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-04-26", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-04-27", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-04-28", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-04-29", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-04-30", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-05-01", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-05-02", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-05-03", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-05-04", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-05-05", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-05-06", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-05-07", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-05-08", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-05-09", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-05-10", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-05-11", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-05-12", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-05-13", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-05-14", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-05-15", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-05-16", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-05-17", "color": "blanco", "tiempo": "Tiempo Pascual (Ascensión del Señor)" },
{ "fecha": "2026-05-18", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-05-19", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-05-20", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-05-21", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-05-22", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-05-23", "color": "morado", "tiempo": "Tiempo Pascual" },
{ "fecha": "2026-05-24", "color": "rojo", "tiempo": "Tiempo Pascual (Pentecostés)" },
{ "fecha": "2026-05-25", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-05-26", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-05-27", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-05-28", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-05-29", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-05-30", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-05-31", "color": "blanco", "tiempo": "Tiempo Ordinario (Santísima Trinidad)" },
{ "fecha": "2026-06-01", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-06-02", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-06-03", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-06-04", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-06-05", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-06-06", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-06-07", "color": "blanco", "tiempo": "Tiempo Ordinario (Corpus Christi)" },
{ "fecha": "2026-06-08", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-06-09", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-06-10", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-06-11", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-06-12", "color": "blanco", "tiempo": "Tiempo Ordinario (Sagrado Corazón de Jesús)" },
{ "fecha": "2026-06-13", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-06-14", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-06-15", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-06-16", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-06-17", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-06-18", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-06-19", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-06-20", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-06-21", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-06-22", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-06-23", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-06-24", "color": "blanco", "tiempo": "Tiempo Ordinario (Natividad de San Juan Bautista)" },
{ "fecha": "2026-06-25", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-06-26", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-06-27", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-06-28", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-06-29", "color": "rojo", "tiempo": "Tiempo Ordinario (San Pedro y San Pablo)" },
{ "fecha": "2026-06-30", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-01", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-02", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-03", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-04", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-05", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-06", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-07", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-08", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-09", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-10", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-11", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-12", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-13", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-14", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-15", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-16", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-17", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-18", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-19", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-20", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-21", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-22", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-23", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-24", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-25", "color": "blanco", "tiempo": "Tiempo Ordinario (Santiago Apóstol)" },
{ "fecha": "2026-07-26", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-27", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-28", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-29", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-30", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-07-31", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-01", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-02", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-03", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-04", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-05", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-06", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-07", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-08", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-09", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-10", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-11", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-12", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-13", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-14", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-15", "color": "blanco", "tiempo": "Tiempo Ordinario (Asunción de la Virgen)" },
{ "fecha": "2026-08-16", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-17", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-18", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-19", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-20", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-21", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-22", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-23", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-24", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-25", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-26", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-27", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-28", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-29", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-30", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-08-31", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-01", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-02", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-03", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-04", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-05", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-06", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-07", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-08", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-09", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-10", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-11", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-12", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-13", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-14", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-15", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-16", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-17", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-18", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-19", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-20", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-21", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-22", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-23", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-24", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-25", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-26", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-27", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-28", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-29", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-09-30", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-01", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-02", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-03", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-04", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-05", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-06", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-07", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-08", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-09", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-10", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-11", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-12", "color": "blanco", "tiempo": "Nuestra Señora del Pilar" },
{ "fecha": "2026-10-13", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-14", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-15", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-16", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-17", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-18", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-19", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-20", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-21", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-22", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-23", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-24", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-25", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-26", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-27", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-28", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-29", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-30", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-10-31", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-11-01", "color": "blanco", "tiempo": "Tiempo Ordinario (Todos los Santos)" },
{ "fecha": "2026-11-02", "color": "morado/negro", "tiempo": "Tiempo Ordinario (Fieles Difuntos)" },
{ "fecha": "2026-11-03", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-11-04", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-11-05", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-11-06", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-11-07", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-11-08", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-11-09", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-11-10", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-11-11", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-11-12", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-11-13", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-11-14", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-11-15", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-11-16", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-11-17", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-11-18", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-11-19", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-11-20", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-11-21", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-11-22", "color": "blanco", "tiempo": "Tiempo Ordinario (Cristo Rey)" },
{ "fecha": "2026-11-23", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-11-24", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-11-25", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-11-26", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-11-27", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-11-28", "color": "verde", "tiempo": "Tiempo Ordinario" },
{ "fecha": "2026-11-29", "color": "morado", "tiempo": "Adviento (I Domingo de Adviento)" },
{ "fecha": "2026-11-30", "color": "morado", "tiempo": "Adviento" },
{ "fecha": "2026-12-01", "color": "morado", "tiempo": "Adviento" },
{ "fecha": "2026-12-02", "color": "morado", "tiempo": "Adviento" },
{ "fecha": "2026-12-03", "color": "morado", "tiempo": "Adviento" },
{ "fecha": "2026-12-04", "color": "morado", "tiempo": "Adviento" },
{ "fecha": "2026-12-05", "color": "morado", "tiempo": "Adviento" },
{ "fecha": "2026-12-06", "color": "morado", "tiempo": "Adviento (II Domingo de Adviento)" },
{ "fecha": "2026-12-07", "color": "morado", "tiempo": "Adviento" },
{ "fecha": "2026-12-08", "color": "azul/blanco", "tiempo": "Adviento (Inmaculada Concepción)" },
{ "fecha": "2026-12-09", "color": "morado", "tiempo": "Adviento" },
{ "fecha": "2026-12-10", "color": "morado", "tiempo": "Adviento" },
{ "fecha": "2026-12-11", "color": "morado", "tiempo": "Adviento" },
{ "fecha": "2026-12-12", "color": "morado", "tiempo": "Adviento" },
{ "fecha": "2026-12-13", "color": "morado", "tiempo": "Adviento (III Domingo de Adviento)" },
{ "fecha": "2026-12-14", "color": "morado", "tiempo": "Adviento" },
{ "fecha": "2026-12-15", "color": "morado", "tiempo": "Adviento" },
{ "fecha": "2026-12-16", "color": "morado", "tiempo": "Adviento" },
{ "fecha": "2026-12-17", "color": "morado", "tiempo": "Adviento" },
{ "fecha": "2026-12-18", "color": "morado", "tiempo": "Adviento" },
{ "fecha": "2026-12-19", "color": "morado", "tiempo": "Adviento" },
{ "fecha": "2026-12-20", "color": "morado", "tiempo": "Adviento (IV Domingo de Adviento)" },
{ "fecha": "2026-12-21", "color": "morado", "tiempo": "Adviento" },
{ "fecha": "2026-12-22", "color": "morado", "tiempo": "Adviento" },
{ "fecha": "2026-12-23", "color": "morado", "tiempo": "Adviento" },
{ "fecha": "2026-12-24", "color": "morado/blanco", "tiempo": "Adviento (Nochebuena)" },
{ "fecha": "2026-12-25", "color": "blanco", "tiempo": "Navidad (Natividad del Señor)" },
{ "fecha": "2026-12-26", "color": "blanco", "tiempo": "Navidad (San Esteban)" },
{ "fecha": "2026-12-27", "color": "blanco", "tiempo": "Navidad (San Juan Evangelista)" },
{ "fecha": "2026-12-28", "color": "blanco", "tiempo": "Navidad (Inocentes)" },
{ "fecha": "2026-12-29", "color": "blanco", "tiempo": "Navidad" },
{ "fecha": "2026-12-30", "color": "blanco", "tiempo": "Navidad" },
{ "fecha": "2026-12-31", "color": "blanco", "tiempo": "Navidad" }
]

View File

@ -103,19 +103,15 @@ body {
}
/* --- BLOQUE DEL SANTO --- */
/*
.santo {
background: var(--color-tarjeta);
margin: 0.6rem auto;
padding: 0.8rem 1.5rem;
border: 1px solid var(--color-acento);
border-radius: 10px;
box-shadow: 0 3px 12px rgba(201, 168, 76, 0.2);
padding: 0.8rem;
position: relative;
z-index: 10;
max-width: 380px;
}
*/
.santo h2 {
font-family: 'EB Garamond', serif;

View File

@ -234,9 +234,9 @@ async function cargarYActualizarTodo() {
}
try {
const respuesta = await fetch('data/calendario-liturgico.json');
const datosCalendario = await respuesta.json();
const datosHoy = datosCalendario.find(dia => dia.fecha === fechaISO);
const respuesta = await fetch(`${API_BASE_URL}/calendario/hoy`);
if (!respuesta.ok) throw new Error("Sin datos litúrgicos");
const datosHoy = await respuesta.json();
const mapaColores = {
"verde": "#2d5a27",

View File

@ -61,13 +61,9 @@ async function cargarYActualizarTodo() {
nombreCicloElem.textContent = ciclo === 0 ? "Ciclo C -" : ciclo === 1 ? "Ciclo A -" : "Ciclo B -";
try {
const respuesta = await fetch('data/calendario-liturgico.json');
const datosCalendario = await respuesta.json();
// Buscar el día exacto o, si no existe, el último día anterior
const datosHoy = [...datosCalendario]
.filter(d => d.fecha <= fechaISO)
.sort((a, b) => b.fecha.localeCompare(a.fecha))[0];
const respuesta = await fetch(`${API_BASE_URL}/calendario/hoy`);
if (!respuesta.ok) throw new Error("Sin datos litúrgicos");
const datosHoy = await respuesta.json();
// Fondos oscuros litúrgicos (más oscuros que el cuerpo #0D1B2E)
const mapaFondos = {