using System.ComponentModel.DataAnnotations.Schema;
using System.Text.Json.Serialization;
using DigitalData.EmailProfilerDispatcher.Abstraction.Attributes;

namespace DigitalData.UserManager.Application.DTOs.User
{
    //TODO: inherit from base read dto
    public record UserReadDto()
    {
		public int Id { get; set; }

		public string? Prename { get; set; }

		public string? Name { get; set; }

		public required string Username { get; set; }

		public string? Shortname { get; set; }

		public string? Email { get; set; }

		public required string Language { get; set; }

		public string? Comment { get; set; }

		public bool Deleted { get; set; }

		public required string DateFormat { get; set; }

        public string? ChangedWho { get; set; }

        public required DateTime? ChangedWhen { get; set; }

        public string? AddedWho { get; init; }

        public required DateTime AddedWhen { get; init; }
		
        public bool Active { get; set; }

		[JsonIgnore]
		[NotMapped]
		[TemplatePlaceholder("[NAME_SENDER]")]
		public string FullName => $"{Prename} {Name}";
	}
}