@managemint-solutions/sdk 0.5.0 → 0.6.0

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 (47) hide show
  1. package/README.md +74 -6
  2. package/dist/additional-details/dto.d.ts +2 -5
  3. package/dist/additional-details/dto.js +2 -0
  4. package/dist/additional-details/dto.js.map +1 -1
  5. package/dist/additional-details/index.js +5 -6
  6. package/dist/additional-details/index.js.map +1 -1
  7. package/dist/additional-details/values.d.ts +2 -2
  8. package/dist/additional-details/values.js +2 -2
  9. package/dist/client.d.ts +5 -2
  10. package/dist/client.js +6 -0
  11. package/dist/client.js.map +1 -1
  12. package/dist/clients/index.js +3 -6
  13. package/dist/clients/index.js.map +1 -1
  14. package/dist/index.d.ts +3 -1
  15. package/dist/index.js +3 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/notes/dto.d.ts +1 -4
  18. package/dist/notes/dto.js +2 -0
  19. package/dist/notes/dto.js.map +1 -1
  20. package/dist/notes/index.js +3 -5
  21. package/dist/notes/index.js.map +1 -1
  22. package/dist/projects/dto.d.ts +38 -0
  23. package/dist/projects/dto.js +238 -0
  24. package/dist/projects/dto.js.map +1 -0
  25. package/dist/projects/index.d.ts +20 -0
  26. package/dist/projects/index.js +299 -0
  27. package/dist/projects/index.js.map +1 -0
  28. package/dist/statuses/dto.d.ts +2 -5
  29. package/dist/statuses/dto.js +2 -0
  30. package/dist/statuses/dto.js.map +1 -1
  31. package/dist/statuses/index.js +3 -4
  32. package/dist/statuses/index.js.map +1 -1
  33. package/dist/supporting-files/index.js +3 -3
  34. package/dist/supporting-files/index.js.map +1 -1
  35. package/dist/tasks/dto.d.ts +43 -0
  36. package/dist/tasks/dto.js +288 -0
  37. package/dist/tasks/dto.js.map +1 -0
  38. package/dist/tasks/index.d.ts +20 -0
  39. package/dist/tasks/index.js +241 -0
  40. package/dist/tasks/index.js.map +1 -0
  41. package/dist/transforms.d.ts +14 -0
  42. package/dist/transforms.js +38 -0
  43. package/dist/transforms.js.map +1 -0
  44. package/package.json +1 -1
  45. package/dist/database.types.d.ts +0 -2570
  46. package/dist/database.types.js +0 -12
  47. package/dist/database.types.js.map +0 -1
