Spaces:
				
			
			
	
			
			
					
		Running
		
	
	
	
			
			
	
	
	
	
		
		
					
		Running
		
	| # config.py | |
| """ | |
| Global configuration constants for the LinkedIn Organization Dashboard. | |
| """ | |
| # --- LinkedIn Post Constants --- | |
| DEFAULT_INITIAL_FETCH_COUNT = 10 | |
| DEFAULT_POSTS_UPDATE_FETCH_COUNT = 10 | |
| LINKEDIN_POST_URN_KEY = 'id' # Key for post URN in LinkedIn API response | |
| BUBBLE_POST_URN_COLUMN_NAME = 'id' # Column name for unique post ID in Bubble 'LI_posts' table | |
| BUBBLE_POST_DATE_COLUMN_NAME = 'published_at' # Column name for post publication date in Bubble 'LI_posts' table | |
| BUBBLE_POSTS_TABLE_NAME = "LI_posts" | |
| BUBBLE_POST_STATS_TABLE_NAME = "LI_post_stats" | |
| BUBBLE_POST_COMMENTS_TABLE_NAME = "LI_post_comments" | |
| # --- LinkedIn Mentions Constants --- | |
| BUBBLE_MENTIONS_TABLE_NAME = "LI_mentions" | |
| BUBBLE_MENTIONS_ID_COLUMN_NAME = "id" # Column name for unique mention ID in Bubble | |
| BUBBLE_MENTIONS_DATE_COLUMN_NAME = "date" # Column name for mention date in Bubble | |
| DEFAULT_MENTIONS_INITIAL_FETCH_COUNT = 20 | |
| DEFAULT_MENTIONS_UPDATE_FETCH_COUNT = 10 | |
| # --- LinkedIn Follower Stats Constants --- | |
| BUBBLE_FOLLOWER_STATS_TABLE_NAME = "LI_follower_stats" | |
| FOLLOWER_STATS_CATEGORY_COLUMN = "category_name" # For demographics: name (e.g., "Engineering"), for monthly gains: date string 'YYYY-MM-DD' | |
| FOLLOWER_STATS_TYPE_COLUMN = "follower_count_type" # e.g., "follower_seniority", "follower_gains_monthly" | |
| FOLLOWER_STATS_ORG_URN_COLUMN = "organization_urn" # URN of the organization | |
| FOLLOWER_STATS_ORGANIC_COLUMN = "follower_count_organic" | |
| FOLLOWER_STATS_PAID_COLUMN = "follower_count_paid" | |
| FOLLOWER_STATS_CATEGORY_COLUMN_DT = 'category_name_dt' # Temporary column for datetime conversion | |
| # --- Environment Variable Names (Optional, for consistency if checking elsewhere) --- | |
| LINKEDIN_CLIENT_ID_ENV_VAR = "Linkedin_client_id" | |
| BUBBLE_APP_NAME_ENV_VAR = "BUBBLE_APP_NAME" | |
| BUBBLE_API_KEY_PRIVATE_ENV_VAR = "BUBBLE_API_KEY_PRIVATE" | |
| BUBBLE_API_ENDPOINT_ENV_VAR = "BUBBLE_API_ENDPOINT" | |
| # --- UI Constants --- | |
| UI_DATE_FORMAT = '%Y-%m-%d %H:%M' | |
| UI_MONTH_FORMAT = '%Y-%m' | |
| # --- NEW CONSTANTS for LinkedIn Data Operations Log --- | |
| BUBBLE_OPERATIONS_LOG_TABLE_NAME = "linkedin_data_operations_log" | |
| # Column names in the 'linkedin_data_operations_log' table in Bubble: | |
| BUBBLE_OPERATIONS_LOG_DATE_COLUMN = "data" # Stores the timestamp of the sync attempt | |
| BUBBLE_OPERATIONS_LOG_SUBJECT_COLUMN = "linkedin_data_operation_subject" # e.g., "post", "mention", "follower_stats" | |
| BUBBLE_OPERATIONS_LOG_ORG_URN_COLUMN = "organization_urn" # Stores the org URN | |
| # Standardized subject names for the operations log | |
| LOG_SUBJECT_POSTS = "post" | |
| LOG_SUBJECT_MENTIONS = "mention" | |
| LOG_SUBJECT_FOLLOWER_STATS = "followers_stats" | |
| BUBBLE_UNIQUE_ID_COLUMN_NAME = "_id" | |
| # Mapping from plot_configs IDs to PLOT_FORMULAS keys | |
| PLOT_ID_TO_FORMULA_KEY_MAP = { | |
| "posts_activity": "posts_activity", | |
| "mentions_activity": "mentions_activity", | |
| "mention_sentiment": "mention_sentiment", | |
| "followers_count": "followers_count_over_time", | |
| "followers_growth_rate": "followers_growth_rate", | |
| "followers_by_location": "followers_by_demographics", | |
| "followers_by_role": "followers_by_demographics", | |
| "followers_by_industry": "followers_by_demographics", | |
| "followers_by_seniority": "followers_by_demographics", | |
| "engagement_rate": "engagement_rate_over_time", | |
| "reach_over_time": "reach_over_time", | |
| "impressions_over_time": "impressions_over_time", | |
| "likes_over_time": "likes_over_time", | |
| "clicks_over_time": "clicks_over_time", | |
| "shares_over_time": "shares_over_time", | |
| "comments_over_time": "comments_over_time", | |
| "comments_sentiment": "comments_sentiment_breakdown", | |
| "post_frequency_cs": "post_frequency", | |
| "content_format_breakdown_cs": "content_format_breakdown", | |
| "content_topic_breakdown_cs": "content_topic_breakdown", | |
| "mention_analysis_volume": "mentions_activity", | |
| "mention_analysis_sentiment": "mention_sentiment" | |
| } |