Tooark.Entities 2.1.8

dotnet add package Tooark.Entities --version 2.1.8
                    
NuGet\Install-Package Tooark.Entities -Version 2.1.8
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Tooark.Entities" Version="2.1.8" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Tooark.Entities" Version="2.1.8" />
                    
Directory.Packages.props
<PackageReference Include="Tooark.Entities" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Tooark.Entities --version 2.1.8
                    
#r "nuget: Tooark.Entities, 2.1.8"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Tooark.Entities@2.1.8
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Tooark.Entities&version=2.1.8
                    
Install as a Cake Addin
#tool nuget:?package=Tooark.Entities&version=2.1.8
                    
Install as a Cake Tool

Tooark.Entities

Biblioteca para gerenciamento e manutenção de entidades base em projetos .NET.

Conteúdo

Entidades

As entidades disponíveis são:

1. Entidade Base

Funcionalidade: Classe base abstrata contemplando a definição de um identificador único para a entidade.

  • Propriedades:

    • Id (Guid): Identificador único para a entidade.
  • Coluna de Banco de Dados:

    • id: Tipo: uuid.
  • Métodos:

    • SetId(Guid id): Define o identificador único para a entidade.

Exemplo de Uso

2. Entidade Inicial

Funcionalidade: Classe base abstrata que herda de BaseEntity e define campos para rastrear a criação da entidade.

  • Propriedades:

    • CreatedBy (Guid): Identificador do usuário que criou a entidade.
    • CreatedAt (DateTime): Data e hora de criação da entidade.
  • Coluna de Banco de Dados:

    • created_by: Tipo: uuid.
    • created_at: Tipo: timestamp with time zone.
  • Métodos:

    • SetCreatedBy(Guid createdBy): Define o identificador do criador da entidade e a data e hora de criação.

3. Entidade Detalhada

Funcionalidade: Classe base abstrata que herda de InitialEntity e define campos para rastrear a última atualização da entidade.

  • Propriedades:

    • UpdatedBy (Guid): Identificador do usuário que atualizou a entidade pela última vez.
    • UpdatedAt (DateTime): Data e hora da última atualização da entidade.
  • Coluna de Banco de Dados:

    • updated_by: Tipo: uuid.
    • updated_at: Tipo: timestamp with time zone.
  • Métodos:

    • SetCreatedBy(Guid createdBy): Define o identificador do criador e o atualizador da entidade.
    • SetUpdatedBy(Guid updatedBy): Define o identificador do atualizador da entidade e a data e hora da última atualização.

4. Entidade Versionada

Funcionalidade: Classe base abstrata que herda de DetailedEntity e define um campo para rastrear a versão da entidade.

  • Propriedades:

    • Version (long): Versão da entidade.
  • Coluna de Banco de Dados:

    • version: Tipo: bigint.
  • Métodos:

    • SetUpdatedBy(Guid updatedBy): Incrementa a versão da entidade ao atualizar.

5. Entidade Deletável

Funcionalidade: Classe base abstrata que herda de DetailedEntity e define um campo para rastrear a exclusão lógica da entidade.

  • Propriedades:

    • Deleted (bool): Indica se a entidade foi excluída logicamente.
  • Coluna de Banco de Dados:

    • deleted: Tipo: boolean.
  • Métodos:

    • SetDeleted(Guid changedBy): Marca a entidade como excluída logicamente.
    • SetRestored(Guid changedBy): Marca a entidade como não excluída logicamente.

6. Entidade Auditável

