From 9e41910e9eb68126a45bd6f433596bf5e5c59209 Mon Sep 17 00:00:00 2001 From: Julian Krauser Date: Wed, 16 Apr 2025 17:17:12 +0200 Subject: [PATCH] change: query update to v1.4.0 --- src/types/admin/dynamicQueries.ts | 23 +++++++++++++++++++++-- src/viewmodels/admin/query.models.ts | 1 + 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/types/admin/dynamicQueries.ts b/src/types/admin/dynamicQueries.ts index 7ae4a79..2d870b7 100644 --- a/src/types/admin/dynamicQueries.ts +++ b/src/types/admin/dynamicQueries.ts @@ -1,9 +1,10 @@ export interface DynamicQueryStructure { + id: string; select: string[] | "*"; table: string; where?: Array; - join?: Array; - orderBy?: Array; + join?: Array; + orderBy?: Array; // only at top level } export type ConditionStructure = ( @@ -47,7 +48,12 @@ export type WhereOperation = | "timespanEq"; // Date before x years (YYYY-01-01 YYYY-12-31) // TODO: age between | age equals | age greater | age smaller +export type JoinStructure = { foreignColumn: string; type: "defined" } | { condition: string; type: "custom" }; + export type OrderByStructure = { + id: string; + depth: number; + table: string; column: string; order: OrderByType; }; @@ -59,6 +65,7 @@ export type QueryResult = { }; export const exampleQuery: DynamicQueryStructure = { + id: "1234", select: ["firstname", "lastname"], table: "member", where: [ @@ -92,19 +99,25 @@ export const exampleQuery: DynamicQueryStructure = { ], join: [ { + id: "5678", select: "*", table: "communication", foreignColumn: "sendNewsletter", + type: "defined", }, { + id: "91011", select: "*", table: "membership", foreignColumn: "memberships", + type: "defined", join: [ { + id: "121314", select: "*", table: "membership_status", foreignColumn: "status", + type: "defined", where: [ { structureType: "condition", @@ -120,10 +133,16 @@ export const exampleQuery: DynamicQueryStructure = { ], orderBy: [ { + id: "1234", + depth: 0, + table: "member", column: "firstname", order: "ASC", }, { + id: "1234", + depth: 0, + table: "member", column: "lastname", order: "ASC", }, diff --git a/src/viewmodels/admin/query.models.ts b/src/viewmodels/admin/query.models.ts index b362cc5..21b75e8 100644 --- a/src/viewmodels/admin/query.models.ts +++ b/src/viewmodels/admin/query.models.ts @@ -5,6 +5,7 @@ export interface QueryViewModel { id: string; title: string; query: string | DynamicQueryStructure; + updatedAt: Date; } export interface CreateQueryViewModel {