// ***********************************************************************
// 
//     AgileWebs
// 
// ***********************************************************************
using Core.Thalos.Adapters.Common.Constants;
using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
using System.Text.Json.Serialization;
namespace Core.Thalos.Domain.Contexts.Onboarding.Request
{
    /// 
    /// Data transfer object (DTO) for adding permissions.
    /// 
    public class PermissionRequest
    {
        /// 
        /// Gets or sets the name of the permission.
        /// 
        [BsonElement("name")]
        [BsonRepresentation(BsonType.String)]
        [JsonPropertyName("name")]
        public string Name { get; set; } = null!;
        /// 
        /// Gets or sets the description of the permission.
        /// 
        [BsonElement("description")]
        [BsonRepresentation(BsonType.String)]
        [JsonPropertyName("description")]
        public string? Description { get; set; }
        /// 
        /// Gets or sets the access level of the permission.
        /// 
        [BsonElement("accessLevel")]
        [BsonRepresentation(BsonType.String)]
        [JsonPropertyName("accessLevel")]
        [JsonConverter(typeof(JsonStringEnumConverter))]
        public AccessLevelEnum? AccessLevel { get; set; } = null!;
    }
}