MCPcopy Create free account
hub / github.com/GmpABR/NexusFlow / OnModelCreating

Method OnModelCreating

backend/Data/AppDbContext.cs:30–268  ·  view source on GitHub ↗
(ModelBuilder modelBuilder)

Source from the content-addressed store, hash-verified

28 public DbSet<BoardAutomation> BoardAutomations { get; set; }
29
30 protected override void OnModelCreating(ModelBuilder modelBuilder)
31 {
32 base.OnModelCreating(modelBuilder);
33
34 // User
35 modelBuilder.Entity<User>(entity =>
36 {
37 entity.HasIndex(u => u.Username).IsUnique();
38 entity.HasIndex(u => u.Email).IsUnique();
39 });
40
41 // Board -> User
42 modelBuilder.Entity<Board>(entity =>
43 {
44 entity.HasOne(b => b.Owner)
45 .WithMany(u => u.Boards)
46 .HasForeignKey(b => b.OwnerId)
47 .OnDelete(DeleteBehavior.Cascade);
48 });
49
50 // Column -> Board
51 modelBuilder.Entity<Column>(entity =>
52 {
53 entity.HasOne(c => c.Board)
54 .WithMany(b => b.Columns)
55 .HasForeignKey(c => c.BoardId)
56 .OnDelete(DeleteBehavior.Cascade);
57 });
58
59 // TaskCard -> Column
60 modelBuilder.Entity<TaskCard>(entity =>
61 {
62 entity.HasOne(t => t.Column)
63 .WithMany(c => c.TaskCards)
64 .HasForeignKey(t => t.ColumnId)
65 .OnDelete(DeleteBehavior.Cascade);
66 });
67
68 // TaskActivity -> TaskCard
69 modelBuilder.Entity<TaskActivity>(entity =>
70 {
71 entity.HasIndex(a => a.TaskCardId); // Optimization
72
73 entity.HasOne(a => a.TaskCard)
74 .WithMany() // TaskCard doesn't need explicit list of activities for now, can query by ID
75 .HasForeignKey(a => a.TaskCardId)
76 .OnDelete(DeleteBehavior.Cascade);
77
78 entity.HasOne(a => a.User)
79 .WithMany()
80 .HasForeignKey(a => a.UserId)
81 .OnDelete(DeleteBehavior.Cascade);
82 });
83
84 // BoardMember (User <-> Board many-to-many)
85 modelBuilder.Entity<BoardMember>(entity =>
86 {
87 entity.HasOne(bm => bm.User)

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected