using System.Text.Json.Serialization;

public class AdministrativeData
{
    public AdministrativeData(AdministrativeDataElement name, AdministrativeDataElement photo, AdministrativeDataElement birthdate) 
    { 
        this.name = name;
        this.photo = photo;
        this.birthdate = birthdate;
    }

    public AdministrativeDataElement name { get; set; }
    public AdministrativeDataElement photo { get; set; }
    public AdministrativeDataElement birthdate { get; set; }

    public class AdministrativeDataElement
    {
        public AdministrativeDataElement(bool inaccuracyFlag, string inaccuracyFlagReason, int inaccuracyFlagCounter, int changeCounter, int maxUpdatesVerificationCount, DateTime lastChangeDate, bool isValidated) 
        { 
            this.inaccuracyFlag = inaccuracyFlag;
            this.inaccuracyFlagReason = inaccuracyFlagReason;
            this.inaccuracyFlagCounter = inaccuracyFlagCounter;
            this.changeCounter = changeCounter;
            this.maxUpdatesVerificationCount = maxUpdatesVerificationCount;
            this.lastChangeDate = lastChangeDate;
            this.isValidated = isValidated;
        }

        [JsonPropertyName("inaccuracyFlag")]
        public bool inaccuracyFlag { get; set; }
        [JsonPropertyName("inaccuracyFlagReason")]
        public string inaccuracyFlagReason { get; set; }
        [JsonPropertyName("inaccuracyFlagCounter")]
        public int inaccuracyFlagCounter { get; set; }
        [JsonPropertyName("changeCounter")]
        public int changeCounter { get; set; }
        [JsonPropertyName("maxUpdatesVerificationCount")]
        public int maxUpdatesVerificationCount { get; set; }
        [JsonPropertyName("lastChangeDate")]
        public DateTime lastChangeDate { get; set; }
        [JsonPropertyName("isValidated")]
        public bool isValidated { get; set; }
    }
}