diff --git a/README.md b/README.md index f111549..8074bc6 100644 --- a/README.md +++ b/README.md @@ -1,41 +1,49 @@ # NTO ## Задачи + - [x] Migrator -- [ ] Crud service generator (based on gorm gen) +- [x] Crud service generator (based on gorm gen) - [ ] Easy init without git repository (like create-nto-app) - [ ] Excel export - [ ] Models validation logic (callbacks and other stuff) - [ ] Models [linter](https://git.gogacoder.ru/NTO/gormlint) -- [ ] Auto-generated frontend +- [ ] Auto-generated frontend ## Установка Для разработки необходимы следующие инструменты: -* [Node.js](https://nodejs.org/en) -* [Golang](https://go.dev/dl/) -* VSCode или Goland -* [UPX](https://github.com/upx/upx/releases/latest) - для сжатия. -**Необходимо зазеркалировать с Github и добавить в PATH!!!** -* [Git](https://git-scm.com/) -* Wails3: -Установка: -`go install -v github.com/wailsapp/wails/v3/cmd/wails3@latest` -**Необходимо зазеркалировать с Github и добавить в PATH!!!** -* MinGw-64: https://jmeubank.github.io/tdm-gcc/ -**Необходимо зазеркалировать с Github!!!** + +- [Node.js](https://nodejs.org/en) +- [Golang](https://go.dev/dl/) +- VSCode или Goland +- [UPX](https://github.com/upx/upx/releases/latest) - для сжатия. + **Необходимо зазеркалировать с Github и добавить в PATH!!!** +- [Git](https://git-scm.com/) +- Wails3: + Установка: + `go install -v github.com/wailsapp/wails/v3/cmd/wails3@latest` + **Необходимо зазеркалировать с Github и добавить в PATH!!!** +- MinGw-64: https://jmeubank.github.io/tdm-gcc/ + **Необходимо зазеркалировать с Github!!!** ## Разработка + ### Hot Reload + Для запуска приложения в режиме разработчика используйте эту команду в директории проекта: + ``` wails3 dev -``` -DevServer также можно открыть по адресу http://localhost:34115. +``` + +DevServer также можно открыть по адресу http://localhost:34115. Этот инструмент предоставляет возможность вызывать Go код прямо из инструментов разработчика. ### Генерация TS биндингов + Для обновления API для TypeScript используйте команду: + ``` wails3 generate bindings -ts ``` @@ -43,33 +51,45 @@ wails3 generate bindings -ts ## Сборка Для финальной сборки запустите эту команду в директории проекта: + ``` go env -w CGO_ENABLED=1 wails3 build -clean -upx -v 2 -webview2 embed ``` + **Перед релизом не забыть**: -* поместить все нужные asset'ы в папку assets -* изменить версию схемы БД (пока не нужно) -* приложить сопроводительную записку. + +- поместить все нужные asset'ы в папку assets +- изменить версию схемы БД (пока не нужно) +- приложить сопроводительную записку. ## Работа без GitHub + Настройте прокси для скачивания зависимостей через прокси: + ``` go env -w GOPROXY="https://proxy.golang.org,direct" ``` + ## CRUD generator + Установите crudgen: + ``` go install git.gogacoder.ru/NTO/crudgen/cmd/crudgen@latest ``` + Сгенерируйте DAL: + ``` cd dal go run gen.go ``` + Запустите crudgen: + ``` crudgen -p internal ``` -Не забудьте добавить новые модели в `Entities`, а сервисы в `Services`. +Не забудьте добавить новые модели в `Entities`, а сервисы в `Services`. diff --git a/internal/extras/mirror/export.go b/internal/extras/mirror/export.go new file mode 100644 index 0000000..c90da30 --- /dev/null +++ b/internal/extras/mirror/export.go @@ -0,0 +1,25 @@ +package mirror + +type Field struct { + Name string `json:"name"` + DisplayName string `json:"display_name"` + Hidden bool `json:"hidden"` + /* + possible values are `string`, `number`, `bool`, `timestamp`, `related` + `?` postfix means nullable type + `[]` postfix means array type; use only with `related` + */ + Type string `json:"type_name"` + RelatedModel *string `json:"related_model"` + RelatedModelKey *string `json:"related_model_key"` + RelationType *string `json:"relation_type"` +} + +type Model struct { + Name string + Fields []Field +} + +type Schema struct { + models []Model +}