[
  {
    "id": "00000000-0000-0000-0000-00000000c002",
    "brand_id": "00000000-0000-0000-0000-00000000a000",
    "blueprint_id": null,
    "ong_id": "21111111-1111-1111-1111-111111111113",
    "name": "Limpieza de cauces fluviales",
    "description": "Recogida coordinada de residuos plásticos en tramos urbanos de ríos.",
    "type": "ESG",
    "implementation_mode": "INTERNAL",
    "language": "es",
    "start_date": "2026-06-09",
    "end_date": null,
    "status": "ACTIVE",
    "ambition_level": null,
    "objectives": {},
    "hashtags": [
      "#bekynda",
      "#rios_limpios",
      "#economia_circular"
    ],
    "social_handles": {},
    "verification_visibility": "PUBLIC",
    "campaign_message": "Cada kg de plástico que retiramos del río no llega al mar.",
    "storytelling_enabled": false,
    "esrs_disclosures": [
      "E3-4",
      "E5-5",
      "S3-4"
    ],
    "ods_tags": [
      6,
      11,
      14,
      15
    ],
    "retention_days": null,
    "enterprise_config": {},
    "created_at": "2026-06-09T17:25:02.926881+00:00",
    "updated_at": "2026-06-16T16:39:15.984248+00:00",
    "cover_image_url": "https://images.unsplash.com/photo-1661405001746-264a95ad6fea?w=800&q=80",
    "steps": [
      "Brief y reparto de material",
      "Recogida por tramos",
      "Separación y pesaje",
      "Punto limpio"
    ],
    "visibility": "CATALOG",
    "chain_length": null,
    "qr_code": null,
    "bracelet_id_required": true,
    "participation_scope": null,
    "department": null,
    "locality": null,
    "sessions_count": null,
    "session_duration_minutes": null,
    "slots_per_session": null,
    "control_level": "MEDIUM",
    "evidence_config": {
      "photo": true,
      "checkin": true,
      "document": false,
      "validator": "BRAND_ADMIN",
      "certificate": false
    },
    "reporting_enabled": true,
    "is_material": true,
    "material_topic": null,
    "framework_confirmed": false,
    "social_config": {},
    "internal_notes": null,
    "from_catalog": false,
    "kpi_defs": [],
    "invitation_subject": null,
    "invitation_body": null
  },
  {
    "id": "00000000-0000-0000-0000-00000000c004",
    "brand_id": "00000000-0000-0000-0000-00000000a000",
    "blueprint_id": null,
    "ong_id": null,
    "name": "Movilidad sostenible al trabajo",
    "description": "Reto de un mes: empleados sustituyen su coche por bici, transporte público o caminar.",
    "type": "ESG",
    "implementation_mode": "INTERNAL_EXTENDED",
    "language": "es",
    "start_date": "2026-06-09",
    "end_date": null,
    "status": "ACTIVE",
    "ambition_level": null,
    "objectives": {},
    "hashtags": [
      "#bekynda",
      "#movilidad_sostenible",
      "#net_zero"
    ],
    "social_handles": {},
    "verification_visibility": "PUBLIC",
    "campaign_message": "Cada km que dejas de hacer en coche evita ~120g de CO2.",
    "storytelling_enabled": false,
    "esrs_disclosures": [
      "E1-1",
      "E1-4",
      "E1-6",
      "S1-14"
    ],
    "ods_tags": [
      3,
      7,
      11,
      13
    ],
    "retention_days": null,
    "enterprise_config": {},
    "created_at": "2026-06-09T17:25:02.926881+00:00",
    "updated_at": "2026-06-16T16:39:15.984248+00:00",
    "cover_image_url": "https://images.unsplash.com/photo-1528629297340-d1d466945dc5?w=800&q=80",
    "steps": [
      "Registro de trayectos en la app",
      "Foto o GPS de evidencia",
      "Cálculo de km sustituidos",
      "Ranking mensual"
    ],
    "visibility": "CATALOG",
    "chain_length": null,
    "qr_code": null,
    "bracelet_id_required": true,
    "participation_scope": null,
    "department": null,
    "locality": null,
    "sessions_count": null,
    "session_duration_minutes": null,
    "slots_per_session": null,
    "control_level": "MEDIUM",
    "evidence_config": {
      "photo": true,
      "checkin": true,
      "document": false,
      "validator": "BRAND_ADMIN",
      "certificate": false
    },
    "reporting_enabled": true,
    "is_material": true,
    "material_topic": null,
    "framework_confirmed": false,
    "social_config": {},
    "internal_notes": null,
    "from_catalog": false,
    "kpi_defs": [],
    "invitation_subject": null,
    "invitation_body": null
  },
  {
    "id": "00000000-0000-0000-0000-00000000c005",
    "brand_id": "00000000-0000-0000-0000-00000000a000",
    "blueprint_id": null,
    "ong_id": null,
    "name": "Activación saludable · pasos diarios",
    "description": "Programa de salud corporativa: empleados registran pasos y minutos de actividad para mejorar bienestar cardiovascular y reducir sedentarismo.",
    "type": "ESG",
    "implementation_mode": "INTERNAL",
    "language": "es",
    "start_date": "2026-06-09",
    "end_date": null,
    "status": "ACTIVE",
    "ambition_level": null,
    "objectives": {},
    "hashtags": [
      "#bekynda",
      "#salud_corporativa",
      "#bienestar_empleados"
    ],
    "social_handles": {},
    "verification_visibility": "PUBLIC",
    "campaign_message": "Caminar 10.000 pasos al día reduce un 30% el riesgo de enfermedad cardiovascular.",
    "storytelling_enabled": false,
    "esrs_disclosures": [
      "S1-4",
      "S1-14"
    ],
    "ods_tags": [
      3,
      8,
      11
    ],
    "retention_days": null,
    "enterprise_config": {},
    "created_at": "2026-06-09T17:25:03.010801+00:00",
    "updated_at": "2026-06-16T16:39:15.984248+00:00",
    "cover_image_url": "https://images.unsplash.com/photo-1603397388623-3da0d6c84fc3?w=800&q=80",
    "steps": [
      "Registro diario de pasos en la app",
      "Foto o captura de wearable como evidencia",
      "Cálculo automático de km recorridos",
      "Ranking semanal y reto mensual"
    ],
    "visibility": "CATALOG",
    "chain_length": null,
    "qr_code": null,
    "bracelet_id_required": true,
    "participation_scope": null,
    "department": null,
    "locality": null,
    "sessions_count": null,
    "session_duration_minutes": null,
    "slots_per_session": null,
    "control_level": "MEDIUM",
    "evidence_config": {
      "photo": true,
      "checkin": true,
      "document": false,
      "validator": "BRAND_ADMIN",
      "certificate": false
    },
    "reporting_enabled": true,
    "is_material": true,
    "material_topic": null,
    "framework_confirmed": false,
    "social_config": {},
    "internal_notes": null,
    "from_catalog": false,
    "kpi_defs": [],
    "invitation_subject": null,
    "invitation_body": null
  },
  {
    "id": "00000000-0000-0000-0000-00000000c003",
    "brand_id": "00000000-0000-0000-0000-00000000a000",
    "blueprint_id": null,
    "ong_id": "21111111-1111-1111-1111-111111111114",
    "name": "Mentoría a personas mayores",
    "description": "Visitas y charlas con personas mayores en residencias o solas en sus domicilios.",
    "type": "ESG",
    "implementation_mode": "INTERNAL",
    "language": "es",
    "start_date": "2026-06-09",
    "end_date": null,
    "status": "ACTIVE",
    "ambition_level": null,
    "objectives": {},
    "hashtags": [
      "#bekynda",
      "#contra_la_soledad",
      "#salud_emocional"
    ],
    "social_handles": {},
    "verification_visibility": "PUBLIC",
    "campaign_message": "Una visita semanal reduce el aislamiento que sufre 1 de cada 4 mayores.",
    "storytelling_enabled": false,
    "esrs_disclosures": [
      "S3-4",
      "S4-4",
      "S1-4"
    ],
    "ods_tags": [
      3,
      4,
      10,
      17
    ],
    "retention_days": null,
    "enterprise_config": {},
    "created_at": "2026-06-09T17:25:02.926881+00:00",
    "updated_at": "2026-06-16T16:39:15.984248+00:00",
    "cover_image_url": "https://images.unsplash.com/photo-1658314755707-1fbdf7c40145?w=800&q=80",
    "steps": [
      "Brief y matching mayor-voluntario",
      "Visita o llamada acordada",
      "Registro de la interacción",
      "Encuesta de bienestar"
    ],
    "visibility": "CATALOG",
    "chain_length": null,
    "qr_code": null,
    "bracelet_id_required": true,
    "participation_scope": null,
    "department": null,
    "locality": null,
    "sessions_count": null,
    "session_duration_minutes": null,
    "slots_per_session": null,
    "control_level": "MEDIUM",
    "evidence_config": {
      "photo": true,
      "checkin": true,
      "document": false,
      "validator": "BRAND_ADMIN",
      "certificate": false
    },
    "reporting_enabled": true,
    "is_material": true,
    "material_topic": null,
    "framework_confirmed": false,
    "social_config": {},
    "internal_notes": null,
    "from_catalog": false,
    "kpi_defs": [],
    "invitation_subject": null,
    "invitation_body": null
  },
  {
    "id": "00000000-0000-0000-0000-00000000c006",
    "brand_id": "00000000-0000-0000-0000-00000000a000",
    "blueprint_id": null,
    "ong_id": null,
    "name": "Acción ambiental · reto reciclaje",
    "description": "Programa para fomentar separación de residuos en oficina y hogar: plástico, papel, vidrio, orgánico. Cada acción suma a la meta colectiva de la empresa.",
    "type": "ESG",
    "implementation_mode": "INTERNAL_EXTENDED",
    "language": "es",
    "start_date": "2026-06-09",
    "end_date": null,
    "status": "ACTIVE",
    "ambition_level": null,
    "objectives": {},
    "hashtags": [
      "#bekynda",
      "#economia_circular",
      "#cero_residuos"
    ],
    "social_handles": {},
    "verification_visibility": "PUBLIC",
    "campaign_message": "Cada kg de plástico reciclado evita 1,5 kg de CO2 frente a producir uno nuevo.",
    "storytelling_enabled": false,
    "esrs_disclosures": [
      "E5-1",
      "E5-5",
      "S1-4",
      "S3-4"
    ],
    "ods_tags": [
      11,
      12,
      13
    ],
    "retention_days": null,
    "enterprise_config": {},
    "created_at": "2026-06-09T17:25:03.010801+00:00",
    "updated_at": "2026-06-16T16:39:15.984248+00:00",
    "cover_image_url": "https://images.unsplash.com/photo-1611284446314-60a58ac0deb9?w=800&q=80",
    "steps": [
      "Selección del tipo de residuo (plástico / papel / vidrio / orgánico)",
      "Foto de la acción de reciclaje",
      "Estimación de kg gestionados",
      "Suma al contador agregado de la empresa"
    ],
    "visibility": "CATALOG",
    "chain_length": null,
    "qr_code": null,
    "bracelet_id_required": true,
    "participation_scope": null,
    "department": null,
    "locality": null,
    "sessions_count": null,
    "session_duration_minutes": null,
    "slots_per_session": null,
    "control_level": "MEDIUM",
    "evidence_config": {
      "photo": true,
      "checkin": true,
      "document": false,
      "validator": "BRAND_ADMIN",
      "certificate": false
    },
    "reporting_enabled": true,
    "is_material": true,
    "material_topic": null,
    "framework_confirmed": false,
    "social_config": {},
    "internal_notes": null,
    "from_catalog": false,
    "kpi_defs": [],
    "invitation_subject": null,
    "invitation_body": null
  },
  {
    "id": "00000000-0000-0000-0000-00000000c007",
    "brand_id": "00000000-0000-0000-0000-00000000a000",
    "blueprint_id": null,
    "ong_id": "21111111-1111-1111-1111-111111111114",
    "name": "Cadena de impacto · conexión humana",
    "description": "Cadena solidaria contra la soledad no deseada: cada participante dedica 15–60 minutos de interacción real (conversación, paseo, café, llamada) a una persona que lo necesita, sube su evidencia y pasa la pulsera al siguiente eslabón.",
    "type": "ESG",
    "implementation_mode": "CHAIN",
    "language": "es",
    "start_date": "2026-06-16",
    "end_date": null,
    "status": "ACTIVE",
    "ambition_level": null,
    "objectives": {},
    "hashtags": [
      "#bekynda",
      "#cadena_de_impacto",
      "#contra_la_soledad"
    ],
    "social_handles": {},
    "verification_visibility": "PUBLIC",
    "campaign_message": "Una cadena de 6 personas = 6 encuentros reales contra la soledad. La pulsera solo avanza si tu evidencia se valida.",
    "storytelling_enabled": false,
    "esrs_disclosures": [
      "S1-4",
      "S3-4",
      "S3-5"
    ],
    "ods_tags": [
      3,
      10,
      17
    ],
    "retention_days": null,
    "enterprise_config": {},
    "created_at": "2026-06-16T16:39:14.887085+00:00",
    "updated_at": "2026-06-16T16:39:15.984248+00:00",
    "cover_image_url": "https://images.unsplash.com/photo-1469571486292-0ba58a3f068b?w=400&q=80",
    "steps": [
      "Escanea el QR de la pulsera y entra con tu código lateral",
      "Dedica 15–60 min de compañía real a alguien que lo necesite",
      "Sube tu foto como evidencia",
      "Cuando se valide, pasa la pulsera al siguiente eslabón"
    ],
    "visibility": "CATALOG",
    "chain_length": 6,
    "qr_code": null,
    "bracelet_id_required": true,
    "participation_scope": null,
    "department": null,
    "locality": null,
    "sessions_count": null,
    "session_duration_minutes": null,
    "slots_per_session": null,
    "control_level": "MEDIUM",
    "evidence_config": {
      "photo": true,
      "checkin": true,
      "document": false,
      "validator": "BRAND_ADMIN",
      "certificate": false
    },
    "reporting_enabled": true,
    "is_material": true,
    "material_topic": null,
    "framework_confirmed": false,
    "social_config": {},
    "internal_notes": null,
    "from_catalog": false,
    "kpi_defs": [],
    "invitation_subject": null,
    "invitation_body": null
  },
  {
    "id": "00000000-0000-0000-0000-00000000c001",
    "brand_id": "00000000-0000-0000-0000-00000000a000",
    "blueprint_id": "31111111-1111-1111-1111-111111111111",
    "ong_id": "21111111-1111-1111-1111-111111111111",
    "name": "Banco de Alimentos · día de voluntariado",
    "description": "Una jornada de clasificación, pesaje y preparación de cajas en un banco de alimentos local.",
    "type": "ESG",
    "implementation_mode": "INTERNAL",
    "language": "es",
    "start_date": "2026-06-09",
    "end_date": null,
    "status": "ACTIVE",
    "ambition_level": null,
    "objectives": {
      "hours": 120,
      "participants": 30,
      "participation_pct": 75
    },
    "hashtags": [
      "#bekynda",
      "#cero_desperdicio",
      "#voluntariado_corporativo"
    ],
    "social_handles": {},
    "verification_visibility": "PUBLIC",
    "campaign_message": "Cada caja preparada alimenta a una familia de 4 personas durante una semana.",
    "storytelling_enabled": false,
    "esrs_disclosures": [
      "S3-4",
      "S3-5",
      "E5-5",
      "S1-13"
    ],
    "ods_tags": [
      2,
      12,
      17
    ],
    "retention_days": null,
    "enterprise_config": {},
    "created_at": "2026-06-09T17:25:02.926881+00:00",
    "updated_at": "2026-06-16T16:39:16.49401+00:00",
    "cover_image_url": "https://images.unsplash.com/photo-1599059813005-11265ba4b4ce?w=800&q=80",
    "steps": [
      "Clasificación",
      "Pesaje y registro",
      "Preparación de cajas",
      "Carga en furgonetas"
    ],
    "visibility": "CATALOG",
    "chain_length": null,
    "qr_code": null,
    "bracelet_id_required": true,
    "participation_scope": null,
    "department": null,
    "locality": null,
    "sessions_count": 3,
    "session_duration_minutes": 240,
    "slots_per_session": 12,
    "control_level": "MEDIUM",
    "evidence_config": {
      "photo": true,
      "checkin": true,
      "document": false,
      "validator": "BRAND_ADMIN",
      "certificate": false
    },
    "reporting_enabled": true,
    "is_material": true,
    "material_topic": "Comunidad",
    "framework_confirmed": false,
    "social_config": {
      "cta": "Comparte tu experiencia",
      "mode": "HYBRID",
      "hashtags": [
        "#ImpactoPositivo",
        "#Kynda",
        "#BancoDeAlimentos"
      ],
      "networks": {
        "linkedin": true,
        "whatsapp": true,
        "instagram": true
      },
      "image_url": "https://images.unsplash.com/photo-1599059813005-11265ba4b4ce?w=800&q=80",
      "post_text": "Hoy he participado en una jornada de voluntariado con el Banco de Alimentos. Pequeñas acciones pueden generar un gran impacto en muchas familias.",
      "allow_edit_text": true,
      "allow_edit_hashtags": true,
      "allow_replace_image": true
    },
    "internal_notes": null,
    "from_catalog": false,
    "kpi_defs": [
      {
        "key": "kilos_clasificados",
        "unit": "kg",
        "label": "Kilos de alimentos clasificados",
        "source": "ADMIN_ACTION",
        "sort_order": 1,
        "value_type": "INT",
        "visibility": "PUBLIC"
      },
      {
        "key": "lotes_preparados",
        "unit": "",
        "label": "Lotes preparados",
        "source": "ADMIN_ACTION",
        "sort_order": 2,
        "value_type": "INT",
        "visibility": "PUBLIC"
      },
      {
        "key": "personas_beneficiarias",
        "unit": "personas",
        "label": "Personas beneficiarias equivalente",
        "source": "ADMIN_ACTION",
        "sort_order": 3,
        "value_type": "INT",
        "visibility": "PUBLIC"
      },
      {
        "key": "valor_economico",
        "unit": "€",
        "label": "Valor económico equivalente del voluntariado",
        "source": "ADMIN_ACTION",
        "sort_order": 4,
        "value_type": "FLOAT",
        "visibility": "PUBLIC"
      },
      {
        "key": "horas_voluntariado",
        "unit": "h",
        "label": "Horas de voluntariado efectivas verificadas",
        "source": "USER_EVIDENCE",
        "sort_order": 5,
        "value_type": "FLOAT",
        "visibility": "PUBLIC",
        "user_ui_hint": "input",
        "user_required": true,
        "user_field_type": "FLOAT",
        "user_aggregation": "SUM"
      }
    ],
    "invitation_subject": null,
    "invitation_body": null
  },
  {
    "id": "9a64b13f-fe86-49d9-8b82-ed2270462d4e",
    "brand_id": "11111111-1111-1111-1111-111111111111",
    "blueprint_id": "31111111-1111-1111-1111-111111111111",
    "ong_id": null,
    "name": "Banco de Alimentos Verano 2026",
    "description": "Participa junto a tus compañeros en jornadas de voluntariado para apoyar la preparación de alimentos destinados a familias vulnerables.",
    "type": "ESG",
    "implementation_mode": "INTERNAL_EXTENDED",
    "language": "es",
    "start_date": "2026-06-22",
    "end_date": "2026-06-24",
    "status": "ACTIVE",
    "ambition_level": null,
    "objectives": {
      "hours": 112,
      "custom": [],
      "participants": 28,
      "participation_pct": 100
    },
    "hashtags": [
      "#EasyfairsCareWeek",
      "#impactoPositivo",
      "#KYNDA",
      "#BancoDeAlimentos",
      "#EasyFairs"
    ],
    "social_handles": {},
    "verification_visibility": "PUBLIC",
    "campaign_message": null,
    "storytelling_enabled": false,
    "esrs_disclosures": [
      "S1-6",
      "S3-1",
      "S3-4"
    ],
    "ods_tags": [
      2,
      17,
      10,
      1,
      3,
      12,
      13
    ],
    "retention_days": null,
    "enterprise_config": {},
    "created_at": "2026-06-16T21:32:20.695509+00:00",
    "updated_at": "2026-06-23T09:22:32.940591+00:00",
    "cover_image_url": "https://lfgaaijrzkufkbxwhmjz.supabase.co/storage/v1/object/public/campaign-covers/9a64b13f-fe86-49d9-8b82-ed2270462d4e/cover-1781646686501.png",
    "steps": [],
    "visibility": "PRIVATE",
    "chain_length": null,
    "qr_code": null,
    "bracelet_id_required": true,
    "participation_scope": "ALL",
    "department": null,
    "locality": "Madrid",
    "sessions_count": 3,
    "session_duration_minutes": 240,
    "slots_per_session": 12,
    "control_level": "MEDIUM",
    "evidence_config": {
      "photo": true,
      "checkin": true,
      "document": false,
      "validator": "KYNDA_OPS",
      "certificate": false
    },
    "reporting_enabled": true,
    "is_material": false,
    "material_topic": null,
    "framework_confirmed": true,
    "social_config": {
      "cta": "Comparte tu experiencia",
      "mode": "HYBRID",
      "hashtags": [
        "#EasyfairsCareWeek",
        "#impactoPositivo",
        "#KYNDA",
        "#BancoDeAlimentos",
        "#EasyFairs"
      ],
      "networks": {
        "linkedin": true,
        "whatsapp": true,
        "instagram": true
      },
      "image_url": "https://lfgaaijrzkufkbxwhmjz.supabase.co/storage/v1/object/public/campaign-covers/9a64b13f-fe86-49d9-8b82-ed2270462d4e/cover-1781646686501.png",
      "post_text": "Hoy he participado en una jornada de voluntariado con el Banco de Alimentos. \nPequeñas acciones pueden generar un gran impacto en muchas familias.",
      "allow_edit_text": true,
      "allow_edit_hashtags": true,
      "allow_replace_image": true
    },
    "internal_notes": null,
    "from_catalog": false,
    "kpi_defs": [
      {
        "key": "kilos_clasificados",
        "unit": "kg",
        "label": "Kilos de alimentos clasificados",
        "source": "ADMIN_ACTION",
        "sort_order": 1,
        "value_type": "FLOAT",
        "visibility": "PUBLIC"
      },
      {
        "key": "lotes_preparados",
        "unit": "",
        "label": "Lotes preparados",
        "source": "ADMIN_ACTION",
        "sort_order": 2,
        "value_type": "FLOAT",
        "visibility": "PUBLIC"
      },
      {
        "key": "personas_beneficiarias",
        "unit": "personas",
        "label": "Personas beneficiarias equivalente",
        "source": "ADMIN_ACTION",
        "sort_order": 3,
        "value_type": "FLOAT",
        "visibility": "PUBLIC"
      },
      {
        "key": "valor_economico",
        "unit": "€",
        "label": "Valor económico equivalente del voluntariado",
        "source": "ADMIN_ACTION",
        "sort_order": 4,
        "value_type": "FLOAT",
        "visibility": "PUBLIC"
      },
      {
        "key": "horas_voluntariado",
        "unit": "h",
        "label": "Horas de voluntariado efectivas verificadas",
        "source": "USER_EVIDENCE",
        "sort_order": 5,
        "value_type": "FLOAT",
        "visibility": "PUBLIC",
        "user_ui_hint": "input",
        "user_required": true,
        "user_field_type": "FLOAT",
        "user_aggregation": "SUM"
      }
    ],
    "invitation_subject": null,
    "invitation_body": null
  }
]