Metadata-Version: 2.1
Name: devnetgen
Version: 0.2.7.2
Summary: 
Author: Александр Окунев
Author-email: a.okunev@mininform74.ru
Requires-Python: >=3.10,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: jinja2 (>=3.1.3,<4.0.0)
Requires-Dist: typer[all] (>=0.9.0,<0.10.0)
Description-Content-Type: text/markdown

# dev-netgen

Плагин для автоматической генерации c# кода - CRUD'а с файлом контроллера и комментариев на основе выбранной сущности.
### CRUD и controller
Включает генерацию валидатора с правилами `.NotNull().NotEmpty()` для полей типа `string` и `IsInEnum()` для полей типа перечислений сущности.

Сгенерированный CRUD содержит комментарии, взятые из summaries сущности и её полей.

Есть поддержка для legacy-проектов, в контроллерах которых используются `ControllerHelper.GetResultWithErrorAsync()`

##### Возможности

Создаёт Vm и Dto подмодели для каждого навигационного свойства, если в после открывающегося тэга `summary` сущности стоит **'@'**
```c#
/// <summary>@
/// Навигационное свойство - список соглашений
/// </summary>
public List<Agreement> Agreements { get; } = new();   
```

Не включает поля, помеченные знаком **'!'** у сущности, в результирующие Vm/Dto
```c#
/// <summary>!
/// Текстовое поле с информацией, которое не попадет в Vm
/// </summary>
public string Data { get; set; }
```

После генерации отметки очищаются

### Summaries для Vm и Dto

Копирует все имеющиеся комментарии к свойствам сущности в целевую или во все относящиеся к ней Vm/Dto. Добавляет комментарий к классу, если он отсутствует.


## Установка

#### Установить python пакет (python >= 3.10)

```
pip install devnetgen
```

#### Установить плагин в IDE

1. Установить плагин `LivePlugin` by Dmitry Kandalov (иногда встаёт с 2 попытки )
2. Добавить новый пользовательский Kotlin плагин через окно `LivePlugin` и скопировать в него код из _LivePlugin IntelliJ/plugin.kts_
3. Активировать пользовательский плагин в том же окне

## Использование

#### Из IDE
ПКМ по сущности - `NetGen: генерация` ->
- `Сгенерировать CRUD`
- `Сгенерировать CRUD на legacy controller`
- `Сгенерировать <summary> в файле(-ах) Vm/Dto на основе сущности`
#### Через консоль
```
dev-netgen all [path/to/entity.cs] --legacy-controller
```

```
dev-netgen summary [path/to/class_or_entity.cs]
```
