feat: Add Lawn Care Tips section and improve Dashboard layout

This commit introduces a new "Lawn Care Tips" section to the application and refines the visual layout of the main Dashboard.

**Key Changes:**

*   **Lawn Care Tips Feature:**
    *   Added `LawnCareTip` model with `Title`, `Category`, and `Content` properties.
    *   Defined `TipCategory` enum for better organization (Mowing, Watering, Fertilizing, Weed Control, Aeration, General).
    *   Integrated `LawnCareTip` into `ApplicationDbContext` for database persistence.
    *   Updated `_Layout.cshtml` to include a new "Lawn Tips" navigation link.

*   **Dashboard Layout Fix:**
    *   Refactored `Views/Home/Index.cshtml` to correctly use Bootstrap's grid system by placing the "Log a New Activity" card in its own `div.row`. This resolves the layout issue where the card was appearing immediately after the previous row without proper spacing.
    *   Updated `HomeController` to include a `LastAerationDate` query for the dashboard display.
    *   Modified `DashboardViewModel` to include `LastAerationDate`.

*   **Build/Dependency Updates:**
    *   Added `Microsoft.EntityFrameworkCore.SqlServer` (likely a residue from scaffolding, though SQLite is still primary).
    *   Added `Microsoft.VisualStudio.Web.CodeGeneration.Design` for scaffolding tools.

This enhances the application's functionality by providing a knowledge base and improves the user experience with a cleaner dashboard layout.
This commit is contained in:
Blake Ridgway 2025-06-17 18:09:05 -05:00
parent 1f50fedb80
commit 5074a9664a
17 changed files with 689 additions and 18 deletions

30
Models/LawnCareTip.cs Normal file
View file

@ -0,0 +1,30 @@
using System.ComponentModel.DataAnnotations;
namespace turf_tasker.Models;
public enum TipCategory
{
Mowing,
Watering,
Fertilizing,
[Display(Name = "Weed Control")]
WeedControl,
Aeration,
General
}
public class LawnCareTip
{
public int Id { get; set; }
[Required]
[StringLength(100)]
public string Title { get; set; } = string.Empty;
[Required]
public TipCategory Category { get; set; }
[Required]
[DataType(DataType.MultilineText)]
public string Content { get; set; } = string.Empty;
}