mirror: entity general scheme

This commit is contained in:
2025-02-01 23:09:50 +07:00
parent 5c08b80c6b
commit cdf01dd57f
2 changed files with 65 additions and 20 deletions

View File

@@ -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`.

View 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
}