32 lines
1.2 KiB
C#
32 lines
1.2 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
|
using Newtonsoft.Json;
|
|
using QuestShare.Common;
|
|
|
|
namespace QuestShare.Server.Models
|
|
{
|
|
public class SessionMember
|
|
{
|
|
public Guid ClientSessionId { get; set; }
|
|
public required Client Client { get; set; }
|
|
public required Session Session { get; set; }
|
|
// public required string CharacterId { get; set; }
|
|
public DateTime Created { get; set; }
|
|
public DateTime LastUpdated { get; set; }
|
|
}
|
|
|
|
internal class ClientSessionConfiguration : IEntityTypeConfiguration<SessionMember>
|
|
{
|
|
public void Configure(EntityTypeBuilder<SessionMember> builder)
|
|
{
|
|
builder.ToTable("SessionMembers");
|
|
builder.HasKey(cs => cs.ClientSessionId);
|
|
builder.HasMany<Client>();
|
|
builder.HasMany<Session>();
|
|
builder.Property(cs => cs.Created).HasDefaultValueSql("current_timestamp").ValueGeneratedOnAddOrUpdate();
|
|
builder.Property(cs => cs.LastUpdated).HasDefaultValueSql("current_timestamp").ValueGeneratedOnAddOrUpdate();
|
|
}
|
|
}
|
|
}
|