feat: added new event details

This commit is contained in:
Blake Ridgway 2025-06-21 16:30:12 -05:00
parent 9ecaf8350b
commit 5c81fb70fd
4 changed files with 180 additions and 0 deletions

View file

@ -0,0 +1,86 @@
// <auto-generated />
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
{
/// <inheritdoc />
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<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<decimal?>("AppliedAmount")
.HasColumnType("TEXT");
b.Property<DateTime>("EventDate")
.HasColumnType("TEXT");
b.Property<int>("EventType")
.HasColumnType("INTEGER");
b.Property<decimal?>("MowerHeightInches")
.HasColumnType("TEXT");
b.Property<int?>("MowingPattern")
.HasColumnType("INTEGER");
b.Property<string>("Notes")
.HasMaxLength(500)
.HasColumnType("TEXT");
b.Property<string>("ProblemObserved")
.HasMaxLength(250)
.HasColumnType("TEXT");
b.Property<string>("ProductUsed")
.HasMaxLength(200)
.HasColumnType("TEXT");
b.HasKey("Id");
b.ToTable("LawnCareEvents");
});
modelBuilder.Entity("turf_tasker.Models.LawnCareTip", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<int>("Category")
.HasColumnType("INTEGER");
b.Property<string>("Content")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("Title")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("TEXT");
b.HasKey("Id");
b.ToTable("LawnCareTips");
});
#pragma warning restore 612, 618
}
}
}

View file

@ -0,0 +1,60 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace turf_tasker.Migrations
{
/// <inheritdoc />
public partial class AddEventDetails : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<decimal>(
name: "AppliedAmount",
table: "LawnCareEvents",
type: "TEXT",
nullable: true);
migrationBuilder.AddColumn<decimal>(
name: "MowerHeightInches",
table: "LawnCareEvents",
type: "TEXT",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "ProblemObserved",
table: "LawnCareEvents",
type: "TEXT",
maxLength: 250,
nullable: true);
migrationBuilder.AddColumn<string>(
name: "ProductUsed",
table: "LawnCareEvents",
type: "TEXT",
maxLength: 200,
nullable: true);
}
/// <inheritdoc />
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");
}
}
}

View file

@ -23,12 +23,18 @@ namespace turf_tasker.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<decimal?>("AppliedAmount")
.HasColumnType("TEXT");
b.Property<DateTime>("EventDate")
.HasColumnType("TEXT");
b.Property<int>("EventType")
.HasColumnType("INTEGER");
b.Property<decimal?>("MowerHeightInches")
.HasColumnType("TEXT");
b.Property<int?>("MowingPattern")
.HasColumnType("INTEGER");
@ -36,6 +42,14 @@ namespace turf_tasker.Migrations
.HasMaxLength(500)
.HasColumnType("TEXT");
b.Property<string>("ProblemObserved")
.HasMaxLength(250)
.HasColumnType("TEXT");
b.Property<string>("ProductUsed")
.HasMaxLength(200)
.HasColumnType("TEXT");
b.HasKey("Id");
b.ToTable("LawnCareEvents");

View file

@ -9,6 +9,10 @@ public enum LawnCareEventType
Fertilizing,
Aeration,
WeedControl,
PestControl,
DiseaseControl,
Topdressing,
Overseeding,
Other
}
@ -40,6 +44,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; }
}