7a4c516a20
- 后端:新增 CloudSync 认证/权限/端点/服务与 DTO - 数据:新增用户/会话/安全策略实体与 EF Core migrations - 前端:新增云同步设置 UI、客户端与本地存储;Vite 支持 maui 构建输出到 wwwroot - 桌面端:新增 Avalonia 项目、内置 WebServer、托盘与 Windows 全局热键 - 发布/构建:新增 Windows/Linux 发布脚本与统一入口;调整 MAUI 资源与安装包配置 - 文档:同步更新 README/docs 与协作规则
201 lines
6.8 KiB
C#
201 lines
6.8 KiB
C#
// <auto-generated />
|
|
using System;
|
|
using Hua.Todo.Application.Data;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
|
|
|
#nullable disable
|
|
|
|
namespace Hua.Todo.Application.Migrations
|
|
{
|
|
[DbContext(typeof(TodoDbContext))]
|
|
partial class TodoDbContextModelSnapshot : ModelSnapshot
|
|
{
|
|
protected override void BuildModel(ModelBuilder modelBuilder)
|
|
{
|
|
#pragma warning disable 612, 618
|
|
modelBuilder.HasAnnotation("ProductVersion", "10.0.5");
|
|
|
|
modelBuilder.Entity("Hua.Todo.Core.Entities.SecurityPolicyEntity", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("TEXT");
|
|
|
|
b.Property<bool>("AllowPersist")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("INTEGER")
|
|
.HasDefaultValue(true);
|
|
|
|
b.Property<bool>("AllowSync")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("INTEGER")
|
|
.HasDefaultValue(true);
|
|
|
|
b.Property<Guid>("UserId")
|
|
.HasColumnType("TEXT");
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.HasIndex("UserId")
|
|
.IsUnique();
|
|
|
|
b.ToTable("SecurityPolicies", (string)null);
|
|
});
|
|
|
|
modelBuilder.Entity("Hua.Todo.Core.Entities.TaskEntity", b =>
|
|
{
|
|
b.Property<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("INTEGER");
|
|
|
|
b.Property<DateTime>("CreatedAt")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("TEXT")
|
|
.HasDefaultValueSql("datetime('now')");
|
|
|
|
b.Property<bool>("IsCompleted")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("INTEGER")
|
|
.HasDefaultValue(false);
|
|
|
|
b.Property<int?>("ParentTaskId")
|
|
.HasColumnType("INTEGER");
|
|
|
|
b.Property<int>("Priority")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("INTEGER")
|
|
.HasDefaultValue(1);
|
|
|
|
b.Property<string>("Title")
|
|
.IsRequired()
|
|
.HasMaxLength(200)
|
|
.HasColumnType("TEXT");
|
|
|
|
b.Property<DateTime>("UpdatedAt")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("TEXT")
|
|
.HasDefaultValueSql("datetime('now')");
|
|
|
|
b.Property<Guid>("UserId")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("TEXT")
|
|
.HasDefaultValue(new Guid("00000000-0000-0000-0000-000000000001"));
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.HasIndex("ParentTaskId");
|
|
|
|
b.HasIndex("UserId");
|
|
|
|
b.ToTable("Tasks", (string)null);
|
|
});
|
|
|
|
modelBuilder.Entity("Hua.Todo.Core.Entities.UserEntity", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("TEXT");
|
|
|
|
b.Property<string>("PasswordHash")
|
|
.IsRequired()
|
|
.HasColumnType("TEXT");
|
|
|
|
b.Property<string>("Role")
|
|
.IsRequired()
|
|
.HasMaxLength(32)
|
|
.HasColumnType("TEXT");
|
|
|
|
b.Property<string>("UserName")
|
|
.IsRequired()
|
|
.HasMaxLength(64)
|
|
.HasColumnType("TEXT");
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.HasIndex("UserName")
|
|
.IsUnique();
|
|
|
|
b.ToTable("Users", (string)null);
|
|
});
|
|
|
|
modelBuilder.Entity("Hua.Todo.Core.Entities.UserSessionEntity", b =>
|
|
{
|
|
b.Property<Guid>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("TEXT");
|
|
|
|
b.Property<DateTime>("CreatedAtUtc")
|
|
.HasColumnType("TEXT");
|
|
|
|
b.Property<DateTime>("ExpiresAtUtc")
|
|
.HasColumnType("TEXT");
|
|
|
|
b.Property<DateTime?>("StepUpExpiresAtUtc")
|
|
.HasColumnType("TEXT");
|
|
|
|
b.Property<Guid>("UserId")
|
|
.HasColumnType("TEXT");
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.HasIndex("UserId");
|
|
|
|
b.ToTable("UserSessions", (string)null);
|
|
});
|
|
|
|
modelBuilder.Entity("Hua.Todo.Core.Entities.SecurityPolicyEntity", b =>
|
|
{
|
|
b.HasOne("Hua.Todo.Core.Entities.UserEntity", "User")
|
|
.WithMany()
|
|
.HasForeignKey("UserId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired();
|
|
|
|
b.Navigation("User");
|
|
});
|
|
|
|
modelBuilder.Entity("Hua.Todo.Core.Entities.TaskEntity", b =>
|
|
{
|
|
b.HasOne("Hua.Todo.Core.Entities.TaskEntity", "ParentTask")
|
|
.WithMany("SubTasks")
|
|
.HasForeignKey("ParentTaskId")
|
|
.OnDelete(DeleteBehavior.Restrict);
|
|
|
|
b.HasOne("Hua.Todo.Core.Entities.UserEntity", "User")
|
|
.WithMany("Tasks")
|
|
.HasForeignKey("UserId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired();
|
|
|
|
b.Navigation("ParentTask");
|
|
|
|
b.Navigation("User");
|
|
});
|
|
|
|
modelBuilder.Entity("Hua.Todo.Core.Entities.UserSessionEntity", b =>
|
|
{
|
|
b.HasOne("Hua.Todo.Core.Entities.UserEntity", "User")
|
|
.WithMany()
|
|
.HasForeignKey("UserId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired();
|
|
|
|
b.Navigation("User");
|
|
});
|
|
|
|
modelBuilder.Entity("Hua.Todo.Core.Entities.TaskEntity", b =>
|
|
{
|
|
b.Navigation("SubTasks");
|
|
});
|
|
|
|
modelBuilder.Entity("Hua.Todo.Core.Entities.UserEntity", b =>
|
|
{
|
|
b.Navigation("Tasks");
|
|
});
|
|
#pragma warning restore 612, 618
|
|
}
|
|
}
|
|
}
|