- Restructure backend code into Tasking module with organized endpoints - Add Project and Sprint entities with database migrations - Implement CRUD endpoints for projects (create, get, rename, delete) - Refactor task endpoints into Tasking namespace - Add integration test suite with Testcontainers and Respawn - Refactor frontend to use Pinia stores with dedicated API clients - Add DueDatePicker and DueTimePicker components for task scheduling - Add environment configuration for API base URL - Add infrastructure setup scripts for Docker/Postgres
159 lines
5.4 KiB
C#
159 lines
5.4 KiB
C#
// <auto-generated />
|
|
using System;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
using Microsoft.EntityFrameworkCore.Migrations;
|
|
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
|
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
|
using Tasker.Web.Tasking.Data;
|
|
|
|
#nullable disable
|
|
|
|
namespace Tasker.Web.Tasking.Data.Migrations
|
|
{
|
|
[DbContext(typeof(ProjectDbContext))]
|
|
[Migration("20240910155512_AddsDeletedOn")]
|
|
partial class AddsDeletedOn
|
|
{
|
|
/// <inheritdoc />
|
|
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
|
{
|
|
#pragma warning disable 612, 618
|
|
modelBuilder
|
|
.HasAnnotation("ProductVersion", "8.0.7")
|
|
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
|
|
|
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
|
|
|
modelBuilder.Entity("Tasker.Web.Tasking.Data.Project", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid");
|
|
|
|
b.Property<DateTimeOffset?>("CompletedOn")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<DateTimeOffset>("CreatedOn")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<DateTimeOffset?>("DeletedOn")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<string>("Description")
|
|
.HasMaxLength(2048)
|
|
.HasColumnType("character varying(2048)");
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.ToTable("Projects");
|
|
});
|
|
|
|
modelBuilder.Entity("Tasker.Web.Tasking.Data.Sprint", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid");
|
|
|
|
b.Property<DateTimeOffset>("CreatedOn")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<DateTimeOffset?>("DeletedOn")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<DateTime>("EndDate")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.Property<Guid?>("ProjectId")
|
|
.HasColumnType("uuid");
|
|
|
|
b.Property<DateTime>("StartDate")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.HasIndex("ProjectId");
|
|
|
|
b.ToTable("Sprints");
|
|
});
|
|
|
|
modelBuilder.Entity("Tasker.Web.Tasking.Data.Task", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("uuid");
|
|
|
|
b.Property<DateTimeOffset?>("CompletedOn")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<DateTimeOffset>("CreatedOn")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<DateTimeOffset?>("DeletedOn")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<string>("Description")
|
|
.HasMaxLength(2048)
|
|
.HasColumnType("character varying(2048)");
|
|
|
|
b.Property<DateTimeOffset?>("DueDate")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasMaxLength(255)
|
|
.HasColumnType("character varying(255)");
|
|
|
|
b.Property<Guid?>("ProjectId")
|
|
.HasColumnType("uuid");
|
|
|
|
b.Property<Guid?>("SprintId")
|
|
.HasColumnType("uuid");
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.HasIndex("ProjectId");
|
|
|
|
b.HasIndex("SprintId");
|
|
|
|
b.ToTable("Tasks");
|
|
});
|
|
|
|
modelBuilder.Entity("Tasker.Web.Tasking.Data.Sprint", b =>
|
|
{
|
|
b.HasOne("Tasker.Web.Tasking.Data.Project", "Project")
|
|
.WithMany()
|
|
.HasForeignKey("ProjectId");
|
|
|
|
b.Navigation("Project");
|
|
});
|
|
|
|
modelBuilder.Entity("Tasker.Web.Tasking.Data.Task", b =>
|
|
{
|
|
b.HasOne("Tasker.Web.Tasking.Data.Project", "Project")
|
|
.WithMany()
|
|
.HasForeignKey("ProjectId");
|
|
|
|
b.HasOne("Tasker.Web.Tasking.Data.Sprint", "Sprint")
|
|
.WithMany()
|
|
.HasForeignKey("SprintId");
|
|
|
|
b.Navigation("Project");
|
|
|
|
b.Navigation("Sprint");
|
|
});
|
|
#pragma warning restore 612, 618
|
|
}
|
|
}
|
|
}
|