@venturialstd/project-management 0.0.1

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.
Files changed (50) hide show
  1. package/README.md +179 -0
  2. package/dist/constants/task.constant.d.ts +25 -0
  3. package/dist/constants/task.constant.d.ts.map +1 -0
  4. package/dist/constants/task.constant.js +32 -0
  5. package/dist/constants/task.constant.js.map +1 -0
  6. package/dist/dtos/CreateSprint.dto.d.ts +11 -0
  7. package/dist/dtos/CreateSprint.dto.d.ts.map +1 -0
  8. package/dist/dtos/CreateSprint.dto.js +58 -0
  9. package/dist/dtos/CreateSprint.dto.js.map +1 -0
  10. package/dist/dtos/CreateTask.dto.d.ts +20 -0
  11. package/dist/dtos/CreateTask.dto.d.ts.map +1 -0
  12. package/dist/dtos/CreateTask.dto.js +113 -0
  13. package/dist/dtos/CreateTask.dto.js.map +1 -0
  14. package/dist/dtos/MoveTask.dto.d.ts +6 -0
  15. package/dist/dtos/MoveTask.dto.d.ts.map +1 -0
  16. package/dist/dtos/MoveTask.dto.js +35 -0
  17. package/dist/dtos/MoveTask.dto.js.map +1 -0
  18. package/dist/dtos/UpdateSprint.dto.d.ts +10 -0
  19. package/dist/dtos/UpdateSprint.dto.d.ts.map +1 -0
  20. package/dist/dtos/UpdateSprint.dto.js +52 -0
  21. package/dist/dtos/UpdateSprint.dto.js.map +1 -0
  22. package/dist/dtos/UpdateTask.dto.d.ts +18 -0
  23. package/dist/dtos/UpdateTask.dto.d.ts.map +1 -0
  24. package/dist/dtos/UpdateTask.dto.js +101 -0
  25. package/dist/dtos/UpdateTask.dto.js.map +1 -0
  26. package/dist/entities/sprint.entity.d.ts +14 -0
  27. package/dist/entities/sprint.entity.d.ts.map +1 -0
  28. package/dist/entities/sprint.entity.js +96 -0
  29. package/dist/entities/sprint.entity.js.map +1 -0
  30. package/dist/entities/task.entity.d.ts +27 -0
  31. package/dist/entities/task.entity.d.ts.map +1 -0
  32. package/dist/entities/task.entity.js +193 -0
  33. package/dist/entities/task.entity.js.map +1 -0
  34. package/dist/index.d.ts +12 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +28 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/project-management.module.d.ts +3 -0
  39. package/dist/project-management.module.d.ts.map +1 -0
  40. package/dist/project-management.module.js +27 -0
  41. package/dist/project-management.module.js.map +1 -0
  42. package/dist/services/sprint.service.d.ts +36 -0
  43. package/dist/services/sprint.service.d.ts.map +1 -0
  44. package/dist/services/sprint.service.js +223 -0
  45. package/dist/services/sprint.service.js.map +1 -0
  46. package/dist/services/task.service.d.ts +40 -0
  47. package/dist/services/task.service.d.ts.map +1 -0
  48. package/dist/services/task.service.js +272 -0
  49. package/dist/services/task.service.js.map +1 -0
  50. package/package.json +41 -0