Funcionalidade: Classe base abstrata que herda de DetailedEntity e define campos para rastrear a exclusão lógica e restauração da entidade.

  • Propriedades:

    • Version (long): Versão da entidade.
    • Deleted (bool): Indica se a entidade foi excluída logicamente.
    • DeletedBy (Guid): Identificador do usuário que excluiu a entidade.
    • DeletedAt (DateTime?): Data e hora da exclusão da entidade.
    • RestoredBy (Guid): Identificador do usuário que restaurou a entidade.
    • RestoredAt (DateTime?): Data e hora da restauração da entidade.
  • Coluna de Banco de Dados:

    • deleted: Tipo: boolean.
    • deleted_by: Tipo: uuid.
    • deleted_at: Tipo: timestamp with time zone.
    • restored_by: Tipo: uuid.
    • restored_at: Tipo: timestamp with time zone.
  • Métodos:

    • SetDeleted(Guid deletedBy): Marca a entidade como excluída, definindo o usuário e a data e hora da exclusão e incrementando a versão.
    • SetRestored(Guid restoredBy): Marca a entidade como restaurada, definindo o usuário e a data e hora da restauração e incrementando a versão.

.7 Entidade de Arquivo

Funcionalidade: Classe base abstrata que herda de InitialEntity e define campos para armazenar informações de arquivos.

  • Propriedades:

    • FileName (string): Nome do arquivo.
    • Title (string): Título do arquivo.
    • Link (string): Link do arquivo no bucket.
    • FileFormat (string): Formato do arquivo.
    • Type (EFileType): Tipo do arquivo.
    • Size (long): Tamanho do arquivo em bytes.
  • Coluna de Banco de Dados:

    • file_name: Tipo: text.
    • title: Tipo: varchar(255).
    • link: Tipo: text.
    • file_format: Tipo: varchar(10).
    • type: Tipo: int.
    • size: Tipo: bigint.
  • Construtores:

    • FileEntity(string fileUrl, string name, Guid createdBy): Inicializa uma nova instância da classe FileEntity.
    • FileEntity(string fileUrl, string name, string publicUrl, Guid createdBy): Inicializa uma nova instância da classe FileEntity.
    • FileEntity(string fileUrl, string name, string publicUrl, string fileFormat, EFileType type, Guid createdBy): Inicializa uma nova instância da classe FileEntity.

Exemplo de Uso

Entidade Base

using Tooark.Entities;

public class Produto : BaseEntity
{
  public string Nome { get; set; }
  public decimal Valor { get; set; }
}

public class Program
{
  public static void Main()
  {
    var produto = new Produto
    {
      Nome = "Produto A",
      Valor = 100.0m
    };

    produto.SetId(Guid.NewGuid()); // Define o identificador único para a entidade.
  }
}

Entidade Inicial

using Tooark.Entities;

public class Produto : InitialEntity
{
  public string Nome { get; set; }
  public decimal Valor { get; set; }
}

public class Program
{
  public static void Main()
  {
    var produto = new Produto
    {
      Nome = "Produto A",
      Valor = 100.0m
    };

    // Definindo o criador da entidade
    produto.SetCreatedBy(Guid.NewGuid()); // Define o identificador do criador da entidade e a data e hora de criação.
  }
}

Entidade Detalhada

using Tooark.Entities;

public class Produto : DetailedEntity
{
  public string Nome { get; set; }
  public decimal Valor { get; set; }
}

public class Program
{
  public static void Main()
  {
    var produto = new Produto
    {
      Nome = "Produto A",
      Valor = 100.0m
    };

    // Definindo o criador da entidade
    produto.SetCreatedBy(Guid.NewGuid()); // Define o identificador do criador e o atualizador da entidade.

    // Atualizando a entidade
    produto.SetUpdatedBy(Guid.NewGuid()); // Define o identificador do atualizador da entidade e a data e hora da última atualização.
  }
}

Entidade Versionada

using Tooark.Entities;

public class Produto : VersionedEntity
{
  public string Nome { get; set; }
  public decimal Valor { get; set; }
}

