IFileOptions.cs•3.56 kB
using System;
using System.Collections.Generic;
namespace Api.DigitalPages.Interfaces.Models
{
/// <summary>
/// Representa um arquivo salvo no DAM
/// </summary>
public interface IFile : IBaseModelV3, IRestrictedDataV4<IFileAuthorization>
{
/// <summary>
/// Nome atribuído ao arquivo.
/// </summary>
string Name { get; set; }
/// <summary>
/// Descriçao atribuída ao arquivo
/// </summary>
string Description { get; set; }
/// <summary>
/// Versoes relacionados ao arquivo
/// </summary>
List<IFileVersion> Versions { get; set; }
string CustomPath { get; set; }
}
/// <summary>
/// Representa a versao de um IFile
/// </summary>
public interface IFileVersion : IBaseModelV3<IFile>
{
/// <summary>
/// Id customizado para a versao do arquivo.
/// </summary>
string CustomId { get; set; }
/// <summary>
/// Tamanho do arquivo em bytes
/// </summary>
long ContentSize { get; set; }
/// <summary>
/// MimeType do arquivo.
/// </summary>
string MimeType { get; set; }
/// <summary>
/// Estado de publicaçao do conteúdo
/// </summary>
FileVersionState State { get; set; }
/// <summary>
/// Estado de processamento do conteúdo
/// </summary>
FileProcessState ProcessState { get; set; }
/// <summary>
/// Tags, dados e etc... atribuído ao arquivo.
/// </summary>
List<IFilePropertyValue> Properties { get; set; }
/// <summary>
/// Entidades vinculadas a versão
/// </summary>
List<IFileEntity> Entities { get; set; }
/// <summary>
/// Textos buscaveis dentro do conteúdo
/// </summary>
List<IFileSearchableText> SearchableTexts { get; set; }
}
public enum TagOrigin
{
Manual,
Automatic
}
public interface IFileSearchableText : IBaseModelV3<IFileVersion>
{
string Content { get; set; }
string Location { get; set; }
string Annotation { get; set; }
}
public interface IFileEntity : IBaseModelV3<IFileVersion>, IBaseEntityReference
{
}
/// <summary>
/// Representa o cadastro de dados customizados em um IFileVersion
/// </summary>
public interface IFilePropertyValue : IBaseModelV3<IFileVersion>, IDynamicPropertyValue
{
/// <summary>
/// Tipo de propriedade atrelada.
/// </summary>
FilePropertyType PropertyType { get; set; }
}
/// <summary>
/// Permissao de acesso atribuida ao arquivo
/// </summary>
public interface IFileAuthorization: IBaseAuthorizationV4
{
}
/// <summary>
///
/// </summary>
public interface IFileAuthorizationReference : IBaseAuthorizationReferenceV4
{
}
/// <summary>
/// Estados válidos para uma versao
/// </summary>
public enum FileVersionState
{
Active,
Inactive,
Draft,
Error
}
public enum FileProcessState
{
Idle,
Processing,
Completed,
Error
}
/// <summary>
/// Tipo de propriedade atribuida a um IFileVersion
/// </summary>
public enum FilePropertyType
{
Tag,
Info,
Text,
Filter,
KeyPhrases
}
}