mirror: entity general scheme
This commit is contained in:
44
README.md
44
README.md
@@ -1,8 +1,9 @@
|
||||
# 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)
|
||||
@@ -12,30 +13,37 @@
|
||||
## Установка
|
||||
|
||||
Для разработки необходимы следующие инструменты:
|
||||
* [Node.js](https://nodejs.org/en)
|
||||
* [Golang](https://go.dev/dl/)
|
||||
* VSCode или Goland
|
||||
* [UPX](https://github.com/upx/upx/releases/latest) - для сжатия.
|
||||
|
||||
- [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:
|
||||
- [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/
|
||||
- MinGw-64: https://jmeubank.github.io/tdm-gcc/
|
||||
**Необходимо зазеркалировать с Github!!!**
|
||||
|
||||
## Разработка
|
||||
|
||||
### Hot Reload
|
||||
|
||||
Для запуска приложения в режиме разработчика используйте эту команду в директории проекта:
|
||||
|
||||
```
|
||||
wails3 dev
|
||||
```
|
||||
|
||||
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`.
|
||||
|
||||
25
internal/extras/mirror/export.go
Normal file
25
internal/extras/mirror/export.go
Normal file
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user