PostgreSQL Entities
Create the following classes for the entities that will exist in the API based on the diagram above.
.\Entities\User.cs
using System;
namespace SlackClone.Entities
{
public class User
{
public Guid Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string FullName { get => $"{FirstName} {LastName}"; }
public string Email { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public UserStatus Status { get; set; }
}
}
.\Entities\UserStatus.cs
using System;
namespace SlackClone.Entities
{
public class UserStatus
{
public Guid Id { get; set; }
public string Status { get; set; }
public string Description { get; set; }
public int Rank { get; set; }
}
}
.\Entities\DirectMessage.cs
using System;
namespace SlackClone.Entities
{
public class DirectMessage
{
public Guid Id { get; set; }
public string Content { get; set; }
public User CreatedBy { get; set; }
public User SentTo { get; set; }
public DateTime CreatedAt { get; set; }
}
}
.\Entities\Channel.cs
using System;
using System.Collections.Generic;
namespace SlackClone.Entities
{
public class Channel
{
public Guid Id { get; set; }
public string Name { get; set; }
public ICollection<ChannelChannelMessage>
ChannelsChannelMessages { get; set; }
}
}
.\Entities\ChannelMessage.cs
using System;
using System.Collections.Generic;
namespace SlackClone.Entities
{
public class ChannelMessage
{
public Guid Id { get; set; }
public string Content { get; set; }
public User CreatedBy { get; set; }
public DateTime CreatedAt { get; set; }
public int Likes { get; set; }
public ICollection<ChannelChannelMessage>
ChannelsChannelMessages { get; set; }
}
}
.\Entities\ChannelChannelMessage.cs
using System;
namespace SlackClone.Entities
{
public class ChannelChannelMessage
{
public Guid ChannelId { get; set; }
public Channel Channel { get; set; }
public Guid MessageId { get; set; }
public ChannelMessage ChannelMessage { get; set; }
}
}
Last updated