@@ -0,0 +1,238 @@
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.UpdateProjectDto = exports.CreateProjectDto = exports.ProjectIdDto = exports.GetProjectsDto = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const class_transformer_1 = require("class-transformer");
15
+ const transforms_1 = require("../transforms");
16
+ const validators_1 = require("../validators");
17
+ // class-validator versions of the shared DTO types from @managemint-solutions/entities, so the
18
+ // wire contract cannot drift.
19
+ // `status_id_in` is omitted from the implemented type on purpose: the entities type carries the
20
+ // CSV wire value (`string | null`), while this class carries the `@Transform`-parsed
21
+ // `string[] | null` the query builder feeds to `.in('status_id', ...)`.
22
+ class GetProjectsDto {
23
+ search;
24
+ page = 1;
25
+ page_size = 10;
26
+ created_after;
27
+ created_before;
28
+ start_date_after;
29
+ start_date_before;
30
+ end_date_after;
31
+ end_date_before;
32
+ status_id_in;
33
+ client_id;
34
+ archive = false;
35
+ }
36
+ exports.GetProjectsDto = GetProjectsDto;
37
+ __decorate([
38
+ (0, class_validator_1.IsOptional)(),
39
+ (0, validators_1.IsNullable)(),
40
+ (0, class_validator_1.IsString)({ message: 'Search query must be a string' }),
41
+ (0, class_validator_1.MinLength)(1, { message: 'Search query cannot be empty' }),
42
+ __metadata("design:type", Object)
43
+ ], GetProjectsDto.prototype, "search", void 0);
44
+ __decorate([
45
+ (0, class_validator_1.IsOptional)(),
46
+ (0, class_transformer_1.Transform)(({ value }) => value ? Number(value) : 1, { toClassOnly: true }),
47
+ (0, class_validator_1.IsNumber)({}, { message: 'Page must be a number' }),
48
+ (0, class_validator_1.Min)(1, { message: 'Page must be at least 1' }),
49
+ __metadata("design:type", Number)
50
+ ], GetProjectsDto.prototype, "page", void 0);
51
+ __decorate([
52
+ (0, class_validator_1.IsOptional)(),
53
+ (0, class_transformer_1.Transform)(({ value }) => value ? Number(value) : 10, { toClassOnly: true }),
54
+ (0, class_validator_1.IsNumber)({}, { message: 'Page size must be a number' }),
55
+ (0, class_validator_1.Min)(1, { message: 'Page size must be at least 1' }),
56
+ (0, class_validator_1.Max)(100, { message: 'Page size cannot exceed 100' }),
57
+ __metadata("design:type", Number)
58
+ ], GetProjectsDto.prototype, "page_size", void 0);
59
+ __decorate([
60
+ (0, class_validator_1.IsOptional)(),
61
+ (0, validators_1.IsNullable)(),
62
+ (0, class_validator_1.IsDateString)({}, { message: 'Start date must be a valid ISO 8601 date string' }),
63
+ __metadata("design:type", Object)
64
+ ], GetProjectsDto.prototype, "created_after", void 0);
65
+ __decorate([
66
+ (0, class_validator_1.IsOptional)(),
67
+ (0, validators_1.IsNullable)(),
68
+ (0, class_validator_1.IsDateString)({}, { message: 'End date must be a valid ISO 8601 date string' }),
69
+ __metadata("design:type", Object)
70
+ ], GetProjectsDto.prototype, "created_before", void 0);
71
+ __decorate([
72
+ (0, class_validator_1.IsOptional)(),
73
+ (0, validators_1.IsNullable)(),
74
+ (0, class_validator_1.IsDateString)({}, { message: 'Start date must be a valid ISO 8601 date string' }),
75
+ __metadata("design:type", Object)
76
+ ], GetProjectsDto.prototype, "start_date_after", void 0);
77
+ __decorate([
78
+ (0, class_validator_1.IsOptional)(),
79
+ (0, validators_1.IsNullable)(),
80
+ (0, class_validator_1.IsDateString)({}, { message: 'End date must be a valid ISO 8601 date string' }),
81
+ __metadata("design:type", Object)
82
+ ], GetProjectsDto.prototype, "start_date_before", void 0);
83
+ __decorate([
84
+ (0, class_validator_1.IsOptional)(),
85
+ (0, validators_1.IsNullable)(),
86
+ (0, class_validator_1.IsDateString)({}, { message: 'Start date must be a valid ISO 8601 date string' }),
87
+ __metadata("design:type", Object)
88
+ ], GetProjectsDto.prototype, "end_date_after", void 0);
89
+ __decorate([
90
+ (0, class_validator_1.IsOptional)(),
91
+ (0, validators_1.IsNullable)(),
92
+ (0, class_validator_1.IsDateString)({}, { message: 'End date must be a valid ISO 8601 date string' }),
93
+ __metadata("design:type", Object)
94
+ ], GetProjectsDto.prototype, "end_date_before", void 0);
95
+ __decorate([
96
+ (0, class_validator_1.IsOptional)(),
97
+ (0, validators_1.IsNullable)(),
98
+ (0, class_transformer_1.Transform)(({ value }) => value ? value.split(',').map((id) => id.trim()) : null, { toClassOnly: true }),
99
+ (0, class_validator_1.IsUUID)('4', { each: true, message: 'Each status ID must be a valid UUID v4' }),
100
+ __metadata("design:type", Object)
101
+ ], GetProjectsDto.prototype, "status_id_in", void 0);
102
+ __decorate([
103
+ (0, class_validator_1.IsOptional)(),
104
+ (0, validators_1.IsNullable)(),
105
+ (0, class_transformer_1.Transform)(({ value }) => (0, transforms_1.parseEntityIdFilter)(value), { toClassOnly: true }),
106
+ (0, class_validator_1.IsUUID)('4', { message: 'Each client ID must be a valid UUID v4' }),
107
+ __metadata("design:type", Object)
108
+ ], GetProjectsDto.prototype, "client_id", void 0);
109
+ __decorate([
110
+ (0, class_validator_1.IsOptional)(),
111
+ (0, validators_1.IsNullable)(),
112
+ (0, class_transformer_1.Transform)(({ value }) => value ? value === 'true' : false, { toClassOnly: true }),
113
+ (0, class_validator_1.IsBoolean)({ message: 'Include archived must be a boolean' }),
114
+ __metadata("design:type", Boolean)
115
+ ], GetProjectsDto.prototype, "archive", void 0);
116
+ class ProjectIdDto {
117
+ projectId;
118
+ }
119
+ exports.ProjectIdDto = ProjectIdDto;
120
+ __decorate([
121
+ (0, class_validator_1.IsUUID)('4', { message: 'Invalid project ID format' }),
122
+ __metadata("design:type", String)
123
+ ], ProjectIdDto.prototype, "projectId", void 0);
124
+ class CreateProjectDto {
125
+ name;
126
+ specification;
127
+ start_date;
128
+ end_date;
129
+ has_budget;
130
+ status_id;
131
+ client_id;
132
+ manager_id;
133
+ }
134
+ exports.CreateProjectDto = CreateProjectDto;
135
+ __decorate([
136
+ (0, class_validator_1.IsString)({ message: 'Invalid name' }),
137
+ (0, class_validator_1.MinLength)(1, { message: 'Name cannot be empty' }),
138
+ (0, class_validator_1.MaxLength)(100, { message: 'Name cannot exceed 100 characters' }),
139
+ __metadata("design:type", String)
140
+ ], CreateProjectDto.prototype, "name", void 0);
141
+ __decorate([
142
+ (0, class_validator_1.IsOptional)(),
143
+ (0, validators_1.IsNullable)(),
144
+ (0, class_validator_1.IsString)({ message: 'Invalid specification' }),
145
+ __metadata("design:type", Object)
146
+ ], CreateProjectDto.prototype, "specification", void 0);
147
+ __decorate([
148
+ (0, class_validator_1.IsOptional)(),
149
+ (0, validators_1.IsNullable)(),
150
+ (0, class_validator_1.IsDateString)({}, { message: 'Invalid start date' }),
151
+ __metadata("design:type", Object)
152
+ ], CreateProjectDto.prototype, "start_date", void 0);
153
+ __decorate([
154
+ (0, class_validator_1.IsOptional)(),
155
+ (0, validators_1.IsNullable)(),
156
+ (0, class_validator_1.IsDateString)({}, { message: 'Invalid end date' }),
157
+ __metadata("design:type", Object)
158
+ ], CreateProjectDto.prototype, "end_date", void 0);
159
+ __decorate([
160
+ (0, class_validator_1.IsBoolean)({ message: 'Has budget must be a boolean' }),
161
+ __metadata("design:type", Boolean)
162
+ ], CreateProjectDto.prototype, "has_budget", void 0);
163
+ __decorate([
164
+ (0, class_validator_1.IsOptional)(),
165
+ (0, validators_1.IsNullable)(),
166
+ (0, class_validator_1.IsUUID)('4', { message: 'Invalid status ID format' }),
167
+ __metadata("design:type", Object)
168
+ ], CreateProjectDto.prototype, "status_id", void 0);
169
+ __decorate([
170
+ (0, class_validator_1.IsOptional)(),
171
+ (0, validators_1.IsNullable)(),
172
+ (0, class_validator_1.IsUUID)('4', { message: 'Invalid client ID format' }),
173
+ __metadata("design:type", Object)
174
+ ], CreateProjectDto.prototype, "client_id", void 0);
175
+ __decorate([
176
+ (0, class_validator_1.IsOptional)(),
177
+ (0, validators_1.IsNullable)(),
178
+ (0, class_validator_1.IsUUID)('4', { message: 'Invalid manager ID format' }),
179
+ __metadata("design:type", Object)
180
+ ], CreateProjectDto.prototype, "manager_id", void 0);
181
+ class UpdateProjectDto {
182
+ name;
183
+ specification;
184
+ start_date;
185
+ end_date;
186
+ has_budget;
187
+ status_id;
188
+ client_id;
189
+ manager_id;
190
+ }
191
+ exports.UpdateProjectDto = UpdateProjectDto;
192
+ __decorate([
193
+ (0, class_validator_1.IsString)({ message: 'Invalid name' }),
194
+ (0, class_validator_1.MinLength)(1, { message: 'Name cannot be empty' }),
195
+ (0, class_validator_1.MaxLength)(100, { message: 'Name cannot exceed 100 characters' }),
196
+ __metadata("design:type", String)
197
+ ], UpdateProjectDto.prototype, "name", void 0);
198
+ __decorate([
199
+ (0, class_validator_1.IsOptional)(),
200
+ (0, validators_1.IsNullable)(),
201
+ (0, class_validator_1.IsString)({ message: 'Invalid specification' }),
202
+ __metadata("design:type", Object)
203
+ ], UpdateProjectDto.prototype, "specification", void 0);
204
+ __decorate([
205
+ (0, class_validator_1.IsOptional)(),
206
+ (0, validators_1.IsNullable)(),
207
+ (0, class_validator_1.IsDateString)({}, { message: 'Invalid start date' }),
208
+ __metadata("design:type", Object)
209
+ ], UpdateProjectDto.prototype, "start_date", void 0);
210
+ __decorate([
211
+ (0, class_validator_1.IsOptional)(),
212
+ (0, validators_1.IsNullable)(),
213
+ (0, class_validator_1.IsDateString)({}, { message: 'Invalid end date' }),
214
+ __metadata("design:type", Object)
215
+ ], UpdateProjectDto.prototype, "end_date", void 0);
216
+ __decorate([
217
+ (0, class_validator_1.IsBoolean)({ message: 'Has budget must be a boolean' }),
218
+ __metadata("design:type", Boolean)
219
+ ], UpdateProjectDto.prototype, "has_budget", void 0);
220
+ __decorate([
221
+ (0, class_validator_1.IsOptional)(),
222
+ (0, validators_1.IsNullable)(),
223
+ (0, class_validator_1.IsUUID)('4', { message: 'Invalid status ID format' }),
224
+ __metadata("design:type", Object)
225
+ ], UpdateProjectDto.prototype, "status_id", void 0);
226
+ __decorate([
227
+ (0, class_validator_1.IsOptional)(),
228
+ (0, validators_1.IsNullable)(),
229
+ (0, class_validator_1.IsUUID)('4', { message: 'Invalid client ID format' }),
230
+ __metadata("design:type", Object)
231
+ ], UpdateProjectDto.prototype, "client_id", void 0);
232
+ __decorate([
233
+ (0, class_validator_1.IsOptional)(),
234
+ (0, validators_1.IsNullable)(),
235
+ (0, class_validator_1.IsUUID)('4', { message: 'Invalid manager ID format' }),
236
+ __metadata("design:type", Object)
237
+ ], UpdateProjectDto.prototype, "manager_id", void 0);
238
+ //# sourceMappingURL=dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dto.js","sourceRoot":"","sources":["../../src/projects/dto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { MmsList } from '@managemint-solutions/entities/common';
2
+ import type { ProjectEntity, ProjectSummary } from '@managemint-solutions/entities/projects';
3
+ import type { AuthContext } from '../auth';
4
+ import type { TypedSupabaseClient } from '../client';
5
+ import type { CreateProjectDto, GetProjectsDto, UpdateProjectDto } from './dto';
6
+ export * from './dto';
7
+ export declare class ProjectsResource {
8
+ private readonly supabase;
9
+ private readonly auth;
10
+ constructor(supabase: TypedSupabaseClient, auth: AuthContext);
11
+ list(query: GetProjectsDto): Promise<MmsList<ProjectSummary>>;
12
+ getById(projectId: string): Promise<ProjectEntity>;
13
+ create(input: CreateProjectDto): Promise<ProjectEntity>;
14
+ update(projectId: string, input: UpdateProjectDto): Promise<ProjectEntity>;
15
+ archive(projectId: string): Promise<ProjectEntity>;
16
+ unarchive(projectId: string): Promise<ProjectEntity>;
17
+ restore(projectId: string): Promise<ProjectEntity>;
18
+ /** Soft delete — the row stays, flagged `deleted`, and `restore()` brings it back. */
19
+ remove(projectId: string): Promise<void>;
20
+ }
@@ -0,0 +1,299 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.ProjectsResource = void 0;
18
+ const errors_1 = require("../errors");
19
+ const transforms_1 = require("../transforms");
20
+ __exportStar(require("./dto"), exports);
21
+ // The public contract is the shared ProjectSummary / ProjectEntity from
22
+ // @managemint-solutions/entities; the casts at the returns declare the shape the select strings
23
+ // below produce (the columns are defined in the api's supabase/migrations).
24
+ const PROJECT_LIST_SELECT = `
25
+ mms_id,
26
+ created_at,
27
+ name,
28
+ start_date,
29
+ end_date,
30
+ status:statuses!status_id (
31
+ mms_id,
32
+ colour,
33
+ label
34
+ ),
35
+ created_by:user_profiles!created_by (*),
36
+ manager:user_profiles!manager_id (*),
37
+ client:client_profiles!client_id (*)
38
+ `;
39
+ const PROJECT_DETAIL_SELECT = `
40
+ mms_id,
41
+ created_at,
42
+ name,
43
+ specification,
44
+ status:statuses!status_id (
45
+ mms_id,
46
+ label,
47
+ colour
48
+ ),
49
+ has_budget,
50
+ start_date,
51
+ end_date,
52
+ client:client_profiles!client_id (*),
53
+ manager:user_profiles!manager_id (*),
54
+ updated_at,
55
+ last_updated_by:user_profiles!last_updated_by (
56
+ mms_id,
57
+ name,
58
+ surname,
59
+ email,
60
+ profile_image
61
+ ),
62
+ created_by:user_profiles!created_by (
63
+ mms_id,
64
+ name,
65
+ surname,
66
+ email,
67
+ profile_image
68
+ ),
69
+ archived,
70
+ archived_at,
71
+ archived_by:user_profiles!archived_by (
72
+ mms_id,
73
+ name,
74
+ surname,
75
+ email,
76
+ profile_image
77
+ ),
78
+ unarchived_at,
79
+ unarchived_by:user_profiles!unarchived_by (
80
+ mms_id,
81
+ name,
82
+ surname,
83
+ email,
84
+ profile_image
85
+ ),
86
+ deleted,
87
+ deleted_at,
88
+ deleted_by:user_profiles!deleted_by (
89
+ mms_id,
90
+ name,
91
+ surname,
92
+ email,
93
+ profile_image
94
+ ),
95
+ restored_at,
96
+ restored_by:user_profiles!restored_by (
97
+ mms_id,
98
+ name,
99
+ surname,
100
+ email,
101
+ profile_image
102
+ )
103
+ `;
104
+ class ProjectsResource {
105
+ supabase;
106
+ auth;
107
+ constructor(supabase, auth) {
108
+ this.supabase = supabase;
109
+ this.auth = auth;
110
+ }
111
+ async list(query) {
112
+ const page = query.page;
113
+ const pageSize = query.page_size;
114
+ const offset = (page - 1) * pageSize;
115
+ const trimmedSearch = query.search?.trim();
116
+ // `order`/`range` return `this`, so the builder stays a filter builder and the conditional
117
+ // filters below can be reassigned onto it without a cast.
118
+ let projectsQuery = this.supabase
119
+ .from('projects')
120
+ .select(PROJECT_LIST_SELECT, { count: 'estimated' })
121
+ .eq('organization_id', this.auth.organization_id)
122
+ .eq('archived', query.archive)
123
+ .eq('deleted', false)
124
+ .range(offset, offset + pageSize - 1)
125
+ .order('created_at', { ascending: false });
126
+ if (trimmedSearch) {
127
+ const escapedSearch = trimmedSearch.replace(/,/g, '\\,');
128
+ projectsQuery = projectsQuery.or(`name.ilike.%${escapedSearch}%,specification.ilike.%${escapedSearch}%`);
129
+ }
130
+ if (query.created_after) {
131
+ projectsQuery = projectsQuery.gte('created_at', query.created_after);
132
+ }
133
+ if (query.created_before) {
134
+ projectsQuery = projectsQuery.lte('created_at', query.created_before);
135
+ }
136
+ if (query.start_date_after) {
137
+ projectsQuery = projectsQuery.gte('start_date', query.start_date_after);
138
+ }
139
+ if (query.start_date_before) {
140
+ projectsQuery = projectsQuery.lte('start_date', query.start_date_before);
141
+ }
142
+ if (query.end_date_after) {
143
+ projectsQuery = projectsQuery.gte('end_date', query.end_date_after);
144
+ }
145
+ if (query.end_date_before) {
146
+ projectsQuery = projectsQuery.lte('end_date', query.end_date_before);
147
+ }
148
+ if (query.status_id_in && query.status_id_in.length > 0) {
149
+ projectsQuery = projectsQuery.in('status_id', query.status_id_in);
150
+ }
151
+ if (query.client_id) {
152
+ projectsQuery = projectsQuery.eq('client_id', query.client_id);
153
+ }
154
+ const { data, error, count } = await projectsQuery;
155
+ if (error)
156
+ throw (0, errors_1.mapPostgrestError)(error);
157
+ const totalEstimated = count ?? 0;
158
+ const totalPages = totalEstimated > 0 ? Math.ceil(totalEstimated / pageSize) : 0;
159
+ return {
160
+ results: (data ?? []),
161
+ page,
162
+ per_page: pageSize,
163
+ count: totalEstimated,
164
+ total_pages: totalPages,
165
+ has_next_page: page < totalPages,
166
+ has_previous_page: page > 1,
167
+ };
168
+ }
169
+ async getById(projectId) {
170
+ const { data, error } = await this.supabase
171
+ .from('projects')
172
+ .select(PROJECT_DETAIL_SELECT)
173
+ .eq('organization_id', this.auth.organization_id)
174
+ .eq('mms_id', projectId)
175
+ .single();
176
+ if (error)
177
+ throw (0, errors_1.mapPostgrestError)(error);
178
+ // A soft-deleted project keeps its creation audit but gives up its details.
179
+ if (data.deleted) {
180
+ return {
181
+ ...data,
182
+ name: '',
183
+ specification: null,
184
+ has_budget: false,
185
+ status: null,
186
+ start_date: null,
187
+ end_date: null,
188
+ manager: null,
189
+ client: null,
190
+ archived_at: null,
191
+ archived_by: null,
192
+ unarchived_at: null,
193
+ unarchived_by: null,
194
+ restored_at: null,
195
+ restored_by: null,
196
+ };
197
+ }
198
+ return data;
199
+ }
200
+ async create(input) {
201
+ const { data, error } = await this.supabase
202
+ .from('projects')
203
+ .insert({
204
+ ...input,
205
+ start_date: (0, transforms_1.toDateInput)(input.start_date),
206
+ end_date: (0, transforms_1.toDateInput)(input.end_date),
207
+ organization_id: this.auth.organization_id,
208
+ created_by: this.auth.mms_id,
209
+ created_at: new Date().toISOString(),
210
+ })
211
+ .select('mms_id')
212
+ .single();
213
+ if (error)
214
+ throw (0, errors_1.mapPostgrestError)(error);
215
+ return this.getById(data.mms_id);
216
+ }
217
+ async update(projectId, input) {
218
+ const { data, error } = await this.supabase
219
+ .from('projects')
220
+ .update({
221
+ ...input,
222
+ start_date: (0, transforms_1.toDateInput)(input.start_date),
223
+ end_date: (0, transforms_1.toDateInput)(input.end_date),
224
+ last_updated_by: this.auth.mms_id,
225
+ updated_at: new Date().toISOString(),
226
+ })
227
+ .eq('organization_id', this.auth.organization_id)
228
+ .eq('mms_id', projectId)
229
+ .select('mms_id')
230
+ .single();
231
+ if (error)
232
+ throw (0, errors_1.mapPostgrestError)(error);
233
+ return this.getById(data.mms_id);
234
+ }
235
+ async archive(projectId) {
236
+ const { data, error } = await this.supabase
237
+ .from('projects')
238
+ .update({
239
+ archived: true,
240
+ archived_at: new Date().toISOString(),
241
+ archived_by: this.auth.mms_id,
242
+ })
243
+ .eq('organization_id', this.auth.organization_id)
244
+ .eq('mms_id', projectId)
245
+ .select('mms_id')
246
+ .single();
247
+ if (error)
248
+ throw (0, errors_1.mapPostgrestError)(error);
249
+ return this.getById(data.mms_id);
250
+ }
251
+ async unarchive(projectId) {
252
+ const { data, error } = await this.supabase
253
+ .from('projects')
254
+ .update({
255
+ archived: false,
256
+ unarchived_at: new Date().toISOString(),
257
+ unarchived_by: this.auth.mms_id,
258
+ })
259
+ .eq('organization_id', this.auth.organization_id)
260
+ .eq('mms_id', projectId)
261
+ .select('mms_id')
262
+ .single();
263
+ if (error)
264
+ throw (0, errors_1.mapPostgrestError)(error);
265
+ return this.getById(data.mms_id);
266
+ }
267
+ async restore(projectId) {
268
+ const { data, error } = await this.supabase
269
+ .from('projects')
270
+ .update({
271
+ deleted: false,
272
+ restored_at: new Date().toISOString(),
273
+ restored_by: this.auth.mms_id,
274
+ })
275
+ .eq('organization_id', this.auth.organization_id)
276
+ .eq('mms_id', projectId)
277
+ .select('mms_id')
278
+ .single();
279
+ if (error)
280
+ throw (0, errors_1.mapPostgrestError)(error);
281
+ return this.getById(data.mms_id);
282
+ }
283
+ /** Soft delete — the row stays, flagged `deleted`, and `restore()` brings it back. */
284
+ async remove(projectId) {
285
+ const { error } = await this.supabase
286
+ .from('projects')
287
+ .update({
288
+ deleted: true,
289
+ deleted_at: new Date().toISOString(),
290
+ deleted_by: this.auth.mms_id,
291
+ })
292
+ .eq('organization_id', this.auth.organization_id)
293
+ .eq('mms_id', projectId);
294
+ if (error)
295
+ throw (0, errors_1.mapPostgrestError)(error);
296
+ }
297
+ }
298
+ exports.ProjectsResource = ProjectsResource;
299
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/projects/index.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,17 @@
1
1
  import type { AddStatusDto as AddStatusDtoType, GetStatusesDto as GetStatusesDtoType, StatusIdDto as StatusIdDtoType, UpdateStatusDto as UpdateStatusDtoType } from '@managemint-solutions/entities/status/dto';
