TourIAm/TIAM.Entities/Users/UserProductMapping.cs

47 lines
1.5 KiB
C#

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text.Json.Serialization;
using AyCode.Interfaces.Entities;
using AyCode.Interfaces.TimeStampInfo;
using TIAM.Entities.Products;
namespace TIAM.Entities.Users;
[Table("UserProductMapping")]
public class UserProductMapping : IEntityGuid, ITimeStampInfo
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
public Guid UserId { get; set; }
public Guid ProductId { get; set; }
public virtual User User { get; set; }
public virtual Product Product { get; set; }
public int Permissions { get; set; } = 1;
public string? JsonDetails { get; set; }
public DateTime Created { get; set; }
public DateTime Modified { get; set; }
public UserProductMapping()
{ }
public UserProductMapping(Guid userId, Guid productId) : this(Guid.NewGuid(), userId, productId)
{ }
public UserProductMapping(Guid id, Guid userId, Guid productId) : this(id, userId, productId, 1)
{ }
public UserProductMapping(Guid id, Guid userId, Guid productId, int permissions) : this(id, userId, productId, permissions, null)
{ }
public UserProductMapping(Guid id, Guid userId, Guid productId, int permissions, string? jsonDetails) : this()
{
Id = id;
UserId = userId;
ProductId = productId;
Permissions = permissions;
JsonDetails = jsonDetails;
}
}