"""
Project 4 Starter Script: Python Exploratory Data Analysis (EDA)
Dataset: ../synthetic_operations_tickets_250rows.csv
Cost: ₹0 (Run for free in Google Colab: https://colab.research.google.com/)
"""

import pandas as pd
import matplotlib.pyplot as plt

# 1. Load the synthetic support operations dataset
df = pd.read_csv("../synthetic_operations_tickets_250rows.csv")

# 2. Inspect dataset shape, columns, and missing values
print("Dataset Shape (Rows, Columns):", df.shape)
print("\nMissing Values per Column:")
print(df.isnull().sum())

# 3. Create an SLA Compliance boolean column
df["Within_SLA"] = df["Resolution_Hours"] <= df["SLA_Target_Hours"]

# 4. Summary statistics by Issue Category
category_summary = (
    df.groupby("Issue_Category")
    .agg(
        Total_Tickets=("Ticket_ID", "count"),
        Avg_Resolution_Hours=("Resolution_Hours", "mean"),
        SLA_Compliance_Pct=("Within_SLA", lambda x: round(x.mean() * 100, 2)),
    )
    .reset_index()
    .sort_values(by="Total_Tickets", ascending=False)
)
print("\nCategory Summary:")
print(category_summary.to_string(index=False))

# 5. Plot a clean bar chart of Ticket Volume by Issue Category
plt.figure(figsize=(9, 5))
plt.barh(category_summary["Issue_Category"], category_summary["Total_Tickets"], color="#1E3A8A")
plt.xlabel("Number of Support Tickets")
plt.title("Synthetic Support Ticket Volume by Issue Category (n = 250)")
plt.gca().invert_yaxis()
plt.tight_layout()
plt.savefig("ticket_volume_by_category.png", dpi=150)
print("\nSaved chart to ticket_volume_by_category.png")
