using Contime.controller;
using Contime.data;
using Contime.model;
using Contime.view;

namespace Contime {
    internal static class Program {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main() {
            // --- FIX: Initialize the SQLite provider ---
            SQLitePCL.Batteries.Init();

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            // --- Dependency Injection Setup ---
            // 1. Create the DataAccess layer
            var dataAccess = new DataAccess("contime.db");
            dataAccess.InitializeDatabase();

            // 2. Create the Model
            var model = new TimeTrackerModel(dataAccess);

            // 3. Create the View
            var view = new MainForm();

            // 4. Create the Controller
            var controller = new TimeTrackerController(model, view);

            // 5. Run the application
            Application.Run(view);
        }
    }
}

