Generate DTO for entity: $ARGUMENTS
Instructions
-
Parse arguments:
- Entity name (required): e.g.,
Employee,TextSnippetText - Options:
--with-mapping(include MapToEntity),--minimal(core props only)
- Entity name (required): e.g.,
-
Find the entity:
- Search in
*.Domain/Entities/folders - Read the entity class to understand its properties
- Search in
-
Generate DTO following platform patterns:
Location:
*.Application/EntityDtos/<EntityName>Dto.csTemplate:
```csharp
public class {Entity}Dto : PlatformEntityDto<{Entity}, string>
{
// Empty constructor required
public {Entity}Dto() { }
// Constructor maps from entity
public {Entity}Dto({Entity} entity) : base(entity)
{
// Map core properties
}
// CORE PROPERTIES
public string? Id { get; set; }
// ... other properties from entity
// OPTIONAL LOAD PROPERTIES (for With* methods)
public RelatedDto? Related { get; set; }
// WITH* FLUENT METHODS
public {Entity}Dto WithRelated(RelatedEntity related)
{
Related = new RelatedDto(related);
return this;
}
// PLATFORM OVERRIDES
protected override object? GetSubmittedId() => Id;
protected override string GenerateNewId() => Ulid.NewUlid().ToString();
protected override {Entity} MapToEntity({Entity} entity, MapToEntityModes mode)
{
// Map DTO properties back to entity
return entity;
}
}
```
4. Read the template file for complete pattern:
- .github/prompts/create-entity-dto.prompt.md
- After generation:
- Show the generated DTO
- Ask if any properties should be excluded or modified
- Offer to create the file
IMPORTANT Task Planning Notes
- Always plan and break many small todo tasks
- Always add a final review todo task to review the works done at the end to find any fix or enhancement needed