#!/usr/bin/env python3 from __future__ import annotations import csv, json from datetime import datetime, timezone from pathlib import Path ROOT = Path(__file__).resolve().parents[1] SRC = ROOT / 'catalog-source.csv' OUT = ROOT / 'data/products.json' def to_bool(v: str) -> bool: return str(v).strip().lower() in {'1','true','yes','si','sí'} def main() -> int: products = [] with SRC.open(newline='', encoding='utf-8-sig') as handle: for row in csv.DictReader(handle): products.append({ 'id': row['id'].strip(), 'name': row['name'].strip(), 'category': row['category'].strip(), 'collection': row['collection'].strip(), 'description': row['description'].strip(), 'dimensions': row['dimensions'].strip(), 'price': None, 'priceText': 'Consultar disponibilidad', 'available': to_bool(row['available']), 'featured': to_bool(row['featured']), 'new': to_bool(row['new']), 'image': row['image'].strip(), 'fbid': row['fbid'].strip(), }) OUT.write_text(json.dumps({'version':'2.2.0','updatedAt':datetime.now(timezone.utc).isoformat(),'pricingMode':'consult','products':products}, ensure_ascii=False, indent=2), encoding='utf-8') print(f'OK: {len(products)} productos escritos en {OUT}') return 0 if __name__ == '__main__': raise SystemExit(main())