using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace EllieBot.Modules.Utility.UserRole; /// <summary> /// Represents a user's assigned role in a guild /// </summary> public class UserRole { /// <summary> /// ID of the guild /// </summary> public ulong GuildId { get; set; } /// <summary> /// ID of the user /// </summary> public ulong UserId { get; set; } /// <summary> /// ID of the Discord role /// </summary> public ulong RoleId { get; set; } } public class UserRoleConfiguration : IEntityTypeConfiguration<UserRole> { public void Configure(EntityTypeBuilder<UserRole> builder) { // Set composite primary key builder.HasKey(x => new { x.GuildId, x.UserId, x.RoleId }); // Create indexes for frequently queried columns builder.HasIndex(x => x.GuildId); builder.HasIndex(x => new { x.GuildId, x.UserId }); } }