constants.py
Field maps y value maps específicos de tu organización.
src/constants.py centraliza los mapeos que consume el sync del SDK vía mappers_from_constants(constants).
Hay dos tipos de configuración:
- Field maps (
*_FIELD_MAP) — qué columna de tu fuente corresponde a cada clave lógica del SDK. - Value maps (
*_MAPPING) — cómo traducir códigos de tu sistema a valores Brightmarket.
Guía completa de field maps: Field maps.
Field maps (*_FIELD_MAP)
Definí un dict por entidad que sincronices. Ejemplo mínimo para clientes:
CLIENT_FIELD_MAP = {
"external_id": "tu_columna_id_cliente",
"name": "tu_columna_nombre",
"sex": "tu_columna_sexo",
"department_id": "tu_columna_region",
}Otros dicts según los flags que uses: SKU_FIELD_MAP, TICKET_FIELD_MAP, PAYMENT_METHOD_FIELD_MAP, PROMOTION_FIELD_MAP, REWARD_FIELD_MAP, POINTS_MOVEMENT_FIELD_MAP, POINTS_EXPIRATION_FIELD_MAP.
El template trae ejemplos comentados. Descomentalos y completá los nombres de columna reales antes de correr el sync.
Value maps (*_MAPPING)
| Constante | Uso |
|---|---|
SEXO_MAPPING | Código fuente → MALE / FEMALE / OTHER |
DEPARTAMENTO_MAPPING | Id departamento → nombre |
DEPARTAMENTO_MAPPING_API | Nombre departamento → stateId Brightmarket |
COUNTRY_MAPPING | Id país/región fuente → countryId |
COUNTRY_ID_FOR_RESOLVED_STATE | countryId cuando se resuelve un departamento a estado |
CLIENT_LEVEL_MAPPING | Código nivel cliente → levelId (asignación tras create_client) |
POINTS_MOVEMENT_TYPE_MAPPING | Código fuente → ACCUMULATION / CONSUMPTION / ADJUSTMENT |
El template viene con value maps vacíos. Completalos según tu organización.
Carga en el registry
from brightmarket_data_sync.sync import build_default_commands, mappers_from_constants
import constants
mappers = mappers_from_constants(constants)
commands = build_default_commands(mappers)No hardcodees credenciales ni URLs de API aquí — usá .env y BrightmarketConfig.