Created Python-Version/ directory structure: ✅ Complete folder hierarchy (scripts, config, logs, temp, tests) ✅ Virtual environment setup script ✅ Python 3.6+ compatible dependencies ✅ Configuration system with env var substitution ✅ DAM API client (complete) Components Implemented: 1. setup.sh - venv creation and dependency installation 2. requirements.txt - Python 3.6/3.10 compatible packages 3. config/config.yaml - Main configuration (URLs, credentials, settings) 4. config/field_mappings.yaml - MVP fields list (easy to edit!) 5. config_loader.py - YAML config with ${VAR} substitution 6. dam_client.py - Complete DAM API wrapper: - OAuth2 with auto-refresh - search_campaigns(status) - get_master_assets(campaign_id) - download_asset(asset_id) - upload_asset() with video metadata - update_campaign_status() - Helper methods Features: - Python 3.6 compatible (shared hosting requirement) - Python 3.10 compatible (local development) - Configuration-driven (no hardcoded values) - Environment-specific configs (staging/production) - Comprehensive error handling - Logging built-in Next: Box client, Database client, FilenameParser, MetadataExtractorMVP, Notifier, then main scripts (A1→A2, A2→A3) 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
61 lines
1.7 KiB
YAML
61 lines
1.7 KiB
YAML
# MVP Field IDs - Add or remove fields here (no code changes needed!)
|
|
|
|
mvp_fields:
|
|
# Asset Info Category
|
|
- FERRERO.FIELD.MKTG.ASSET TYPE
|
|
- FERRERO.FIELD.FISCAL YEAR
|
|
- MAIN_LANGUAGES
|
|
- FERRERO.FIELD.ASSETCOMPLIANCE
|
|
- ARTESIA.FIELD.ASSET DESCRIPTION
|
|
- FERRERO.FIELD.MARKETING.FLAVOUR
|
|
- FERRERO.FIELD.MARKETING.SIZE
|
|
- FERRERO.FIELD.STATE
|
|
- ARTESIA.FIELD.ASSET NAME
|
|
- FERRERO.FIELD.SUB BRAND
|
|
- FERRERO.FIELD.ASSET VALIDITY START PERIOD
|
|
- FERRERO.FIELD.ASSET VALIDITY END PERIOD
|
|
|
|
# Marketing Category
|
|
- MARKETING_TAG
|
|
- FERRERO.MARKETING.FIELD.AGENCY NAME
|
|
- FERRERO.MARKETING.FIELD.SPOT_VERSION
|
|
- FERRERO.MARKETING.FIELD.DIRECTOR_NAME
|
|
- FERRERO.MARKETING.FIELD.VIDEO_POST_PROD_COMPANY
|
|
- FERRERO.MARKETING.FIELD.VID_POST_PROD_CONTACT
|
|
- FERRERO.MARKETING.FIELD.AUDIO_POST_PROD_COMPANY
|
|
- FERRERO.MARKETING.FIELD.AUDIO_POST_PROD_CONTACT
|
|
|
|
# Market Category
|
|
- FERRERO.MARKET.FIELD.TYPE_VID
|
|
- FERRERO.MARKET.FIELD.IPRIGHT
|
|
- FERRERO.MARKET.PROD_COMPANY
|
|
- FERRERO.MARKET.FIELD.LICENSIN
|
|
- FERRERO.MARKET.FIELD.BUYOUT
|
|
- FERRERO.MARKET.FIELD.FERRERO PROPERTY
|
|
- FERRERO.MARKET.VID_N_STAT
|
|
- FERRERO.MARKET.FIELD.LICENSE
|
|
|
|
# Fields to update from V2 filename
|
|
filename_updates:
|
|
ARTESIA.FIELD.ASSET NAME:
|
|
source: clean_filename
|
|
required: true
|
|
|
|
ARTESIA.FIELD.ASSET DESCRIPTION:
|
|
source: subject_title
|
|
required: false
|
|
|
|
MAIN_LANGUAGES:
|
|
source: language_code
|
|
transform: uppercase
|
|
required: true
|
|
|
|
# Fields to force to specific values
|
|
forced_values:
|
|
FERRERO.FIELD.STATE: Local
|
|
|
|
# Default values for missing fields
|
|
defaults:
|
|
FERRERO.FIELD.ASSETCOMPLIANCE: "-"
|
|
MARKETING_TAG: "Tag"
|
|
FERRERO.FIELD.FISCAL YEAR: "2025/2026"
|