diff --git a/Migrations/20250621212709_AddEventDetails.Designer.cs b/Migrations/20250621212709_AddEventDetails.Designer.cs new file mode 100644 index 0000000..0eb8d9c --- /dev/null +++ b/Migrations/20250621212709_AddEventDetails.Designer.cs @@ -0,0 +1,86 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using turf_tasker.Data; + +#nullable disable + +namespace turf_tasker.Migrations +{ + [DbContext(typeof(ApplicationDbContext))] + [Migration("20250621212709_AddEventDetails")] + partial class AddEventDetails + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder.HasAnnotation("ProductVersion", "9.0.6"); + + modelBuilder.Entity("turf_tasker.Models.LawnCareEvent", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppliedAmount") + .HasColumnType("TEXT"); + + b.Property("EventDate") + .HasColumnType("TEXT"); + + b.Property("EventType") + .HasColumnType("INTEGER"); + + b.Property("MowerHeightInches") + .HasColumnType("TEXT"); + + b.Property("MowingPattern") + .HasColumnType("INTEGER"); + + b.Property("Notes") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("ProblemObserved") + .HasMaxLength(250) + .HasColumnType("TEXT"); + + b.Property("ProductUsed") + .HasMaxLength(200) + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("LawnCareEvents"); + }); + + modelBuilder.Entity("turf_tasker.Models.LawnCareTip", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Category") + .HasColumnType("INTEGER"); + + b.Property("Content") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("LawnCareTips"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20250621212709_AddEventDetails.cs b/Migrations/20250621212709_AddEventDetails.cs new file mode 100644 index 0000000..97662ed --- /dev/null +++ b/Migrations/20250621212709_AddEventDetails.cs @@ -0,0 +1,60 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace turf_tasker.Migrations +{ + /// + public partial class AddEventDetails : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "AppliedAmount", + table: "LawnCareEvents", + type: "TEXT", + nullable: true); + + migrationBuilder.AddColumn( + name: "MowerHeightInches", + table: "LawnCareEvents", + type: "TEXT", + nullable: true); + + migrationBuilder.AddColumn( + name: "ProblemObserved", + table: "LawnCareEvents", + type: "TEXT", + maxLength: 250, + nullable: true); + + migrationBuilder.AddColumn( + name: "ProductUsed", + table: "LawnCareEvents", + type: "TEXT", + maxLength: 200, + nullable: true); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "AppliedAmount", + table: "LawnCareEvents"); + + migrationBuilder.DropColumn( + name: "MowerHeightInches", + table: "LawnCareEvents"); + + migrationBuilder.DropColumn( + name: "ProblemObserved", + table: "LawnCareEvents"); + + migrationBuilder.DropColumn( + name: "ProductUsed", + table: "LawnCareEvents"); + } + } +} diff --git a/Migrations/ApplicationDbContextModelSnapshot.cs b/Migrations/ApplicationDbContextModelSnapshot.cs index f6d0c56..320c9f9 100644 --- a/Migrations/ApplicationDbContextModelSnapshot.cs +++ b/Migrations/ApplicationDbContextModelSnapshot.cs @@ -23,12 +23,18 @@ namespace turf_tasker.Migrations .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); + b.Property("AppliedAmount") + .HasColumnType("TEXT"); + b.Property("EventDate") .HasColumnType("TEXT"); b.Property("EventType") .HasColumnType("INTEGER"); + b.Property("MowerHeightInches") + .HasColumnType("TEXT"); + b.Property("MowingPattern") .HasColumnType("INTEGER"); @@ -36,6 +42,14 @@ namespace turf_tasker.Migrations .HasMaxLength(500) .HasColumnType("TEXT"); + b.Property("ProblemObserved") + .HasMaxLength(250) + .HasColumnType("TEXT"); + + b.Property("ProductUsed") + .HasMaxLength(200) + .HasColumnType("TEXT"); + b.HasKey("Id"); b.ToTable("LawnCareEvents"); diff --git a/Models/LawnCareEvent.cs b/Models/LawnCareEvent.cs index e43d501..4b8d9c3 100644 --- a/Models/LawnCareEvent.cs +++ b/Models/LawnCareEvent.cs @@ -9,6 +9,10 @@ public enum LawnCareEventType Fertilizing, Aeration, WeedControl, + PestControl, + DiseaseControl, + Topdressing, + Overseeding, Other } @@ -39,6 +43,22 @@ public class LawnCareEvent [Display(Name = "Mowing Pattern")] public MowingPattern? MowingPattern { get; set; } + + [Display(Name = "Product Used")] + [StringLength(200)] + public string? ProductUsed { get; set; } + + [Display(Name = "Applied Amount")] + [Range(0.01, 1000.0, ErrorMessage = "Amount must be positive.")] // Example range + public decimal? AppliedAmount { get; set; } + + [Display(Name = "Mower Height (inches)")] + [Range(0.5, 6.0, ErrorMessage = "Height must be between 0.5 and 6 inches.")] + public decimal? MowerHeightInches { get; set; } + + [Display(Name = "Problem Observed")] + [StringLength(250)] + public string? ProblemObserved { get; set; } [StringLength(500)] public string? Notes { get; set; }