forked from SoDOff-Project/sodoff
initial data model work
This commit is contained in:
parent
3f408bbae6
commit
7e406fd1b1
@ -31,6 +31,7 @@ public class DBContext : DbContext {
|
||||
public DbSet<UserMissionData> UserMissionData { get; set; } = null!;
|
||||
public DbSet<UserBadgeCompleteData> UserBadgesCompleted { get; set; } = null!;
|
||||
public DbSet<UserBan> Bans { get; set; } = null!;
|
||||
public DbSet<Message> Messages { get; set; } = null!;
|
||||
|
||||
private readonly IOptions<ApiServerConfig> config;
|
||||
|
||||
@ -160,6 +161,12 @@ public class DBContext : DbContext {
|
||||
builder.Entity<Viking>().HasMany(v => v.UserBans)
|
||||
.WithOne(r => r.Viking);
|
||||
|
||||
builder.Entity<Viking>().HasMany(v => v.MessageBoard)
|
||||
.WithOne(r => r.ToViking);
|
||||
|
||||
builder.Entity<Viking>().HasMany(v => v.MessagesMade)
|
||||
.WithOne(r => r.Viking);
|
||||
|
||||
// Dragons
|
||||
builder.Entity<Dragon>().HasOne(d => d.Viking)
|
||||
.WithMany(e => e.Dragons)
|
||||
@ -310,5 +317,19 @@ public class DBContext : DbContext {
|
||||
builder.Entity<UserBan>().HasOne(r => r.Viking)
|
||||
.WithMany(e => e.UserBans)
|
||||
.HasForeignKey(e => e.VikingId);
|
||||
|
||||
// Messages
|
||||
builder.Entity<Message>().HasOne(r => r.Viking)
|
||||
.WithMany(e => e.MessagesMade)
|
||||
.HasForeignKey(e => e.VikingId);
|
||||
|
||||
builder.Entity<Message>().HasOne(r => r.ToViking)
|
||||
.WithMany(e => e.MessageBoard)
|
||||
.HasForeignKey(e => e.ToVikingId);
|
||||
|
||||
builder.Entity<Message>().HasMany(e => e.Replies)
|
||||
.WithOne(e => e.ParentMessage)
|
||||
.HasForeignKey(e => e.ParentMessageId)
|
||||
.OnDelete(DeleteBehavior.Cascade);
|
||||
}
|
||||
}
|
||||
|
38
src/Model/Message.cs
Normal file
38
src/Model/Message.cs
Normal file
@ -0,0 +1,38 @@
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using sodoff.Schema;
|
||||
|
||||
namespace sodoff.Model;
|
||||
|
||||
public class Message
|
||||
{
|
||||
[Key]
|
||||
public int Id { get; set; }
|
||||
|
||||
public int VikingId { get; set; }
|
||||
public int ToVikingId { get; set; }
|
||||
|
||||
public int QueueID { get; set; }
|
||||
public int? ConversationID { get; set; }
|
||||
public int? ParentMessageId { get; set; }
|
||||
|
||||
public MessageType? MessageType { get; set; }
|
||||
public MessageTypeID? MessageTypeID { get; set; }
|
||||
public MessageLevel MessageLevel { get; set; }
|
||||
|
||||
public string? Data { get; set; }
|
||||
public string? MemberMessage { get; set; }
|
||||
public string? NonMemberMessage { get; set; }
|
||||
|
||||
public DateTime CreatedAt { get; set; }
|
||||
public DateTime? LastUpdatedAt { get; set; }
|
||||
|
||||
public bool IsDeleted { get; set; }
|
||||
public bool IsNew { get; set; }
|
||||
|
||||
public virtual Viking? Viking { get; set; }
|
||||
public virtual Viking? ToViking { get; set; }
|
||||
|
||||
public virtual Message? ParentMessage { get; set; }
|
||||
public virtual ICollection<Message> Replies { get; set; } = null!;
|
||||
}
|
@ -45,6 +45,8 @@ public class Viking {
|
||||
public virtual ICollection<UserMissionData> UserMissions { get; set; } = null!;
|
||||
public virtual ICollection<UserBadgeCompleteData> UserBadgesCompleted { get; set; } = null!;
|
||||
public virtual ICollection<UserBan> UserBans { get; set; } = null!;
|
||||
public virtual ICollection<Message> MessageBoard { get; set; } = null!;
|
||||
public virtual ICollection<Message> MessagesMade { get; set; } = null!;
|
||||
|
||||
public DateTime? CreationDate { get; set; }
|
||||
public DateTime? BirthDate { get; set; }
|
||||
|
8
src/Schema/MessageLevel.cs
Normal file
8
src/Schema/MessageLevel.cs
Normal file
@ -0,0 +1,8 @@
|
||||
namespace sodoff.Schema
|
||||
{
|
||||
public enum MessageLevel
|
||||
{
|
||||
Canned = 1,
|
||||
WhiteList
|
||||
}
|
||||
}
|
11
src/Schema/MessageType.cs
Normal file
11
src/Schema/MessageType.cs
Normal file
@ -0,0 +1,11 @@
|
||||
namespace sodoff.Schema
|
||||
{
|
||||
public enum MessageType
|
||||
{
|
||||
Chat = 1,
|
||||
Post = 2,
|
||||
Data = 3,
|
||||
Challenge = 4,
|
||||
Announcement = 5
|
||||
}
|
||||
}
|
28
src/Schema/MessageTypeID.cs
Normal file
28
src/Schema/MessageTypeID.cs
Normal file
@ -0,0 +1,28 @@
|
||||
namespace sodoff.Schema
|
||||
{
|
||||
public enum MessageTypeID
|
||||
{
|
||||
Unknown = 0,
|
||||
Billboard = 1,
|
||||
Dialog = 2,
|
||||
Notification = 3,
|
||||
Rank = 4,
|
||||
BuddyList = 5,
|
||||
Jumpstar = 6,
|
||||
SpaAdventureGift = 7,
|
||||
PrizeCode = 8,
|
||||
Achievement = 9,
|
||||
Messaging = 10,
|
||||
SocialRank = 11,
|
||||
MuttCare = 12,
|
||||
Mission = 13,
|
||||
ChallengeWon = 14,
|
||||
InviteFriend = 15,
|
||||
Gifts = 19,
|
||||
FriendReward = 20,
|
||||
ThreadUpdate = 21,
|
||||
Photo = 22,
|
||||
GreetingCard = 23,
|
||||
ProfileSelection = 24
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user