# This File is for Global Constants and Enums
from enum import Enum




class ApplicationUserRoleEnum(str, Enum): # At Application  level 

    SUPER_ADMIN = "super_admin"    # ultimate access
    ADMIN = "admin"    # full access
    SUPPORT_STAFF = "support_staff"  # view-only or limited
    BILLING_ADMIN = "billing_admin"  # only billing-related



class CompanyPlanEnum(str, Enum): # company plan Enum
    BASIC = "basic"
    PROFICIENT = "proficient"
    EXPERIENCED = "experienced"



class CompanyUserRoleEnum(str, Enum): #compnay user role Enum
    ADMIN = "admin"
    ANALYST = "analyst"
    VIEWER = "viewer"

    

class DepartmentEnum(str, Enum): # company user department enum
    HR = "hr"
    FINANCE = "finance"
    MARKETING = "marketing"
    SALES = "sales"
    CEO = "ceo"
    CFO = "cfo"
    ADMINISTRATION = "administration"
    IT="it"

class UserType(str,Enum):
    APPLICATION = "application"
    COMPANY = "company"

class FontSizeEnum(str, Enum):
    SMALL = "small"
    MEDIUM = "medium"
    LARGE = "large"


class DataIntegrationSourceEnum(str,Enum):
    FILE = "file",
    API = "API"

class TicketStatusEnum(str, Enum):
    OPEN = "Open"
    IN_PROGRESS = "In Progress"
    RESOLVED = "Resolved"
    CLOSED = "Closed"

class TicketPriorityEnum(str, Enum):
    LOW = "Low"
    MEDIUM = "Medium"
    HIGH = "High"
    CRITICAL = "Critical"

class ChartTypeEnum(str, Enum):
    BAR_CHART = "bar_chart"
    LINE_CHART = "line_chart"
    PIE_CHART = "pie_chart"
    DOUGHNUT_CHART = "Doughnut_Chart"
    BUBBLE_CHART = "bubble_chart"
    AREA_CHART = "area_chart"
    RADAR_CHART = "radar_chart"

class FinancialDashboardWidgetNameEnum(str, Enum):
    REVENUE_TREND = "Revenue_trend"
    EXPENSE_BREAKDOWN = "Expense_trend"
    GROSSPROFIT_ANALYSIS = "Gross_profit_trend"
    NETPROFIT_TREND = "Net_profit_trend"
    CASH_FLOW = "Cashflow"
    actual_vs_budget = "actual_vs_budget_trend"
    # HEADCOUNT_TREND="Headcount_Trend"
class KPIWidgetNameEnum(str, Enum):
    REVENUM_PER_EMPLOYEE = "Revenue_per_Employee"
    MARKETING_ROI = "Marketing_ROI"
    COST_PER_LEAD = "Cost_per_Lead"
    PROFITABILITY_BY_SEGMENT="Profitability_by_Segment"
# class DateRange(str,Enum):
#     MONTH = "month"
#     QUARTER = "quarter"
#     YTD = "ytd"
#     custom = "custom"








class PeriodType(str, Enum):
    CUSTOM = "custom"

    YEARLY = "yearly"