public class Program
{
  public static void Main()
  {
    var produto = new Produto
    {
      Nome = "Produto A",
      Valor = 100.0m
    };

    // Definindo o criador da entidade
    produto.SetCreatedBy(Guid.NewGuid()); // Define o identificador do criador e o atualizador da entidade.

    // Atualizando a entidade
    produto.SetUpdatedBy(Guid.NewGuid()); // Incrementa a versão da entidade ao atualizar.

    var version = produto.Version; // Obtém a versão da entidade.
  }
}

Entidade Deletável

using Tooark.Entities;

public class Produto : SoftDeletableEntity
{
  public string Nome { get; set; }
  public decimal Valor { get; set; }
}

public class Program
{
  public static void Main()
  {
    var produto = new Produto
    {
      Nome = "Produto A",
      Valor = 100.0m
    };

    // Definindo o criador da entidade
    produto.SetCreatedBy(Guid.NewGuid()); // Define o identificador do criador e o atualizador da entidade.

    // Excluindo logicamente a entidade
    produto.SetDeleted(Guid.NewGuid()); // Marca a entidade como excluída logicamente.

    // Restaurando a entidade
    produto.SetRestored(Guid.NewGuid()); // Marca a entidade como não excluída logicamente.
  }
}

Entidade Auditável

using Tooark.Entities;

public class Produto : AuditableEntity
{
  public string Nome { get; set; }
  public decimal Valor { get; set; }
}

public class Program
{
  public static void Main()
  {
    var produto = new Produto
    {
      Nome = "Produto A",
      Valor = 100.0m
    };

    // Definindo o criador da entidade
    produto.SetCreatedBy(Guid.NewGuid()); // Define o identificador do criador e o atualizador da entidade.

    // Atualizando a entidade
    produto.SetUpdatedBy(Guid.NewGuid()); // Define o identificador do atualizador da entidade e a data e hora da última atualização.

    // Excluindo logicamente a entidade
    produto.SetDeleted(Guid.NewGuid()); // Marca a entidade como excluída, definindo o usuário e a data e hora da exclusão e incrementando a versão.

    // Restaurando a entidade
    produto.SetRestored(Guid.NewGuid()); // Marca a entidade como restaurada, definindo o usuário e a data e hora da restauração e incrementando a versão.
  }
}

Entidade de Arquivo

using Tooark.Entities;

public class Arquivo : FileEntity
{
  public string Descricao { get; set; }
}

public class Program
{
  public static void Main()
  {
    var arquivo = new Arquivo("https://bucket.com/arquivo.pdf", "Arquivo.pdf", Guid.NewGuid())
    {
      Descricao = "Arquivo de teste"
    };
  }
}

Dependências

Códigos de Erro para notificações

Os códigos de erro para notificações são:

  • Base: T.ENT.BAS
  • Initial: T.ENT.INI
  • Detailed: T.ENT.DET
  • SoftDeletable: T.ENT.SOF
  • Auditable: T.ENT.AUD

Contribuição

Contribuições são bem-vindas! Sinta-se à vontade para abrir issues e pull requests no repositório Tooark.Entities.

Licença

Este projeto está licenciado sob a licença BSD 3-Clause. Veja o arquivo LICENSE para mais detalhes.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Tooark.Entities:

Package Downloads
Tooark

Package with all Tooark resources for .NET applications.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.1.8 225 6/26/2025
2.1.7 236 6/17/2025
2.1.6 387 6/15/2025
2.1.5 155 6/14/2025
2.1.4 161 6/3/2025
2.1.3.3 145 6/3/2025
2.1.3.2 140 6/3/2025
2.1.3 143 6/3/2025
2.1.2 199 5/17/2025
2.1.1 86 5/3/2025
2.1.0 83 5/3/2025
2.0.8 103 4/26/2025
2.0.7 177 4/22/2025
2.0.6 190 4/20/2025
2.0.5 149 3/14/2025
2.0.4 165 3/14/2025
2.0.3 162 3/14/2025
2.0.2 164 3/13/2025
2.0.1 154 3/13/2025
2.0.0 433 3/13/2025