mirror: entity general scheme
This commit is contained in:
44
README.md
44
README.md
@@ -1,8 +1,9 @@
|
|||||||
# NTO
|
# NTO
|
||||||
|
|
||||||
## Задачи
|
## Задачи
|
||||||
|
|
||||||
- [x] Migrator
|
- [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)
|
- [ ] Easy init without git repository (like create-nto-app)
|
||||||
- [ ] Excel export
|
- [ ] Excel export
|
||||||
- [ ] Models validation logic (callbacks and other stuff)
|
- [ ] Models validation logic (callbacks and other stuff)
|
||||||
@@ -12,30 +13,37 @@
|
|||||||
## Установка
|
## Установка
|
||||||
|
|
||||||
Для разработки необходимы следующие инструменты:
|
Для разработки необходимы следующие инструменты:
|
||||||
* [Node.js](https://nodejs.org/en)
|
|
||||||
* [Golang](https://go.dev/dl/)
|
- [Node.js](https://nodejs.org/en)
|
||||||
* VSCode или Goland
|
- [Golang](https://go.dev/dl/)
|
||||||
* [UPX](https://github.com/upx/upx/releases/latest) - для сжатия.
|
- VSCode или Goland
|
||||||
|
- [UPX](https://github.com/upx/upx/releases/latest) - для сжатия.
|
||||||
**Необходимо зазеркалировать с Github и добавить в PATH!!!**
|
**Необходимо зазеркалировать с Github и добавить в PATH!!!**
|
||||||
* [Git](https://git-scm.com/)
|
- [Git](https://git-scm.com/)
|
||||||
* Wails3:
|
- Wails3:
|
||||||
Установка:
|
Установка:
|
||||||
`go install -v github.com/wailsapp/wails/v3/cmd/wails3@latest`
|
`go install -v github.com/wailsapp/wails/v3/cmd/wails3@latest`
|
||||||
**Необходимо зазеркалировать с Github и добавить в PATH!!!**
|
**Необходимо зазеркалировать с Github и добавить в PATH!!!**
|
||||||
* MinGw-64: https://jmeubank.github.io/tdm-gcc/
|
- MinGw-64: https://jmeubank.github.io/tdm-gcc/
|
||||||
**Необходимо зазеркалировать с Github!!!**
|
**Необходимо зазеркалировать с Github!!!**
|
||||||
|
|
||||||
## Разработка
|
## Разработка
|
||||||
|
|
||||||
### Hot Reload
|
### Hot Reload
|
||||||
|
|
||||||
Для запуска приложения в режиме разработчика используйте эту команду в директории проекта:
|
Для запуска приложения в режиме разработчика используйте эту команду в директории проекта:
|
||||||
|
|
||||||
```
|
```
|
||||||
wails3 dev
|
wails3 dev
|
||||||
```
|
```
|
||||||
|
|
||||||
DevServer также можно открыть по адресу http://localhost:34115.
|
DevServer также можно открыть по адресу http://localhost:34115.
|
||||||
Этот инструмент предоставляет возможность вызывать Go код прямо из инструментов разработчика.
|
Этот инструмент предоставляет возможность вызывать Go код прямо из инструментов разработчика.
|
||||||
|
|
||||||
### Генерация TS биндингов
|
### Генерация TS биндингов
|
||||||
|
|
||||||
Для обновления API для TypeScript используйте команду:
|
Для обновления API для TypeScript используйте команду:
|
||||||
|
|
||||||
```
|
```
|
||||||
wails3 generate bindings -ts
|
wails3 generate bindings -ts
|
||||||
```
|
```
|
||||||
@@ -43,33 +51,45 @@ wails3 generate bindings -ts
|
|||||||
## Сборка
|
## Сборка
|
||||||
|
|
||||||
Для финальной сборки запустите эту команду в директории проекта:
|
Для финальной сборки запустите эту команду в директории проекта:
|
||||||
|
|
||||||
```
|
```
|
||||||
go env -w CGO_ENABLED=1
|
go env -w CGO_ENABLED=1
|
||||||
wails3 build -clean -upx -v 2 -webview2 embed
|
wails3 build -clean -upx -v 2 -webview2 embed
|
||||||
```
|
```
|
||||||
|
|
||||||
**Перед релизом не забыть**:
|
**Перед релизом не забыть**:
|
||||||
* поместить все нужные asset'ы в папку assets
|
|
||||||
* изменить версию схемы БД (пока не нужно)
|
- поместить все нужные asset'ы в папку assets
|
||||||
* приложить сопроводительную записку.
|
- изменить версию схемы БД (пока не нужно)
|
||||||
|
- приложить сопроводительную записку.
|
||||||
|
|
||||||
## Работа без GitHub
|
## Работа без GitHub
|
||||||
|
|
||||||
Настройте прокси для скачивания зависимостей через прокси:
|
Настройте прокси для скачивания зависимостей через прокси:
|
||||||
|
|
||||||
```
|
```
|
||||||
go env -w GOPROXY="https://proxy.golang.org,direct"
|
go env -w GOPROXY="https://proxy.golang.org,direct"
|
||||||
```
|
```
|
||||||
|
|
||||||
## CRUD generator
|
## CRUD generator
|
||||||
|
|
||||||
Установите crudgen:
|
Установите crudgen:
|
||||||
|
|
||||||
```
|
```
|
||||||
go install git.gogacoder.ru/NTO/crudgen/cmd/crudgen@latest
|
go install git.gogacoder.ru/NTO/crudgen/cmd/crudgen@latest
|
||||||
```
|
```
|
||||||
|
|
||||||
Сгенерируйте DAL:
|
Сгенерируйте DAL:
|
||||||
|
|
||||||
```
|
```
|
||||||
cd dal
|
cd dal
|
||||||
go run gen.go
|
go run gen.go
|
||||||
```
|
```
|
||||||
|
|
||||||
Запустите crudgen:
|
Запустите crudgen:
|
||||||
|
|
||||||
```
|
```
|
||||||
crudgen -p internal
|
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