Project was designed according to Clean Architecture and must comply with it.
Project has next limitation:
Data that is transferred from external sources (cmd/api/etc.) must be transferred exclusively using DTOs from
folders internal/processors to processors in same folder
Data that is returned from the system (internal folders) should only be returned using
internal/presenters
Methods and structures in the internal/processors folder are used to transform data from outside the system into the system and
on the contrary. Logic in these methods should not be implemented
Main application logic should be placed in the internal/usecases/{usecase} folders
Database interactions (mongo/pgsql/etc.) are placed in the internal/repositories folder. Operating on database outside of this
folders forbidden, any interactions with internal/usecases must be bound to entity
All elements from the entity folder must be used only within internal packages
cli parameters and project configuration
By default, the project will look for the config.yaml file in the directory where the project is launched, this can be
change by passing the config-file argument (for example --config-file=/tmp/cfg.yml), any additional
parameters can be written in the argumentsresolver package. You can connect resolver in any part of the project using
argumentsresolver.ArgumentsInterface interface