tychat-contracts 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"login.dto.d.ts","sourceRoot":"","sources":["../../src/auth/login.dto.ts"],"names":[],"mappings":"AAEA,qBAAa,QAAQ;IAGnB,QAAQ,EAAE,MAAM,CAAC;IAIjB,QAAQ,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"login.dto.d.ts","sourceRoot":"","sources":["../../src/auth/login.dto.ts"],"names":[],"mappings":"AAGA,qBAAa,QAAQ;IAInB,QAAQ,EAAE,MAAM,CAAC;IAKjB,QAAQ,EAAE,MAAM,CAAC;CAClB"}
@@ -10,6 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.LoginDto = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
13
14
  const class_validator_1 = require("class-validator");
14
15
  class LoginDto {
15
16
  username;
@@ -17,11 +18,13 @@ class LoginDto {
17
18
  }
18
19
  exports.LoginDto = LoginDto;
19
20
  __decorate([
21
+ (0, swagger_1.ApiProperty)({ description: 'Nome de usuário', example: 'usuario' }),
20
22
  (0, class_validator_1.IsString)(),
21
23
  (0, class_validator_1.MinLength)(1, { message: 'username não pode ser vazio' }),
22
24
  __metadata("design:type", String)
23
25
  ], LoginDto.prototype, "username", void 0);
24
26
  __decorate([
27
+ (0, swagger_1.ApiProperty)({ description: 'Senha do usuário', example: 'senha123' }),
25
28
  (0, class_validator_1.IsString)(),
26
29
  (0, class_validator_1.MinLength)(1, { message: 'password não pode ser vazio' }),
27
30
  __metadata("design:type", String)
@@ -1 +1 @@
1
- {"version":3,"file":"create-tenant.dto.d.ts","sourceRoot":"","sources":["../../src/tenants/create-tenant.dto.ts"],"names":[],"mappings":"AAWA,qBAAa,eAAe;IAI1B,IAAI,EAAE,MAAM,CAAC;IAKb,MAAM,EAAE,MAAM,CAAC;IAMf,MAAM,CAAC,EAAE,MAAM,CAAC;IAKhB,MAAM,EAAE,MAAM,CAAC;IAKf,MAAM,EAAE,MAAM,CAAC;IAKf,UAAU,EAAE,MAAM,CAAC;IAInB,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;CAChC"}
1
+ {"version":3,"file":"create-tenant.dto.d.ts","sourceRoot":"","sources":["../../src/tenants/create-tenant.dto.ts"],"names":[],"mappings":"AAYA,qBAAa,eAAe;IAK1B,IAAI,EAAE,MAAM,CAAC;IAMb,MAAM,EAAE,MAAM,CAAC;IAOf,MAAM,CAAC,EAAE,MAAM,CAAC;IAMhB,MAAM,EAAE,MAAM,CAAC;IAMf,MAAM,EAAE,MAAM,CAAC;IAMf,UAAU,EAAE,MAAM,CAAC;IAKnB,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;CAChC"}
@@ -10,6 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.CreateTenantDto = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
13
14
  const class_validator_1 = require("class-validator");
14
15
  class CreateTenantDto {
15
16
  slug;
@@ -22,18 +23,21 @@ class CreateTenantDto {
22
23
  }
23
24
  exports.CreateTenantDto = CreateTenantDto;
24
25
  __decorate([
26
+ (0, swagger_1.ApiProperty)({ description: 'Identificador único do tenant na URL', example: 'acme', maxLength: 255 }),
25
27
  (0, class_validator_1.IsString)(),
26
28
  (0, class_validator_1.MinLength)(1, { message: 'slug não pode ser vazio' }),
27
29
  (0, class_validator_1.MaxLength)(255),
28
30
  __metadata("design:type", String)
29
31
  ], CreateTenantDto.prototype, "slug", void 0);
30
32
  __decorate([
33
+ (0, swagger_1.ApiProperty)({ description: 'Host do banco de dados do tenant', example: 'localhost', maxLength: 255 }),
31
34
  (0, class_validator_1.IsString)(),
32
35
  (0, class_validator_1.MinLength)(1, { message: 'dbHost não pode ser vazio' }),
33
36
  (0, class_validator_1.MaxLength)(255),
34
37
  __metadata("design:type", String)
35
38
  ], CreateTenantDto.prototype, "dbHost", void 0);
36
39
  __decorate([
40
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Porta do banco de dados', example: 5432, minimum: 1, maximum: 65535, default: 5432 }),
37
41
  (0, class_validator_1.IsOptional)(),
38
42
  (0, class_validator_1.IsInt)(),
39
43
  (0, class_validator_1.Min)(1),
@@ -41,24 +45,28 @@ __decorate([
41
45
  __metadata("design:type", Number)
42
46
  ], CreateTenantDto.prototype, "dbPort", void 0);
43
47
  __decorate([
48
+ (0, swagger_1.ApiProperty)({ description: 'Nome do banco de dados', example: 'tychat_acme', maxLength: 255 }),
44
49
  (0, class_validator_1.IsString)(),
45
50
  (0, class_validator_1.MinLength)(1, { message: 'dbName não pode ser vazio' }),
46
51
  (0, class_validator_1.MaxLength)(255),
47
52
  __metadata("design:type", String)
48
53
  ], CreateTenantDto.prototype, "dbName", void 0);
49
54
  __decorate([
55
+ (0, swagger_1.ApiProperty)({ description: 'Usuário do banco de dados', example: 'tychat_user', maxLength: 255 }),
50
56
  (0, class_validator_1.IsString)(),
51
57
  (0, class_validator_1.MinLength)(1, { message: 'dbUser não pode ser vazio' }),
52
58
  (0, class_validator_1.MaxLength)(255),
53
59
  __metadata("design:type", String)
54
60
  ], CreateTenantDto.prototype, "dbUser", void 0);
55
61
  __decorate([
62
+ (0, swagger_1.ApiProperty)({ description: 'Senha do banco de dados', example: 'secret', maxLength: 255 }),
56
63
  (0, class_validator_1.IsString)(),
57
64
  (0, class_validator_1.MinLength)(1, { message: 'dbPassword não pode ser vazio' }),
58
65
  (0, class_validator_1.MaxLength)(255),
59
66
  __metadata("design:type", String)
60
67
  ], CreateTenantDto.prototype, "dbPassword", void 0);
61
68
  __decorate([
69
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Status do tenant', enum: ['active', 'inactive'], default: 'active' }),
62
70
  (0, class_validator_1.IsOptional)(),
63
71
  (0, class_validator_1.IsIn)(['active', 'inactive'], { message: 'status deve ser active ou inactive' }),
64
72
  __metadata("design:type", String)
@@ -1 +1 @@
1
- {"version":3,"file":"update-tenant-payload.dto.d.ts","sourceRoot":"","sources":["../../src/tenants/update-tenant-payload.dto.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,kEAAkE;AAClE,qBAAa,sBAAuB,SAAQ,eAAe;IAEzD,EAAE,EAAE,MAAM,CAAC;CACZ"}
1
+ {"version":3,"file":"update-tenant-payload.dto.d.ts","sourceRoot":"","sources":["../../src/tenants/update-tenant-payload.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,kEAAkE;AAClE,qBAAa,sBAAuB,SAAQ,eAAe;IAGzD,EAAE,EAAE,MAAM,CAAC;CACZ"}
@@ -10,6 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.UpdateTenantPayloadDto = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
13
14
  const class_validator_1 = require("class-validator");
14
15
  const update_tenant_dto_1 = require("./update-tenant.dto");
15
16
  /** Payload do Kafka para tenant.update: id + campos opcionais. */
@@ -18,6 +19,7 @@ class UpdateTenantPayloadDto extends update_tenant_dto_1.UpdateTenantDto {
18
19
  }
19
20
  exports.UpdateTenantPayloadDto = UpdateTenantPayloadDto;
20
21
  __decorate([
22
+ (0, swagger_1.ApiProperty)({ description: 'ID do tenant a ser atualizado', example: 1 }),
21
23
  (0, class_validator_1.IsInt)(),
22
24
  __metadata("design:type", Number)
23
25
  ], UpdateTenantPayloadDto.prototype, "id", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"update-tenant.dto.d.ts","sourceRoot":"","sources":["../../src/tenants/update-tenant.dto.ts"],"names":[],"mappings":"AAWA,qBAAa,eAAe;IAK1B,IAAI,CAAC,EAAE,MAAM,CAAC;IAMd,MAAM,CAAC,EAAE,MAAM,CAAC;IAMhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAMhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAMhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAMhB,UAAU,CAAC,EAAE,MAAM,CAAC;IAIpB,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;CAChC"}
1
+ {"version":3,"file":"update-tenant.dto.d.ts","sourceRoot":"","sources":["../../src/tenants/update-tenant.dto.ts"],"names":[],"mappings":"AAYA,qBAAa,eAAe;IAM1B,IAAI,CAAC,EAAE,MAAM,CAAC;IAOd,MAAM,CAAC,EAAE,MAAM,CAAC;IAOhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAOhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAOhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAOhB,UAAU,CAAC,EAAE,MAAM,CAAC;IAKpB,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;CAChC"}
@@ -10,6 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.UpdateTenantDto = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
13
14
  const class_validator_1 = require("class-validator");
14
15
  class UpdateTenantDto {
15
16
  slug;
@@ -22,6 +23,7 @@ class UpdateTenantDto {
22
23
  }
23
24
  exports.UpdateTenantDto = UpdateTenantDto;
24
25
  __decorate([
26
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Identificador único do tenant na URL', example: 'acme', maxLength: 255 }),
25
27
  (0, class_validator_1.IsOptional)(),
26
28
  (0, class_validator_1.IsString)(),
27
29
  (0, class_validator_1.MinLength)(1, { message: 'slug não pode ser vazio' }),
@@ -29,6 +31,7 @@ __decorate([
29
31
  __metadata("design:type", String)
30
32
  ], UpdateTenantDto.prototype, "slug", void 0);
31
33
  __decorate([
34
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Host do banco de dados do tenant', example: 'localhost', maxLength: 255 }),
32
35
  (0, class_validator_1.IsOptional)(),
33
36
  (0, class_validator_1.IsString)(),
34
37
  (0, class_validator_1.MinLength)(1, { message: 'dbHost não pode ser vazio' }),
@@ -36,6 +39,7 @@ __decorate([
36
39
  __metadata("design:type", String)
37
40
  ], UpdateTenantDto.prototype, "dbHost", void 0);
38
41
  __decorate([
42
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Porta do banco de dados', example: 5432, minimum: 1, maximum: 65535 }),
39
43
  (0, class_validator_1.IsOptional)(),
40
44
  (0, class_validator_1.IsInt)(),
41
45
  (0, class_validator_1.Min)(1),
@@ -43,6 +47,7 @@ __decorate([
43
47
  __metadata("design:type", Number)
44
48
  ], UpdateTenantDto.prototype, "dbPort", void 0);
45
49
  __decorate([
50
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Nome do banco de dados', example: 'tychat_acme', maxLength: 255 }),
46
51
  (0, class_validator_1.IsOptional)(),
47
52
  (0, class_validator_1.IsString)(),
48
53
  (0, class_validator_1.MinLength)(1, { message: 'dbName não pode ser vazio' }),
@@ -50,6 +55,7 @@ __decorate([
50
55
  __metadata("design:type", String)
51
56
  ], UpdateTenantDto.prototype, "dbName", void 0);
52
57
  __decorate([
58
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Usuário do banco de dados', example: 'tychat_user', maxLength: 255 }),
53
59
  (0, class_validator_1.IsOptional)(),
54
60
  (0, class_validator_1.IsString)(),
55
61
  (0, class_validator_1.MinLength)(1, { message: 'dbUser não pode ser vazio' }),
@@ -57,6 +63,7 @@ __decorate([
57
63
  __metadata("design:type", String)
58
64
  ], UpdateTenantDto.prototype, "dbUser", void 0);
59
65
  __decorate([
66
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Senha do banco de dados', example: 'secret', maxLength: 255 }),
60
67
  (0, class_validator_1.IsOptional)(),
61
68
  (0, class_validator_1.IsString)(),
62
69
  (0, class_validator_1.MinLength)(1, { message: 'dbPassword não pode ser vazio' }),
@@ -64,6 +71,7 @@ __decorate([
64
71
  __metadata("design:type", String)
65
72
  ], UpdateTenantDto.prototype, "dbPassword", void 0);
66
73
  __decorate([
74
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Status do tenant', enum: ['active', 'inactive'] }),
67
75
  (0, class_validator_1.IsOptional)(),
68
76
  (0, class_validator_1.IsIn)(['active', 'inactive'], { message: 'status deve ser active ou inactive' }),
69
77
  __metadata("design:type", String)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tychat-contracts",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "DTOs compartilhados com class-validator (API e microserviços)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -11,12 +11,14 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "class-validator": "^0.14.1",
14
- "reflect-metadata": "^0.2.2"
14
+ "reflect-metadata": "*"
15
15
  },
16
16
  "devDependencies": {
17
+ "@nestjs/swagger": "^11.2.6",
17
18
  "typescript": "^5.7.3"
18
19
  },
19
20
  "peerDependencies": {
21
+ "@nestjs/swagger": "^11.2.6",
20
22
  "reflect-metadata": "*"
21
23
  }
22
24
  }
@@ -1,10 +1,13 @@
1
+ import { ApiProperty } from '@nestjs/swagger';
1
2
  import { IsString, MinLength } from 'class-validator';
2
3
 
3
4
  export class LoginDto {
5
+ @ApiProperty({ description: 'Nome de usuário', example: 'usuario' })
4
6
  @IsString()
5
7
  @MinLength(1, { message: 'username não pode ser vazio' })
6
8
  username: string;
7
9
 
10
+ @ApiProperty({ description: 'Senha do usuário', example: 'senha123' })
8
11
  @IsString()
9
12
  @MinLength(1, { message: 'password não pode ser vazio' })
10
13
  password: string;
@@ -1,3 +1,4 @@
1
+ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
1
2
  import {
2
3
  IsString,
3
4
  IsOptional,
@@ -10,37 +11,44 @@ import {
10
11
  } from 'class-validator';
11
12
 
12
13
  export class CreateTenantDto {
14
+ @ApiProperty({ description: 'Identificador único do tenant na URL', example: 'acme', maxLength: 255 })
13
15
  @IsString()
14
16
  @MinLength(1, { message: 'slug não pode ser vazio' })
15
17
  @MaxLength(255)
16
18
  slug: string;
17
19
 
20
+ @ApiProperty({ description: 'Host do banco de dados do tenant', example: 'localhost', maxLength: 255 })
18
21
  @IsString()
19
22
  @MinLength(1, { message: 'dbHost não pode ser vazio' })
20
23
  @MaxLength(255)
21
24
  dbHost: string;
22
25
 
26
+ @ApiPropertyOptional({ description: 'Porta do banco de dados', example: 5432, minimum: 1, maximum: 65535, default: 5432 })
23
27
  @IsOptional()
24
28
  @IsInt()
25
29
  @Min(1)
26
30
  @Max(65535)
27
31
  dbPort?: number;
28
32
 
33
+ @ApiProperty({ description: 'Nome do banco de dados', example: 'tychat_acme', maxLength: 255 })
29
34
  @IsString()
30
35
  @MinLength(1, { message: 'dbName não pode ser vazio' })
31
36
  @MaxLength(255)
32
37
  dbName: string;
33
38
 
39
+ @ApiProperty({ description: 'Usuário do banco de dados', example: 'tychat_user', maxLength: 255 })
34
40
  @IsString()
35
41
  @MinLength(1, { message: 'dbUser não pode ser vazio' })
36
42
  @MaxLength(255)
37
43
  dbUser: string;
38
44
 
45
+ @ApiProperty({ description: 'Senha do banco de dados', example: 'secret', maxLength: 255 })
39
46
  @IsString()
40
47
  @MinLength(1, { message: 'dbPassword não pode ser vazio' })
41
48
  @MaxLength(255)
42
49
  dbPassword: string;
43
50
 
51
+ @ApiPropertyOptional({ description: 'Status do tenant', enum: ['active', 'inactive'], default: 'active' })
44
52
  @IsOptional()
45
53
  @IsIn(['active', 'inactive'], { message: 'status deve ser active ou inactive' })
46
54
  status?: 'active' | 'inactive';
@@ -1,8 +1,10 @@
1
+ import { ApiProperty } from '@nestjs/swagger';
1
2
  import { IsInt } from 'class-validator';
2
3
  import { UpdateTenantDto } from './update-tenant.dto';
3
4
 
4
5
  /** Payload do Kafka para tenant.update: id + campos opcionais. */
5
6
  export class UpdateTenantPayloadDto extends UpdateTenantDto {
7
+ @ApiProperty({ description: 'ID do tenant a ser atualizado', example: 1 })
6
8
  @IsInt()
7
9
  id: number;
8
10
  }
@@ -1,3 +1,4 @@
1
+ import { ApiPropertyOptional } from '@nestjs/swagger';
1
2
  import {
2
3
  IsString,
3
4
  IsOptional,
@@ -10,42 +11,49 @@ import {
10
11
  } from 'class-validator';
11
12
 
12
13
  export class UpdateTenantDto {
14
+ @ApiPropertyOptional({ description: 'Identificador único do tenant na URL', example: 'acme', maxLength: 255 })
13
15
  @IsOptional()
14
16
  @IsString()
15
17
  @MinLength(1, { message: 'slug não pode ser vazio' })
16
18
  @MaxLength(255)
17
19
  slug?: string;
18
20
 
21
+ @ApiPropertyOptional({ description: 'Host do banco de dados do tenant', example: 'localhost', maxLength: 255 })
19
22
  @IsOptional()
20
23
  @IsString()
21
24
  @MinLength(1, { message: 'dbHost não pode ser vazio' })
22
25
  @MaxLength(255)
23
26
  dbHost?: string;
24
27
 
28
+ @ApiPropertyOptional({ description: 'Porta do banco de dados', example: 5432, minimum: 1, maximum: 65535 })
25
29
  @IsOptional()
26
30
  @IsInt()
27
31
  @Min(1)
28
32
  @Max(65535)
29
33
  dbPort?: number;
30
34
 
35
+ @ApiPropertyOptional({ description: 'Nome do banco de dados', example: 'tychat_acme', maxLength: 255 })
31
36
  @IsOptional()
32
37
  @IsString()
33
38
  @MinLength(1, { message: 'dbName não pode ser vazio' })
34
39
  @MaxLength(255)
35
40
  dbName?: string;
36
41
 
42
+ @ApiPropertyOptional({ description: 'Usuário do banco de dados', example: 'tychat_user', maxLength: 255 })
37
43
  @IsOptional()
38
44
  @IsString()
39
45
  @MinLength(1, { message: 'dbUser não pode ser vazio' })
40
46
  @MaxLength(255)
41
47
  dbUser?: string;
42
48
 
49
+ @ApiPropertyOptional({ description: 'Senha do banco de dados', example: 'secret', maxLength: 255 })
43
50
  @IsOptional()
44
51
  @IsString()
45
52
  @MinLength(1, { message: 'dbPassword não pode ser vazio' })
46
53
  @MaxLength(255)
47
54
  dbPassword?: string;
48
55
 
56
+ @ApiPropertyOptional({ description: 'Status do tenant', enum: ['active', 'inactive'] })
49
57
  @IsOptional()
50
58
  @IsIn(['active', 'inactive'], { message: 'status deve ser active ou inactive' })
51
59
  status?: 'active' | 'inactive';