package/README.md ADDED
@@ -0,0 +1,179 @@
1
+ # @venturialstd/project-management
2
+
3
+ Project Management Module for Venturial - Task and Sprint Management with Scrum methodology support.
4
+
5
+ ## Features
6
+
7
+ - **Task Management**: Full CRUD operations for tasks with rich metadata
8
+ - **Sprint Management**: Scrum-based sprint lifecycle management
9
+ - **Drag & Drop Support**: Task reordering and movement between sprints/backlog
10
+ - **Task Assignment**: Assign tasks to team members
11
+ - **Comments & Attachments**: Add comments and attachments to tasks
12
+ - **Status Tracking**: Flexible status management with built-in support for common statuses
13
+ - **Time Tracking**: Estimated and actual hours tracking
14
+ - **Priority & Type Management**: Prioritize and categorize tasks
15
+ - **Backlog Management**: Dedicated backlog for unassigned tasks
16
+ - **Sprint Statistics**: Real-time capacity and progress tracking
17
+
18
+ ## Installation
19
+
20
+ ```bash
21
+ npm install @venturialstd/project-management
22
+ ```
23
+
24
+ ## Usage
25
+
26
+ ### Import the Module
27
+
28
+ ```typescript
29
+ import { Module } from '@nestjs/common';
30
+ import { ProjectManagementModule } from '@venturialstd/project-management';
31
+
32
+ @Module({
33
+ imports: [ProjectManagementModule],
34
+ })
35
+ export class AppModule {}
36
+ ```
37
+
38
+ ### Using the Task Service
39
+
40
+ ```typescript
41
+ import { Injectable } from '@nestjs/common';
42
+ import { TaskService, CreateTaskDto } from '@venturialstd/project-management';
43
+
44
+ @Injectable()
45
+ export class YourService {
46
+ constructor(private readonly taskService: TaskService) {}
47
+
48
+ async createTask(data: CreateTaskDto) {
49
+ return this.taskService.createTask(data);
50
+ }
51
+
52
+ async moveTask(taskId: string, targetSprintId: string, targetOrder?: number) {
53
+ return this.taskService.moveTask({
54
+ taskId,
55
+ targetSprintId,
56
+ targetOrder,
57
+ });
58
+ }
59
+
60
+ async assignTask(taskId: string, assigneeId: string, assigneeName: string) {
61
+ return this.taskService.assignTask(taskId, assigneeId, assigneeName);
62
+ }
63
+
64
+ async getBacklog(organizationId: string) {
65
+ return this.taskService.getBacklogTasks(organizationId);
66
+ }
67
+ }
68
+ ```
69
+
70
+ ### Using the Sprint Service
71
+
72
+ ```typescript
73
+ import { Injectable } from '@nestjs/common';
74
+ import { SprintService, CreateSprintDto } from '@venturialstd/project-management';
75
+
76
+ @Injectable()
77
+ export class YourService {
78
+ constructor(private readonly sprintService: SprintService) {}
79
+
80
+ async createSprint(data: CreateSprintDto) {
81
+ return this.sprintService.createSprint(data);
82
+ }
83
+
84
+ async startSprint(sprintId: string) {
85
+ return this.sprintService.startSprint(sprintId);
86
+ }
87
+
88
+ async completeSprint(sprintId: string) {
89
+ return this.sprintService.completeSprint(sprintId);
90
+ }
91
+
92
+ async getSprintStats(sprintId: string) {
93
+ return this.sprintService.getSprintWithStats(sprintId);
94
+ }
95
+
96
+ async getCurrentSprint(organizationId: string) {
97
+ return this.sprintService.getCurrentSprint(organizationId);
98
+ }
99
+ }
100
+ ```
101
+
102
+ ## Entities
103
+
104
+ ### Task Entity
105
+
106
+ - `id`: UUID
107
+ - `title`: Task title
108
+ - `description`: Detailed description
109
+ - `status`: Current status (flexible, supports custom statuses)
110
+ - `priority`: LOW | MEDIUM | HIGH | URGENT
111
+ - `type`: BUG | FEATURE | IMPROVEMENT | TASK
112
+ - `assigneeId`, `assigneeName`, `assigneeAvatar`: Assignee information
113
+ - `reporterId`, `reporterName`, `reporterAvatar`: Reporter information
114
+ - `dueDate`: Task due date
115
+ - `estimatedHours`: Estimated time to complete
116
+ - `actualHours`: Actual time spent
117
+ - `tags`: Array of tags
118
+ - `comments`: Array of comments
119
+ - `attachments`: Array of attachments
120
+ - `order`: Position in sprint/backlog
121
+ - `organizationId`: Organization owner
122
+ - `sprintId`: Associated sprint (null for backlog)
123
+
124
+ ### Sprint Entity
125
+
126
+ - `id`: UUID
127
+ - `name`: Sprint name
128
+ - `goal`: Sprint goal/objective
129
+ - `startDate`: Sprint start date
130
+ - `endDate`: Sprint end date
131
+ - `status`: PLANNING | ACTIVE | COMPLETED | ARCHIVED
132
+ - `capacity`: Sprint capacity in hours
133
+ - `organizationId`: Organization owner
134
+
135
+ ## API Reference
136
+
137
+ ### TaskService Methods
138
+
139
+ - `createTask(data: CreateTaskDto): Promise<Task>`
140
+ - `updateTask(taskId: string, data: UpdateTaskDto): Promise<Task>`
141
+ - `moveTask(data: MoveTaskDto): Promise<Task>`
142
+ - `assignTask(taskId: string, assigneeId: string, assigneeName: string, assigneeAvatar?: string): Promise<Task>`
143
+ - `unassignTask(taskId: string): Promise<Task>`
144
+ - `addComment(taskId: string, comment: CommentData): Promise<Task>`
145
+ - `addAttachment(taskId: string, attachment: AttachmentData): Promise<Task>`
146
+ - `getTasksBySprint(sprintId: string, organizationId: string): Promise<Task[]>`
147
+ - `getBacklogTasks(organizationId: string): Promise<Task[]>`
148
+ - `getTasksByAssignee(assigneeId: string, organizationId: string): Promise<Task[]>`
149
+ - `deleteTask(taskId: string): Promise<void>`
150
+ - `updateTaskStatus(taskId: string, status: string): Promise<Task>`
151
+ - `bulkUpdateOrders(updates: Array<{taskId: string; order: number}>): Promise<void>`
152
+
153
+ ### SprintService Methods
154
+
155
+ - `createSprint(data: CreateSprintDto): Promise<Sprint>`
156
+ - `updateSprint(sprintId: string, data: UpdateSprintDto): Promise<Sprint>`
157
+ - `deleteSprint(sprintId: string): Promise<void>`
158
+ - `startSprint(sprintId: string): Promise<Sprint>`
159
+ - `completeSprint(sprintId: string, moveIncompleteTasks?: boolean): Promise<Sprint>`
160
+ - `archiveSprint(sprintId: string): Promise<Sprint>`
161
+ - `getActiveSprints(organizationId: string): Promise<Sprint[]>`
162
+ - `getSprintsByOrganization(organizationId: string, includeArchived?: boolean): Promise<Sprint[]>`
163
+ - `getSprintWithStats(sprintId: string): Promise<{sprint: Sprint; stats: SprintStats}>`
164
+ - `getCurrentSprint(organizationId: string): Promise<Sprint | null>`
165
+ - `getUpcomingSprints(organizationId: string): Promise<Sprint[]>`
166
+ - `getCompletedSprints(organizationId: string, limit?: number): Promise<Sprint[]>`
167
+
168
+ ## Database Migrations
169
+
170
+ The module requires the following database tables:
171
+
172
+ - `task`: Tasks table
173
+ - `sprint`: Sprints table
174
+
175
+ Make sure to run the necessary migrations in your application to create these tables.
176
+
177
+ ## License
178
+
179
+ MIT
@@ -0,0 +1,25 @@
1
+ export declare enum TASK_STATUS {
2
+ TODO = "todo",
3
+ IN_PROGRESS = "in_progress",
4
+ IN_REVIEW = "in_review",
5
+ DONE = "done"
6
+ }
7
+ export declare enum TASK_PRIORITY {
8
+ LOW = "low",
9
+ MEDIUM = "medium",
10
+ HIGH = "high",
11
+ URGENT = "urgent"
12
+ }
13
+ export declare enum TASK_TYPE {
14
+ BUG = "bug",
15
+ FEATURE = "feature",
16
+ IMPROVEMENT = "improvement",
17
+ TASK = "task"
18
+ }
19
+ export declare enum SPRINT_STATUS {
20
+ PLANNING = "planning",
21
+ ACTIVE = "active",
22
+ COMPLETED = "completed",
23
+ ARCHIVED = "archived"
24
+ }
25
+ //# sourceMappingURL=task.constant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.constant.d.ts","sourceRoot":"","sources":["../../src/constants/task.constant.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW;IACrB,IAAI,SAAS;IACb,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,IAAI,SAAS;CACd;AAED,oBAAY,aAAa;IACvB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED,oBAAY,SAAS;IACnB,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,IAAI,SAAS;CACd;AAED,oBAAY,aAAa;IACvB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,QAAQ,aAAa;CACtB"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SPRINT_STATUS = exports.TASK_TYPE = exports.TASK_PRIORITY = exports.TASK_STATUS = void 0;
4
+ var TASK_STATUS;
5
+ (function (TASK_STATUS) {
6
+ TASK_STATUS["TODO"] = "todo";
7
+ TASK_STATUS["IN_PROGRESS"] = "in_progress";
8
+ TASK_STATUS["IN_REVIEW"] = "in_review";
9
+ TASK_STATUS["DONE"] = "done";
10
+ })(TASK_STATUS || (exports.TASK_STATUS = TASK_STATUS = {}));
11
+ var TASK_PRIORITY;
12
+ (function (TASK_PRIORITY) {
13
+ TASK_PRIORITY["LOW"] = "low";
14
+ TASK_PRIORITY["MEDIUM"] = "medium";
15
+ TASK_PRIORITY["HIGH"] = "high";
16
+ TASK_PRIORITY["URGENT"] = "urgent";
17
+ })(TASK_PRIORITY || (exports.TASK_PRIORITY = TASK_PRIORITY = {}));
18
+ var TASK_TYPE;
19
+ (function (TASK_TYPE) {
20
+ TASK_TYPE["BUG"] = "bug";
21
+ TASK_TYPE["FEATURE"] = "feature";
22
+ TASK_TYPE["IMPROVEMENT"] = "improvement";
23
+ TASK_TYPE["TASK"] = "task";
24
+ })(TASK_TYPE || (exports.TASK_TYPE = TASK_TYPE = {}));
25
+ var SPRINT_STATUS;
26
+ (function (SPRINT_STATUS) {
27
+ SPRINT_STATUS["PLANNING"] = "planning";
28
+ SPRINT_STATUS["ACTIVE"] = "active";
29
+ SPRINT_STATUS["COMPLETED"] = "completed";
30
+ SPRINT_STATUS["ARCHIVED"] = "archived";
31
+ })(SPRINT_STATUS || (exports.SPRINT_STATUS = SPRINT_STATUS = {}));
32
+ //# sourceMappingURL=task.constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.constant.js","sourceRoot":"","sources":["../../src/constants/task.constant.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,0CAA2B,CAAA;IAC3B,sCAAuB,CAAA;IACvB,4BAAa,CAAA;AACf,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAED,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,4BAAW,CAAA;IACX,kCAAiB,CAAA;IACjB,8BAAa,CAAA;IACb,kCAAiB,CAAA;AACnB,CAAC,EALW,aAAa,6BAAb,aAAa,QAKxB;AAED,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,wBAAW,CAAA;IACX,gCAAmB,CAAA;IACnB,wCAA2B,CAAA;IAC3B,0BAAa,CAAA;AACf,CAAC,EALW,SAAS,yBAAT,SAAS,QAKpB;AAED,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,sCAAqB,CAAA;IACrB,kCAAiB,CAAA;IACjB,wCAAuB,CAAA;IACvB,sCAAqB,CAAA;AACvB,CAAC,EALW,aAAa,6BAAb,aAAa,QAKxB"}
@@ -0,0 +1,11 @@
1
+ import { SPRINT_STATUS } from '../constants/task.constant';
2
+ export declare class CreateSprintDto {
3
+ name: string;
4
+ goal?: string;
5
+ startDate: Date;
6
+ endDate: Date;
7
+ status?: SPRINT_STATUS;
8
+ capacity?: number;
9
+ organizationId: string;
10
+ }
11
+ //# sourceMappingURL=CreateSprint.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateSprint.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/CreateSprint.dto.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,qBAAa,eAAe;IAG1B,IAAI,EAAE,MAAM,CAAC;IAIb,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,SAAS,EAAE,IAAI,CAAC;IAGhB,OAAO,EAAE,IAAI,CAAC;IAId,MAAM,CAAC,EAAE,aAAa,CAAC;IAIvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAIlB,cAAc,EAAE,MAAM,CAAC;CACxB"}
@@ -0,0 +1,58 @@
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.CreateSprintDto = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const task_constant_1 = require("../constants/task.constant");
15
+ class CreateSprintDto {
16
+ name;
17
+ goal;
18
+ startDate;
19
+ endDate;
20
+ status;
21
+ capacity;
22
+ organizationId;
23
+ }
24
+ exports.CreateSprintDto = CreateSprintDto;
25
+ __decorate([
26
+ (0, class_validator_1.IsString)(),
27
+ (0, class_validator_1.IsNotEmpty)(),
28
+ __metadata("design:type", String)
29
+ ], CreateSprintDto.prototype, "name", void 0);
30
+ __decorate([
31
+ (0, class_validator_1.IsString)(),
32
+ (0, class_validator_1.IsOptional)(),
33
+ __metadata("design:type", String)
34
+ ], CreateSprintDto.prototype, "goal", void 0);
35
+ __decorate([
36
+ (0, class_validator_1.IsNotEmpty)(),
37
+ __metadata("design:type", Date)
38
+ ], CreateSprintDto.prototype, "startDate", void 0);
39
+ __decorate([
40
+ (0, class_validator_1.IsNotEmpty)(),
41
+ __metadata("design:type", Date)
42
+ ], CreateSprintDto.prototype, "endDate", void 0);
43
+ __decorate([
44
+ (0, class_validator_1.IsEnum)(task_constant_1.SPRINT_STATUS),
45
+ (0, class_validator_1.IsOptional)(),
46
+ __metadata("design:type", String)
47
+ ], CreateSprintDto.prototype, "status", void 0);
48
+ __decorate([
49
+ (0, class_validator_1.IsNumber)(),
50
+ (0, class_validator_1.IsOptional)(),
51
+ __metadata("design:type", Number)
52
+ ], CreateSprintDto.prototype, "capacity", void 0);
53
+ __decorate([
54
+ (0, class_validator_1.IsUUID)(),
55
+ (0, class_validator_1.IsNotEmpty)(),
56
+ __metadata("design:type", String)
57
+ ], CreateSprintDto.prototype, "organizationId", void 0);
58
+ //# sourceMappingURL=CreateSprint.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateSprint.dto.js","sourceRoot":"","sources":["../../src/dtos/CreateSprint.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAOyB;AAEzB,8DAA2D;AAE3D,MAAa,eAAe;IAG1B,IAAI,CAAS;IAIb,IAAI,CAAU;IAGd,SAAS,CAAO;IAGhB,OAAO,CAAO;IAId,MAAM,CAAiB;IAIvB,QAAQ,CAAU;IAIlB,cAAc,CAAS;CACxB;AA1BD,0CA0BC;AAvBC;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;6CACA;AAIb;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;6CACC;AAGd;IADC,IAAA,4BAAU,GAAE;8BACF,IAAI;kDAAC;AAGhB;IADC,IAAA,4BAAU,GAAE;8BACJ,IAAI;gDAAC;AAId;IAFC,IAAA,wBAAM,EAAC,6BAAa,CAAC;IACrB,IAAA,4BAAU,GAAE;;+CACU;AAIvB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;iDACK;AAIlB;IAFC,IAAA,wBAAM,GAAE;IACR,IAAA,4BAAU,GAAE;;uDACU"}
@@ -0,0 +1,20 @@
1
+ import { TASK_PRIORITY, TASK_TYPE } from '../constants/task.constant';
2
+ export declare class CreateTaskDto {
3
+ title: string;
4
+ description?: string;
5
+ status?: string;
6
+ priority?: TASK_PRIORITY;
7
+ type?: TASK_TYPE;
8
+ assigneeId?: string | null;
9
+ assigneeName?: string | null;
10
+ assigneeAvatar?: string | null;
11
+ reporterId: string;
12
+ reporterName: string;
13
+ reporterAvatar?: string;
14
+ dueDate?: Date;
15
+ estimatedHours?: number;
16
+ tags?: string[];
17
+ organizationId: string;
18
+ sprintId?: string | null;
19
+ }
20
+ //# sourceMappingURL=CreateTask.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateTask.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/CreateTask.dto.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEtE,qBAAa,aAAa;IAGxB,KAAK,EAAE,MAAM,CAAC;IAId,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAIhB,QAAQ,CAAC,EAAE,aAAa,CAAC;IAIzB,IAAI,CAAC,EAAE,SAAS,CAAC;IAIjB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAI3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAI7B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAI/B,UAAU,EAAE,MAAM,CAAC;IAInB,YAAY,EAAE,MAAM,CAAC;IAIrB,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,OAAO,CAAC,EAAE,IAAI,CAAC;IAIf,cAAc,CAAC,EAAE,MAAM,CAAC;IAIxB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAIhB,cAAc,EAAE,MAAM,CAAC;IAIvB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B"}
@@ -0,0 +1,113 @@
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.CreateTaskDto = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const task_constant_1 = require("../constants/task.constant");
15
+ class CreateTaskDto {
16
+ title;
17
+ description;
18
+ status;
19
+ priority;
20
+ type;
21
+ assigneeId;
22
+ assigneeName;
23
+ assigneeAvatar;
24
+ reporterId;
25
+ reporterName;
26
+ reporterAvatar;
27
+ dueDate;
28
+ estimatedHours;
29
+ tags;
30
+ organizationId;
31
+ sprintId;
32
+ }
33
+ exports.CreateTaskDto = CreateTaskDto;
34
+ __decorate([
35
+ (0, class_validator_1.IsString)(),
36
+ (0, class_validator_1.IsNotEmpty)(),
37
+ __metadata("design:type", String)
38
+ ], CreateTaskDto.prototype, "title", void 0);
39
+ __decorate([
40
+ (0, class_validator_1.IsString)(),
41
+ (0, class_validator_1.IsOptional)(),
42
+ __metadata("design:type", String)
43
+ ], CreateTaskDto.prototype, "description", void 0);
44
+ __decorate([
45
+ (0, class_validator_1.IsString)(),
46
+ (0, class_validator_1.IsOptional)(),
47
+ __metadata("design:type", String)
48
+ ], CreateTaskDto.prototype, "status", void 0);
49
+ __decorate([
50
+ (0, class_validator_1.IsEnum)(task_constant_1.TASK_PRIORITY),
51
+ (0, class_validator_1.IsOptional)(),
52
+ __metadata("design:type", String)
53
+ ], CreateTaskDto.prototype, "priority", void 0);
54
+ __decorate([
55
+ (0, class_validator_1.IsEnum)(task_constant_1.TASK_TYPE),
56
+ (0, class_validator_1.IsOptional)(),
57
+ __metadata("design:type", String)
58
+ ], CreateTaskDto.prototype, "type", void 0);
59
+ __decorate([
60
+ (0, class_validator_1.IsUUID)(),
61
+ (0, class_validator_1.IsOptional)(),
62
+ __metadata("design:type", Object)
63
+ ], CreateTaskDto.prototype, "assigneeId", void 0);
64
+ __decorate([
65
+ (0, class_validator_1.IsString)(),
66
+ (0, class_validator_1.IsOptional)(),
67
+ __metadata("design:type", Object)
68
+ ], CreateTaskDto.prototype, "assigneeName", void 0);
69
+ __decorate([
70
+ (0, class_validator_1.IsString)(),
71
+ (0, class_validator_1.IsOptional)(),
72
+ __metadata("design:type", Object)
73
+ ], CreateTaskDto.prototype, "assigneeAvatar", void 0);
74
+ __decorate([
75
+ (0, class_validator_1.IsUUID)(),
76
+ (0, class_validator_1.IsNotEmpty)(),
77
+ __metadata("design:type", String)
78
+ ], CreateTaskDto.prototype, "reporterId", void 0);
79
+ __decorate([
80
+ (0, class_validator_1.IsString)(),
81
+ (0, class_validator_1.IsNotEmpty)(),
82
+ __metadata("design:type", String)
83
+ ], CreateTaskDto.prototype, "reporterName", void 0);
84
+ __decorate([
85
+ (0, class_validator_1.IsString)(),
86
+ (0, class_validator_1.IsOptional)(),
87
+ __metadata("design:type", String)
88
+ ], CreateTaskDto.prototype, "reporterAvatar", void 0);
89
+ __decorate([
90
+ (0, class_validator_1.IsOptional)(),
91
+ __metadata("design:type", Date)
92
+ ], CreateTaskDto.prototype, "dueDate", void 0);
93
+ __decorate([
94
+ (0, class_validator_1.IsNumber)(),
95
+ (0, class_validator_1.IsOptional)(),
96
+ __metadata("design:type", Number)
97
+ ], CreateTaskDto.prototype, "estimatedHours", void 0);
98
+ __decorate([
99
+ (0, class_validator_1.IsArray)(),
100
+ (0, class_validator_1.IsOptional)(),
101
+ __metadata("design:type", Array)
102
+ ], CreateTaskDto.prototype, "tags", void 0);
103
+ __decorate([
104
+ (0, class_validator_1.IsUUID)(),
105
+ (0, class_validator_1.IsNotEmpty)(),
106
+ __metadata("design:type", String)
107
+ ], CreateTaskDto.prototype, "organizationId", void 0);
108
+ __decorate([
109
+ (0, class_validator_1.IsUUID)(),
110
+ (0, class_validator_1.IsOptional)(),
111
+ __metadata("design:type", Object)
112
+ ], CreateTaskDto.prototype, "sprintId", void 0);
113
+ //# sourceMappingURL=CreateTask.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateTask.dto.js","sourceRoot":"","sources":["../../src/dtos/CreateTask.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAQyB;AAEzB,8DAAsE;AAEtE,MAAa,aAAa;IAGxB,KAAK,CAAS;IAId,WAAW,CAAU;IAIrB,MAAM,CAAU;IAIhB,QAAQ,CAAiB;IAIzB,IAAI,CAAa;IAIjB,UAAU,CAAiB;IAI3B,YAAY,CAAiB;IAI7B,cAAc,CAAiB;IAI/B,UAAU,CAAS;IAInB,YAAY,CAAS;IAIrB,cAAc,CAAU;IAGxB,OAAO,CAAQ;IAIf,cAAc,CAAU;IAIxB,IAAI,CAAY;IAIhB,cAAc,CAAS;IAIvB,QAAQ,CAAiB;CAC1B;AA/DD,sCA+DC;AA5DC;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;4CACC;AAId;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;kDACQ;AAIrB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;6CACG;AAIhB;IAFC,IAAA,wBAAM,EAAC,6BAAa,CAAC;IACrB,IAAA,4BAAU,GAAE;;+CACY;AAIzB;IAFC,IAAA,wBAAM,EAAC,yBAAS,CAAC;IACjB,IAAA,4BAAU,GAAE;;2CACI;AAIjB;IAFC,IAAA,wBAAM,GAAE;IACR,IAAA,4BAAU,GAAE;;iDACc;AAI3B;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;mDACgB;AAI7B;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;qDACkB;AAI/B;IAFC,IAAA,wBAAM,GAAE;IACR,IAAA,4BAAU,GAAE;;iDACM;AAInB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;mDACQ;AAIrB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;qDACW;AAGxB;IADC,IAAA,4BAAU,GAAE;8BACH,IAAI;8CAAC;AAIf;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;qDACW;AAIxB;IAFC,IAAA,yBAAO,GAAE;IACT,IAAA,4BAAU,GAAE;;2CACG;AAIhB;IAFC,IAAA,wBAAM,GAAE;IACR,IAAA,4BAAU,GAAE;;qDACU;AAIvB;IAFC,IAAA,wBAAM,GAAE;IACR,IAAA,4BAAU,GAAE;;+CACY"}
@@ -0,0 +1,6 @@
1
+ export declare class MoveTaskDto {
2
+ taskId: string;
3
+ targetSprintId?: string | null;
4
+ targetOrder?: number;
5
+ }
6
+ //# sourceMappingURL=MoveTask.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MoveTask.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/MoveTask.dto.ts"],"names":[],"mappings":"AAEA,qBAAa,WAAW;IAGtB,MAAM,EAAE,MAAM,CAAC;IAIf,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAI/B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -0,0 +1,35 @@
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.MoveTaskDto = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ class MoveTaskDto {
15
+ taskId;
16
+ targetSprintId;
17
+ targetOrder;
18
+ }
19
+ exports.MoveTaskDto = MoveTaskDto;
20
+ __decorate([
21
+ (0, class_validator_1.IsUUID)(),
22
+ (0, class_validator_1.IsNotEmpty)(),
23
+ __metadata("design:type", String)
24
+ ], MoveTaskDto.prototype, "taskId", void 0);
25
+ __decorate([
26
+ (0, class_validator_1.IsUUID)(),
27
+ (0, class_validator_1.IsOptional)(),
28
+ __metadata("design:type", Object)
29
+ ], MoveTaskDto.prototype, "targetSprintId", void 0);
30
+ __decorate([
31
+ (0, class_validator_1.IsNumber)(),
32
+ (0, class_validator_1.IsOptional)(),
33
+ __metadata("design:type", Number)
34
+ ], MoveTaskDto.prototype, "targetOrder", void 0);
35
+ //# sourceMappingURL=MoveTask.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MoveTask.dto.js","sourceRoot":"","sources":["../../src/dtos/MoveTask.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA2E;AAE3E,MAAa,WAAW;IAGtB,MAAM,CAAS;IAIf,cAAc,CAAiB;IAI/B,WAAW,CAAU;CACtB;AAZD,kCAYC;AATC;IAFC,IAAA,wBAAM,GAAE;IACR,IAAA,4BAAU,GAAE;;2CACE;AAIf;IAFC,IAAA,wBAAM,GAAE;IACR,IAAA,4BAAU,GAAE;;mDACkB;AAI/B;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;gDACQ"}
@@ -0,0 +1,10 @@
1
+ import { SPRINT_STATUS } from '../constants/task.constant';
2
+ export declare class UpdateSprintDto {
3
+ name?: string;
4
+ goal?: string;
5
+ startDate?: Date;
6
+ endDate?: Date;
7
+ status?: SPRINT_STATUS;
8
+ capacity?: number;
9
+ }
10
+ //# sourceMappingURL=UpdateSprint.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdateSprint.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/UpdateSprint.dto.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,qBAAa,eAAe;IAG1B,IAAI,CAAC,EAAE,MAAM,CAAC;IAId,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,SAAS,CAAC,EAAE,IAAI,CAAC;IAGjB,OAAO,CAAC,EAAE,IAAI,CAAC;IAIf,MAAM,CAAC,EAAE,aAAa,CAAC;IAIvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,52 @@
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.UpdateSprintDto = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const task_constant_1 = require("../constants/task.constant");
15
+ class UpdateSprintDto {
16
+ name;
17
+ goal;
18
+ startDate;
19
+ endDate;
20
+ status;
21
+ capacity;
22
+ }
23
+ exports.UpdateSprintDto = UpdateSprintDto;
24
+ __decorate([
25
+ (0, class_validator_1.IsString)(),
26
+ (0, class_validator_1.IsOptional)(),
27
+ __metadata("design:type", String)
28
+ ], UpdateSprintDto.prototype, "name", void 0);
29
+ __decorate([
30
+ (0, class_validator_1.IsString)(),
31
+ (0, class_validator_1.IsOptional)(),
32
+ __metadata("design:type", String)
33
+ ], UpdateSprintDto.prototype, "goal", void 0);
34
+ __decorate([
35
+ (0, class_validator_1.IsOptional)(),
36
+ __metadata("design:type", Date)
37
+ ], UpdateSprintDto.prototype, "startDate", void 0);
38
+ __decorate([
39
+ (0, class_validator_1.IsOptional)(),
40
+ __metadata("design:type", Date)
41
+ ], UpdateSprintDto.prototype, "endDate", void 0);
42
+ __decorate([
43
+ (0, class_validator_1.IsEnum)(task_constant_1.SPRINT_STATUS),
44
+ (0, class_validator_1.IsOptional)(),
45
+ __metadata("design:type", String)
46
+ ], UpdateSprintDto.prototype, "status", void 0);
47
+ __decorate([
48
+ (0, class_validator_1.IsNumber)(),
49
+ (0, class_validator_1.IsOptional)(),
50
+ __metadata("design:type", Number)
51
+ ], UpdateSprintDto.prototype, "capacity", void 0);
52
+ //# sourceMappingURL=UpdateSprint.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdateSprint.dto.js","sourceRoot":"","sources":["../../src/dtos/UpdateSprint.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAKyB;AAEzB,8DAA2D;AAE3D,MAAa,eAAe;IAG1B,IAAI,CAAU;IAId,IAAI,CAAU;IAGd,SAAS,CAAQ;IAGjB,OAAO,CAAQ;IAIf,MAAM,CAAiB;IAIvB,QAAQ,CAAU;CACnB;AAtBD,0CAsBC;AAnBC;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;6CACC;AAId;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;6CACC;AAGd;IADC,IAAA,4BAAU,GAAE;8BACD,IAAI;kDAAC;AAGjB;IADC,IAAA,4BAAU,GAAE;8BACH,IAAI;gDAAC;AAIf;IAFC,IAAA,wBAAM,EAAC,6BAAa,CAAC;IACrB,IAAA,4BAAU,GAAE;;+CACU;AAIvB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;iDACK"}
@@ -0,0 +1,18 @@
1
+ import { TASK_PRIORITY, TASK_TYPE } from '../constants/task.constant';
2
+ export declare class UpdateTaskDto {
3
+ title?: string;
4
+ description?: string;
5
+ status?: string;
6
+ priority?: TASK_PRIORITY;
7
+ type?: TASK_TYPE;
8
+ assigneeId?: string | null;
9
+ assigneeName?: string | null;
10
+ assigneeAvatar?: string | null;
11
+ dueDate?: Date;
12
+ estimatedHours?: number;
13
+ actualHours?: number;
14
+ tags?: string[];
15
+ sprintId?: string | null;
16
+ order?: number;
17
+ }
18
+ //# sourceMappingURL=UpdateTask.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdateTask.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/UpdateTask.dto.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEtE,qBAAa,aAAa;IAGxB,KAAK,CAAC,EAAE,MAAM,CAAC;IAIf,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAIhB,QAAQ,CAAC,EAAE,aAAa,CAAC;IAIzB,IAAI,CAAC,EAAE,SAAS,CAAC;IAIjB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAI3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAI7B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAG/B,OAAO,CAAC,EAAE,IAAI,CAAC;IAIf,cAAc,CAAC,EAAE,MAAM,CAAC;IAIxB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAIhB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAIzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}