Microserviço de facilidades — .NET 8/PostgreSQL/AWS
O microservice-facilities é um microserviço que atua como facilitador central para operações comuns do ecossistema Aster/UVA. Seu objetivo principal é gerenciar e facilitar diversas operações e processos essenciais, incluindo:
O microservice-facilities gerencia os seguintes domínios principais:
Não aplicável - API pura sem frontend próprio
Clean Architecture com separação de responsabilidades:
Base URL: /api/v1 | Porta: 3010
PostgreSQL (facilities-db) com as seguintes tabelas:
Configurações principais via appsettings.json:
microservice-facilities/
├── Dockerfile
├── FacilitiesApi.sln
├── README.md
├── Src/
│ ├── Application.DTO/
│ │ ├── Application.DTO.csproj
│ │ ├── DashboardDto.cs
│ │ ├── ElectricityCompanyDTO.cs
│ │ ├── FileUploadRequestDto.cs
│ │ ├── NotificationMessageDto.cs
│ │ ├── TipsAndNewsDto.cs
│ │ └── UserNotificationDto.cs
│ ├── Application.Services/
│ │ ├── Application.Services.csproj
│ │ ├── Interfaces/
│ │ │ ├── IElectricityCompanyService.cs
│ │ │ ├── IFileQueueService.cs
│ │ │ ├── IFileUploadService.cs
│ │ │ ├── INotificationQueueService.cs
│ │ │ ├── INotificationService.cs
│ │ │ ├── ISESEmailService.cs
│ │ │ └── ITipsAndNewsService.cs
│ │ ├── Mappings/
│ │ │ ├── ElectricityCompanyMapping.cs
│ │ │ ├── NotificationMapping.cs
│ │ │ └── TipsAndNewsMapping.cs
│ │ └── Services/
│ │ ├── ElectricityCompanyService.cs
│ │ ├── FileQueueService.cs
│ │ ├── FileUploadService.cs
│ │ ├── NotificationQueueService.cs
│ │ ├── NotificationService.cs
│ │ ├── SESEmailService.cs
│ │ ├── SMTPEmailService.cs
│ │ └── TipsAndNewsService.cs
│ ├── Data.Core/
│ │ ├── AppDbContext.cs
│ │ ├── Data.Core.csproj
│ │ └── Migrations/
│ │ ├── 20240813165519_InitialCreate.cs
│ │ ├── 20240816234017_CreateElectricity.cs
│ │ ├── 20240821103704_ChangeElectricity.cs
│ │ ├── 20240821112911_ChangeElectricityIndex.cs
│ │ └── AppDbContextModelSnapshot.cs
│ ├── Data.Gateway/
│ │ ├── AneelAPI/
│ │ │ ├── AneelApiGateway.cs
│ │ │ ├── AneelApiResponse.cs
│ │ │ └── AneelRecord.cs
│ │ └── Data.Gateway.csproj
│ ├── Data.Repository.PostgreSQL/
│ │ ├── Data.Repository.PostgreSQL.csproj
│ │ ├── ElectricityCompanyRepository.cs
│ │ ├── NotificationRepository.cs
│ │ └── TipsAndNewsRepository.cs
│ ├── Domain.Core/
│ │ ├── Domain.Core.csproj
│ │ ├── IAneelApiGateway.cs
│ │ ├── IElectricityCompanyRepository.cs
│ │ ├── IRepository.cs
│ │ ├── ITipsAndNewsRepository.cs
│ │ └── IUserNotificationRepository.cs
│ ├── Domain.Model/
│ │ ├── Domain.Model.csproj
│ │ ├── ElectricityCompany.cs
│ │ ├── Stats.cs
│ │ ├── TipsAndNews.cs
│ │ └── UserNotification.cs
│ ├── Facilities.Api/
│ │ ├── Controllers/
│ │ │ └── V1/
│ │ │ ├── AttachmentsController.cs
│ │ │ ├── DashboardController.cs
│ │ │ ├── ElectricityCompaniesController.cs
│ │ │ └── UserNotificationsController.cs
│ │ ├── Configurations/
│ │ ├── Exceptions/
│ │ ├── Facilities.Api.csproj
│ │ ├── Program.cs
│ │ ├── appsettings.json
│ │ └── appsettings.Development.json
│ └── Facilities.Crosscutting/
│ ├── Facilities.Crosscutting.csproj
│ ├── Enums/
│ ├── Extensions/
│ ├── Settings/
│ │ └── AppSettings.cs
│ └── Utilities/
└── Tests/
└── TestFacilitiesApi/
├── TestFacilitiesApi.csproj
└── UnitTest1.cs
Este documento serve como referência única para entendimento técnico do projeto microservice-facilities. O serviço atua como facilitador central para operações comuns do ecossistema Aster/UVA, incluindo:
O microserviço implementa Clean Architecture com separação clara de responsabilidades, utiliza tecnologias modernas como .NET 8, PostgreSQL, AWS S3/SES/SQS, e possui logging estruturado para facilitar o monitoramento e debugging.
Alterações futuras devem respeitar o fluxo de versionamento e atualização descritos no histórico de revisões, mantendo a compatibilidade com os clientes existentes.