tychat-contracts 1.0.6 → 1.0.7

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.
package/dist/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './auth';
2
+ export * from './users';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -15,3 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./auth"), exports);
18
+ __exportStar(require("./users"), exports);
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Roles permitidas na criação de usuário por um administrador.
3
+ * Administrador não pode criar outros administradores.
4
+ */
5
+ export declare const CREATABLE_USER_ROLES: readonly ["attendant", "health_professional"];
6
+ export type CreatableUserRole = (typeof CREATABLE_USER_ROLES)[number];
7
+ export declare class CreateUserDto {
8
+ username: string;
9
+ password: string;
10
+ role: CreatableUserRole;
11
+ }
12
+ //# sourceMappingURL=create-user.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-user.dto.d.ts","sourceRoot":"","sources":["../../src/users/create-user.dto.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,eAAO,MAAM,oBAAoB,+CAAgD,CAAC;AAClF,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,qBAAa,aAAa;IASxB,QAAQ,EAAE,MAAM,CAAC;IAUjB,QAAQ,EAAE,MAAM,CAAC;IAWjB,IAAI,EAAE,iBAAiB,CAAC;CACzB"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CreateUserDto = exports.CREATABLE_USER_ROLES = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
14
+ const class_validator_1 = require("class-validator");
15
+ /**
16
+ * Roles permitidas na criação de usuário por um administrador.
17
+ * Administrador não pode criar outros administradores.
18
+ */
19
+ exports.CREATABLE_USER_ROLES = ['attendant', 'health_professional'];
20
+ class CreateUserDto {
21
+ username;
22
+ password;
23
+ role;
24
+ }
25
+ exports.CreateUserDto = CreateUserDto;
26
+ __decorate([
27
+ (0, swagger_1.ApiProperty)({
28
+ description: 'Login do usuário (único no tenant)',
29
+ example: 'maria.silva',
30
+ maxLength: 255,
31
+ }),
32
+ (0, class_validator_1.IsString)(),
33
+ (0, class_validator_1.MinLength)(1, { message: 'username não pode ser vazio' }),
34
+ (0, class_validator_1.MaxLength)(255),
35
+ __metadata("design:type", String)
36
+ ], CreateUserDto.prototype, "username", void 0);
37
+ __decorate([
38
+ (0, swagger_1.ApiProperty)({
39
+ description: 'Senha (será hasheada com bcrypt)',
40
+ example: 'senha123',
41
+ minLength: 6,
42
+ }),
43
+ (0, class_validator_1.IsString)(),
44
+ (0, class_validator_1.MinLength)(6, { message: 'password deve ter no mínimo 6 caracteres' }),
45
+ (0, class_validator_1.MaxLength)(255),
46
+ __metadata("design:type", String)
47
+ ], CreateUserDto.prototype, "password", void 0);
48
+ __decorate([
49
+ (0, swagger_1.ApiProperty)({
50
+ description: 'Papel do usuário. Apenas atendente ou profissional de saúde; administrador não pode criar outros administradores.',
51
+ enum: exports.CREATABLE_USER_ROLES,
52
+ default: 'attendant',
53
+ }),
54
+ (0, class_validator_1.IsString)(),
55
+ (0, class_validator_1.IsIn)(exports.CREATABLE_USER_ROLES, {
56
+ message: 'role deve ser attendant ou health_professional',
57
+ }),
58
+ __metadata("design:type", String)
59
+ ], CreateUserDto.prototype, "role", void 0);
@@ -0,0 +1,2 @@
1
+ export { CreateUserDto, CREATABLE_USER_ROLES, type CreatableUserRole, } from './create-user.dto';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/users/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CREATABLE_USER_ROLES = exports.CreateUserDto = void 0;
4
+ var create_user_dto_1 = require("./create-user.dto");
5
+ Object.defineProperty(exports, "CreateUserDto", { enumerable: true, get: function () { return create_user_dto_1.CreateUserDto; } });
6
+ Object.defineProperty(exports, "CREATABLE_USER_ROLES", { enumerable: true, get: function () { return create_user_dto_1.CREATABLE_USER_ROLES; } });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tychat-contracts",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
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",
package/src/index.ts CHANGED
@@ -1 +1,2 @@
1
1
  export * from './auth';
2
+ export * from './users';
@@ -0,0 +1,47 @@
1
+ import { ApiProperty } from '@nestjs/swagger';
2
+ import {
3
+ IsString,
4
+ IsIn,
5
+ MinLength,
6
+ MaxLength,
7
+ } from 'class-validator';
8
+
9
+ /**
10
+ * Roles permitidas na criação de usuário por um administrador.
11
+ * Administrador não pode criar outros administradores.
12
+ */
13
+ export const CREATABLE_USER_ROLES = ['attendant', 'health_professional'] as const;
14
+ export type CreatableUserRole = (typeof CREATABLE_USER_ROLES)[number];
15
+
16
+ export class CreateUserDto {
17
+ @ApiProperty({
18
+ description: 'Login do usuário (único no tenant)',
19
+ example: 'maria.silva',
20
+ maxLength: 255,
21
+ })
22
+ @IsString()
23
+ @MinLength(1, { message: 'username não pode ser vazio' })
24
+ @MaxLength(255)
25
+ username: string;
26
+
27
+ @ApiProperty({
28
+ description: 'Senha (será hasheada com bcrypt)',
29
+ example: 'senha123',
30
+ minLength: 6,
31
+ })
32
+ @IsString()
33
+ @MinLength(6, { message: 'password deve ter no mínimo 6 caracteres' })
34
+ @MaxLength(255)
35
+ password: string;
36
+
37
+ @ApiProperty({
38
+ description: 'Papel do usuário. Apenas atendente ou profissional de saúde; administrador não pode criar outros administradores.',
39
+ enum: CREATABLE_USER_ROLES,
40
+ default: 'attendant',
41
+ })
42
+ @IsString()
43
+ @IsIn(CREATABLE_USER_ROLES, {
44
+ message: 'role deve ser attendant ou health_professional',
45
+ })
46
+ role: CreatableUserRole;
47
+ }
@@ -0,0 +1,5 @@
1
+ export {
2
+ CreateUserDto,
3
+ CREATABLE_USER_ROLES,
4
+ type CreatableUserRole,
5
+ } from './create-user.dto';