aboutsummaryrefslogtreecommitdiffstats
path: root/code/app/src/lib/models/work/WorkQuery.ts
diff options
context:
space:
mode:
authorivarlovlie <git@ivarlovlie.no>2022-10-09 18:33:20 +0200
committerivarlovlie <git@ivarlovlie.no>2022-10-09 18:33:20 +0200
commita57845f08a6eb9bc32c2173f15472e0c29722cf6 (patch)
tree68724e66a4caadf78c464a9cd93f62c8aaed7401 /code/app/src/lib/models/work/WorkQuery.ts
parentb7e39b59fd0fc7b5610ebff29035bf622079e0d8 (diff)
downloadgreatoffice-a57845f08a6eb9bc32c2173f15472e0c29722cf6.tar.xz
greatoffice-a57845f08a6eb9bc32c2173f15472e0c29722cf6.zip
refactor: Restructure and create new models
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;
+ }
+}