2
2
  import { StatusEntityTypes } from '@managemint-solutions/entities/status/enum';
3
- import type { TablesInsert } from '../database.types';
4
- type StatusInsertColumns = Required<Pick<TablesInsert<'statuses'>, 'label' | 'colour'>>;
5
3
  export declare class StatusIdDto implements StatusIdDtoType {
6
4
  readonly statusId: string;
7
5
  }
8
6
  export declare class GetStatusesDto implements GetStatusesDtoType {
9
7
  readonly entity: StatusEntityTypes;
10
8
  }
11
- export declare class AddStatusDto implements AddStatusDtoType, StatusInsertColumns {
9
+ export declare class AddStatusDto implements AddStatusDtoType {
12
10
  readonly label: string;
13
11
  readonly colour: string;
14
12
  readonly entity: StatusEntityTypes;
15
13
  }
16
- export declare class UpdateStatusDto implements UpdateStatusDtoType, StatusInsertColumns {
14
+ export declare class UpdateStatusDto implements UpdateStatusDtoType {
17
15
  readonly label: string;
18
16
  readonly colour: string;
19
17
  }
20
- export {};
@@ -12,6 +12,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.UpdateStatusDto = exports.AddStatusDto = exports.GetStatusesDto = exports.StatusIdDto = void 0;
13
13
  const class_validator_1 = require("class-validator");
14
14
  const enum_1 = require("@managemint-solutions/entities/status/enum");
15
+ // class-validator versions of the shared DTO types from @managemint-solutions/entities.
16
+ // Each class `implements` its entities type so the wire contract cannot drift.
15
17
  class StatusIdDto {
16
18
  statusId;
17
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dto.js","sourceRoot":"","sources":["../../src/statuses/dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA0F;AAO1F,qEAA+E;AAQ/E,MAAa,WAAW;IAEb,QAAQ,CAAU;CAC5B;AAHD,kCAGC;AADU;IADR,IAAA,wBAAM,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;;6CAC1B;AAG7B,MAAa,cAAc;IAEhB,MAAM,CAAqB;CACrC;AAHD,wCAGC;AADU;IADR,IAAA,wBAAM,EAAC,wBAAiB,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;;8CAC1B;AAGtC,MAAa,YAAY;IAId,KAAK,CAAU;IAExB,kDAAkD;IAKzC,MAAM,CAAU;IAEzB,0EAA0E;IAEjE,MAAM,CAAqB;CACrC;AAhBD,oCAgBC;AAZU;IAHR,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IACtC,IAAA,2BAAS,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;IAClD,IAAA,2BAAS,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC;;2CAC1C;AAOf;IAJR,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;IAC9C,IAAA,2BAAS,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;IAC5D,IAAA,2BAAS,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;IAC5D,IAAA,yBAAO,EAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;;4CACpD;AAIhB;IADR,IAAA,wBAAM,EAAC,wBAAiB,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;;4CAC1B;AAGtC,MAAa,eAAe;IAIjB,KAAK,CAAU;IAExB,kDAAkD;IAKzC,MAAM,CAAU;CAC1B;AAZD,0CAYC;AARU;IAHR,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IACtC,IAAA,2BAAS,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;IAClD,IAAA,2BAAS,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC;;8CAC1C;AAOf;IAJR,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;IAC9C,IAAA,2BAAS,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;IAC5D,IAAA,2BAAS,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;IAC5D,IAAA,yBAAO,EAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;;+CACpD"}
1
+ {"version":3,"file":"dto.js","sourceRoot":"","sources":["../../src/statuses/dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA0F;AAO1F,qEAA+E;AAE/E,wFAAwF;AACxF,+EAA+E;AAE/E,MAAa,WAAW;IAEb,QAAQ,CAAU;CAC5B;AAHD,kCAGC;AADU;IADR,IAAA,wBAAM,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;;6CAC1B;AAG7B,MAAa,cAAc;IAEhB,MAAM,CAAqB;CACrC;AAHD,wCAGC;AADU;IADR,IAAA,wBAAM,EAAC,wBAAiB,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;;8CAC1B;AAGtC,MAAa,YAAY;IAId,KAAK,CAAU;IAExB,kDAAkD;IAKzC,MAAM,CAAU;IAEzB,0EAA0E;IAEjE,MAAM,CAAqB;CACrC;AAhBD,oCAgBC;AAZU;IAHR,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IACtC,IAAA,2BAAS,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;IAClD,IAAA,2BAAS,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC;;2CAC1C;AAOf;IAJR,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;IAC9C,IAAA,2BAAS,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;IAC5D,IAAA,2BAAS,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;IAC5D,IAAA,yBAAO,EAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;;4CACpD;AAIhB;IADR,IAAA,wBAAM,EAAC,wBAAiB,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;;4CAC1B;AAGtC,MAAa,eAAe;IAIjB,KAAK,CAAU;IAExB,kDAAkD;IAKzC,MAAM,CAAU;CAC1B;AAZD,0CAYC;AARU;IAHR,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IACtC,IAAA,2BAAS,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;IAClD,IAAA,2BAAS,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC;;8CAC1C;AAOf;IAJR,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;IAC9C,IAAA,2BAAS,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;IAC5D,IAAA,2BAAS,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;IAC5D,IAAA,yBAAO,EAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;;+CACpD"}
@@ -17,10 +17,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.StatusesResource = void 0;
18
18
  const errors_1 = require("../errors");
19
19
  __exportStar(require("./dto"), exports);
20
- // The query is typed by the generated Database schema (so the select string is inferred and
21
- // checked); the public contract is the shared StatusEntity from @managemint-solutions/entities.
22
- // The only difference between the two is mms_id (generated: string, entities: crypto UUID),
23
- // which the `as StatusEntity` casts bridge.
20
+ // The public contract is the shared StatusEntity from @managemint-solutions/entities; the
21
+ // `as StatusEntity` casts declare the shape the select string below produces (the columns are
22
+ // defined in the api's supabase/migrations).
24
23
  const STATUS_SELECT = 'mms_id, label, colour';
25
24
  class StatusesResource {
26
25
  supabase;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/statuses/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAKA,sCAA8C;AAE9C,wCAAsB;AAEtB,4FAA4F;AAC5F,gGAAgG;AAChG,4FAA4F;AAC5F,4CAA4C;AAC5C,MAAM,aAAa,GAAG,uBAAgC,CAAC;AAEvD,MAAa,gBAAgB;IAER;IACA;IAFnB,YACmB,QAA6B,EAC7B,IAAiB;QADjB,aAAQ,GAAR,QAAQ,CAAqB;QAC7B,SAAI,GAAJ,IAAI,CAAa;IACjC,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAC,MAAyB;QAClC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ;aACxC,IAAI,CAAC,UAAU,CAAC;aAChB,MAAM,CAAC,aAAa,CAAC;aACrB,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;aAChD,EAAE,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC7B,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,IAAsB,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAmB;QAC9B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ;aACxC,IAAI,CAAC,UAAU,CAAC;aAChB,MAAM,CAAC;YACN,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,KAAK,CAAC,MAAM;YACzB,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe;YAC1C,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;SAC7B,CAAC;aACD,MAAM,CAAC,aAAa,CAAC;aACrB,MAAM,EAAE,CAAC;QACZ,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,IAAoB,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,KAAsB;QACnD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ;aACxC,IAAI,CAAC,UAAU,CAAC;aAChB,MAAM,CAAC;YACN,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;SAClC,CAAC;aACD,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;aACtB,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;aAChD,MAAM,CAAC,aAAa,CAAC;aACrB,MAAM,EAAE,CAAC;QACZ,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,IAAoB,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAgB;QAC3B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ;aAClC,IAAI,CAAC,UAAU,CAAC;aAChB,MAAM,EAAE;aACR,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;aACtB,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACpD,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;CACF;AAzDD,4CAyDC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/statuses/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAKA,sCAA8C;AAE9C,wCAAsB;AAEtB,0FAA0F;AAC1F,8FAA8F;AAC9F,6CAA6C;AAC7C,MAAM,aAAa,GAAG,uBAAgC,CAAC;AAEvD,MAAa,gBAAgB;IAER;IACA;IAFnB,YACmB,QAA6B,EAC7B,IAAiB;QADjB,aAAQ,GAAR,QAAQ,CAAqB;QAC7B,SAAI,GAAJ,IAAI,CAAa;IACjC,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAC,MAAyB;QAClC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ;aACxC,IAAI,CAAC,UAAU,CAAC;aAChB,MAAM,CAAC,aAAa,CAAC;aACrB,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;aAChD,EAAE,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC7B,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,IAAsB,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAmB;QAC9B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ;aACxC,IAAI,CAAC,UAAU,CAAC;aAChB,MAAM,CAAC;YACN,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,KAAK,CAAC,MAAM;YACzB,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe;YAC1C,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;SAC7B,CAAC;aACD,MAAM,CAAC,aAAa,CAAC;aACrB,MAAM,EAAE,CAAC;QACZ,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,IAAoB,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,KAAsB;QACnD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ;aACxC,IAAI,CAAC,UAAU,CAAC;aAChB,MAAM,CAAC;YACN,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;SAClC,CAAC;aACD,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;aACtB,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;aAChD,MAAM,CAAC,aAAa,CAAC;aACrB,MAAM,EAAE,CAAC;QACZ,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,IAAoB,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAgB;QAC3B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ;aAClC,IAAI,CAAC,UAAU,CAAC;aAChB,MAAM,EAAE;aACR,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;aACtB,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACpD,IAAI,KAAK;YAAE,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;CACF;AAzDD,4CAyDC"}