/* Options:
Date: 2025-07-19 02:07:14
Version: 8.71
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://team.evovoice.io

//GlobalNamespace: 
//MakePartial: True
//MakeVirtual: True
//MakeInternal: False
//MakeDataContractsExtensible: False
//AddNullableAnnotations: False
//AddReturnMarker: True
//AddDescriptionAsComments: True
//AddDataContractAttributes: False
//AddIndexesToDataMembers: False
//AddGeneratedCodeAttributes: False
//AddResponseStatus: False
//AddImplicitVersion: 
//InitializeCollections: False
//ExportValueTypes: False
IncludeTypes: GetAuthStatus.*
//ExcludeTypes: 
//AddNamespaces: 
//AddDefaultXmlNamespace: http://schemas.servicestack.net/types
*/

using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using Voice.Api.Authentication;

namespace Voice.Api.Authentication
{
    public enum DashboardPermissions
    {
        ViewFiles,
        ViewNotifications,
        ViewSessions,
        ViewEndpoints,
        ViewReports,
        ViewCustomers,
        ViewFlows,
    }

    ///<summary>
    ///Gets the current authenticated status or null
    ///</summary>
    [Route("/auth/status", "GET")]
    [Api(Description="Gets the current authenticated status or null")]
    public partial class GetAuthStatus
        : IReturn<UserInfo>, IGet
    {
    }

    public partial class UserInfo
    {
        public virtual string Id { get; set; }
        public virtual bool IsAuthenticated { get; set; }
        public virtual string FirstName { get; set; }
        public virtual string LastName { get; set; }
        public virtual string Name { get; set; }
        public virtual string AvatarUrl { get; set; }
        public virtual string EmailAddress { get; set; }
        public virtual List<string> Roles { get; set; }
        public virtual List<string> AccountIds { get; set; }
        public virtual List<string> AccountNames { get; set; }
        public virtual List<DashboardPermissions> DashboardPermissions { get; set; }
    }

}