aboutsummaryrefslogtreecommitdiffstats
path: root/code/app/src/lib/models/work/WorkQuery.ts
diff options
context:
space:
mode:
Diffstat (limited to 'code/app/src/lib/models/work/WorkQuery.ts')
-rw-r--r--code/app/src/lib/models/work/WorkQuery.ts30
1 files changed, 30 insertions, 0 deletions
diff --git a/code/app/src/lib/models/work/WorkQuery.ts b/code/app/src/lib/models/work/WorkQuery.ts
new file mode 100644
index 0000000..bccc589
--- /dev/null
+++ b/code/app/src/lib/models/work/WorkQuery.ts
@@ -0,0 +1,30 @@
+import type { HourEntry } from "./WorkEntry";
+import type { IValidationResult } from "../internal/IValidationResult";
+import ValidationResult from "../internal/IValidationResult";
+
+export interface IWorkQuery {
+ results: Array<HourEntry>,
+ page: number,
+ pageSize: number,
+ totalRecords: number,
+ totalPageCount: number,
+ is_valid: Function
+}
+
+export class WorkQuery implements IWorkQuery {
+ results: HourEntry[];
+ page: number;
+ pageSize: number;
+ totalRecords: number;
+ totalPageCount: number;
+
+ is_valid(): IValidationResult {
+ const result = new ValidationResult();
+ if (this.page < 0) {
+ result.add_error("page", {
+ title: "Page cannot be less than zero",
+ })
+ }
+ return result;
+ }
+}