Mini Shell
# -*- coding: utf-8 -*-
# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2021 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# http://cloudlinux.com/docs/LICENSE.TXT
import logging
from typing import Optional
from dataclasses import dataclass
from xray import gettext as _
from .events import AdviceEvent
@dataclass
class AnalyticsData:
user_hash: str
source: str
journey_id: str
event: str
variant_id: Optional[str] = None
username: Optional[str] = None
advice_id: Optional[str] = None
system_id: Optional[str] = None
feature: Optional[str] = None
def __post_init__(self):
if self.event.upper() not in AdviceEvent.__members__:
logger = logging.getLogger('analytics')
logger.error('[Analytics] Not supported value for field "event"')
raise TypeError(_('Not supported value for field "event"'))