Skip to main content
Glama
IBadge.cs6.21 kB
using System; using System.Collections.Generic; using System.Text; namespace Api.DigitalPages.Interfaces.Models { /// <summary> /// Representa uma badge. /// </summary> public interface IBadge : IBaseModelV3, IRestrictedDataV4<IBadgeAuthorization> { /// <summary> /// Nome da badge. /// </summary> string Name { get; set; } /// <summary> /// Descrição da badge. /// </summary> string Description { get; set; } /// <summary> /// Indica se a badge está habilitada. /// </summary> bool IsEnabled { get; set; } /// <summary> /// Indica se a badge está oculta. /// </summary> bool IsHidden { get; set; } /// <summary> /// Configuração de registro da badge. /// </summary> IBadgeRegisterConfig RegisterConfig { get; set; } /// <summary> /// Entidades que estao relacinadas ao badge. /// </summary> List<IBadgeEntity> Entities { get; set; } /// <summary> /// Regras da badge. /// </summary> List<IBadgeRule> Rules { get; set; } /// <summary> /// Registros de usuários da badge. /// </summary> List<IBadgeUserRegister> UserRegisters { get; set; } /// <summary> /// Configurações de registro necessárias para registrar a badge. /// </summary> List<IBadgeRegisterConfig> RequiredForRegister { get; set; } } public interface IBadgeRule :IBaseModelV3<IBadge> { public long? MinimumPoints { get; set; } public BadRuleLimitation Limitation { get; set; } public List<IBadgeCondition> Conditions { get; set; } } public interface IBadgeCondition : IBaseModelV3<IBadgeRule> { public ObjectType ReferenceType { get; set; } public Guid? ReferenceUid { get; set; } public IBadgeConditionType ConditionType { get; set; } } public enum IBadgeConditionType { All, Any } public enum BadRuleLimitation { None, Daily, Weekly, Monthly, Yearly } public interface IBadgeEntity : IBaseEntityReference, IBaseModelV3<IBadge> { } /// <summary> /// Representa a autorização de uma badge. /// </summary> public interface IBadgeAuthorization : IBaseAuthorizationV4, IBaseModelV3<IBadge> { } public interface IBadgeAuthorizationReference : IBaseAuthorizationReferenceV4, IBaseModelV3<IBadgeAuthorization> { } /// <summary> /// Configuração de registro de uma badge. /// </summary> public interface IBadgeRegisterConfig : IBaseModelV3<IBadge> { /// <summary> /// Tipo de registro autorizado. /// </summary> BadgeRegisterType AuthorizeRegisterType { get; set; } /// <summary> /// Tempo após o qual a badge expira. /// </summary> TimeSpan? ExpireAfterAt { get; set; } /// <summary> /// Data de expiração da badge. /// </summary> DateTime? ExpireAt { get; set; } /// <summary> /// Número máximo de usuários que podem registrar a badge. /// </summary> long? MaxUsers { get; set; } /// <summary> /// Pontos necessários para registrar a badge. /// </summary> long? RequiredPoints { get; set; } /// <summary> /// Badges necessárias para registrar esta badge. /// </summary> List<IBadge> RequiredBadges { get; set; } } /// <summary> /// Registro de uma badge de usuário. /// </summary> public interface IBadgeUserRegister : IBaseModelV3<IBadge> { /// <summary> /// Referência do usuário. /// </summary> IBadgeUserReferente UserReference { get; set; } /// <summary> /// Tipo de registro da badge. /// </summary> BadgeRegisterType RegisterType { get; set; } /// <summary> /// Data de expiração do registro da badge. /// </summary> DateTime? ExpireAt { get; set; } } /// <summary> /// Referência de uma badge de usuário. /// </summary> public interface IBadgeUserReferente : IBaseModelV3 { /// <summary> /// UID do usuário. /// </summary> Guid UserUid { get; set; } /// <summary> /// Pontos do usuário. /// </summary> long TotalPoints { get; set; } /// <summary> /// Próxima data de expiração dos pontos. /// </summary> DateTime? NextPointToExpire { get; set; } /// <summary> /// Registros de badges do usuário. /// </summary> List<IBadgeUserRegister> Registers { get; set; } List<IBadgeUserPoints> Points { get; set; } } /// <summary> /// Pontos de um usuário. /// </summary> public interface IBadgeUserPoints : IBaseModelV3<IBadgeUserReferente> { /// <summary> /// Pontos do usuário. /// </summary> long Points { get; set; } /// <summary> /// Descrição dos pontos. /// </summary> string Description { get; set; } /// <summary> /// Data de expiração dos pontos. /// </summary> DateTime? ExpireAt { get; set; } /// <summary> /// Tipo de referência dos pontos. /// </summary> ObjectType? ReferenceType { get; set; } /// <summary> /// UID da referência dos pontos. /// </summary> Guid? ReferenceUid { get; set; } } /// <summary> /// Tipos de registro de uma badge. /// </summary> [Flags] public enum BadgeRegisterType : long { /// <summary> /// Registro pelo usuário. /// </summary> ByUser = 1, /// <summary> /// Registro pelo gerente. /// </summary> ByManager = 1L << 1, /// <summary> /// Registro por pontos. /// </summary> ByPoints = 1L << 2 } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rkm097git/euconquisto-composer-mcp-poc'

If you have feedback or need assistance with the MCP directory API, please join our Discord server