Metadata-Version: 2.1
Name: devnetgen
Version: 0.1.4
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

Плагин для автоматической генерации CRUD'а и файла контроллера для выбранной сущности. Включает генерацию валидатора с правилами `.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; }
```

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


## Установка

#### Установить python пакет

```
pip install devnetgen
```

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

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

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

#### Из IDE

ПКМ по сущности - `NetGen: CRUD` -> `Create CRUD` / `Create CRUD: legacy controller`

#### Через консоль

```
dev-netgen [path/to/entity.cs] --legacy-controller
```
