C# Discord bot made using NetCord for keeping a TikTok-style streak
1using Microsoft.EntityFrameworkCore;
2using StreakBot.Data.Entities;
3
4namespace StreakBot.Data;
5
6public class StreakDbContext : DbContext
7{
8 public StreakDbContext(DbContextOptions<StreakDbContext> options) : base(options)
9 {
10 }
11
12 public DbSet<Streak> Streaks => Set<Streak>();
13 public DbSet<Channel> Channels => Set<Channel>();
14
15 protected override void OnModelCreating(ModelBuilder modelBuilder)
16 {
17 modelBuilder.Entity<Streak>(entity =>
18 {
19 entity.HasKey(e => e.Id);
20 entity.Property(e => e.CreatedDate).IsRequired();
21 entity.Property(e => e.User1Id).IsRequired();
22 entity.Property(e => e.User2Id).IsRequired();
23 entity.Property(e => e.ServerId).IsRequired();
24 entity.Property(e => e.LastResetCheck).IsRequired();
25 entity.Property(e => e.ReminderSent).IsRequired();
26 });
27
28 modelBuilder.Entity<Channel>(entity =>
29 {
30 entity.HasKey(e => e.Id);
31 entity.Property(e => e.ServerId).IsRequired();
32 entity.Property(e => e.ChannelId).IsRequired();
33 entity.Property(e => e.ChannelType).IsRequired();
34 });
35 }
36}