@@ -64,13 +64,99 @@ generated/
6464 └── index.ts
6565```
6666
67+ ### Configuration Options
68+
6769The generator is configured via Prisma schema:
6870``` prisma
71+ generator class_validator {
72+ provider = "prisma-class-validator-generator"
73+ output = "./generated" // optional, defaults to ./generated
74+ swagger = "true" // optional, adds @ApiProperty decorators
75+ separateRelationFields = "true" // optional, creates separate base/relation classes
76+ }
77+ ```
78+
79+ #### Configuration Flags
80+
81+ ** ` swagger ` ** (optional, default: ` false ` )
82+ - Adds NestJS Swagger ` @ApiProperty ` decorators alongside class-validator decorators
83+ - Includes type information, examples, array handling, and enum values
84+ - Useful for automatic API documentation generation in NestJS applications
85+
86+ ** ` separateRelationFields ` ** (optional, default: ` false ` )
87+ - Splits models into separate base and relation classes for better NestJS integration
88+ - Creates ` ModelBase ` (scalar fields only), ` ModelRelations ` (relations only), and combined ` Model ` class
89+ - Enables use of NestJS mapped types like ` PickType ` , ` PartialType ` , etc.
90+ - Perfect for DTOs that need to exclude relations or work with specific field subsets
91+
92+ #### Example Usage
93+
94+ ** Basic Usage (class-validator only):**
95+ ``` prisma
96+ generator class_validator {
97+ provider = "prisma-class-validator-generator"
98+ output = "./generated"
99+ }
100+ ```
101+ Generates:
102+ ``` typescript
103+ export class User {
104+ @IsDefined ()
105+ @IsInt ()
106+ id! : number ;
107+
108+ @IsDefined ()
109+ @IsString ()
110+ email! : string ;
111+ }
112+ ```
113+
114+ ** With Swagger Support:**
115+ ``` prisma
69116generator class_validator {
70117 provider = "prisma-class-validator-generator"
71- output = "./generated" // optional, defaults to ./generated
118+ output = "./generated"
119+ swagger = "true"
120+ }
121+ ```
122+ Generates:
123+ ``` typescript
124+ export class User {
125+ @IsDefined ()
126+ @ApiProperty ({ example: ' Generated by autoincrement' , type: " integer" })
127+ @IsInt ()
128+ id! : number ;
129+
130+ @IsDefined ()
131+ @ApiProperty ({ type: " string" })
132+ @IsString ()
133+ email! : string ;
134+ }
135+ ```
136+
137+ ** With Relation Splitting:**
138+ ``` prisma
139+ generator class_validator {
140+ provider = "prisma-class-validator-generator"
141+ output = "./generated"
142+ separateRelationFields = "true"
143+ }
144+ ```
145+ Generates:
146+ - ` UserBase.model.ts ` - Only scalar fields with decorators
147+ - ` UserRelations.model.ts ` - Only relation fields with decorators
148+ - ` User.model.ts ` - Combined class extending UserBase with relations
149+
150+ ** Full NestJS Integration:**
151+ ``` prisma
152+ generator class_validator {
153+ provider = "prisma-class-validator-generator"
154+ output = "./generated"
155+ swagger = "true"
156+ separateRelationFields = "true"
72157}
73158```
159+ Perfect for NestJS APIs with automatic Swagger docs and flexible DTOs.
74160
75161## Modern Development Setup (Prisma 6+)
76162
0 commit comments