{"version":3,"file":"users.mjs","names":["queryBuilder"],"sources":["../../../src/libs/repositories/users.ts"],"sourcesContent":["import { type SelectQueryBuilder, sql } from \"kysely\";\nimport z from \"zod\";\nimport type { GetMultipleQueryParams } from \"../../schemas/users.js\";\nimport type DatabaseAdapter from \"../db/adapter-base.js\";\nimport queryBuilder, {\n\ttype QueryBuilderWhere,\n} from \"../db/query-builder/index.js\";\nimport type { KyselyDB, LucidUsers, Select } from \"../db/types.js\";\nimport StaticRepository from \"./parents/static-repository.js\";\nimport type { QueryProps } from \"./types.js\";\n\nexport default class UsersRepository extends StaticRepository<\"lucid_users\"> {\n\tconstructor(db: KyselyDB, dbAdapter: DatabaseAdapter) {\n\t\tsuper(db, dbAdapter, \"lucid_users\");\n\t}\n\ttableSchema = z.object({\n\t\tid: z.number(),\n\t\tsuper_admin: z.union([\n\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.true),\n\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.false),\n\t\t]),\n\t\temail: z.email(),\n\t\tusername: z.string(),\n\t\tfirst_name: z.string().nullable(),\n\t\tlast_name: z.string().nullable(),\n\t\tpassword: z.string().nullable(),\n\t\tsecret: z.string(),\n\t\ttriggered_password_reset: z.union([\n\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.true),\n\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.false),\n\t\t]),\n\t\tinvitation_accepted: z.union([\n\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.true),\n\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.false),\n\t\t]),\n\t\tis_locked: z.union([\n\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.true),\n\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.false),\n\t\t]),\n\t\tis_deleted: z.union([\n\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.true),\n\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.false),\n\t\t]),\n\t\tis_deleted_at: z.union([z.string(), z.date()]).nullable(),\n\t\tdeleted_by: z.number().nullable(),\n\t\tprofile_picture_media_id: z.number().nullable().optional(),\n\t\tprofile_picture: z\n\t\t\t.array(\n\t\t\t\tz.object({\n\t\t\t\t\tid: z.number(),\n\t\t\t\t\tkey: z.string(),\n\t\t\t\t\torigin: z.enum([\"human\", \"ai_generated\", \"ai_modified\"]),\n\t\t\t\t\tfolder_id: z.number().nullable(),\n\t\t\t\t\te_tag: z.string().nullable(),\n\t\t\t\t\ttype: z.string(),\n\t\t\t\t\tmime_type: z.string(),\n\t\t\t\t\tfile_extension: z.string(),\n\t\t\t\t\tfile_name: z.string().nullable(),\n\t\t\t\t\tfile_size: z.number(),\n\t\t\t\t\twidth: z.number().nullable(),\n\t\t\t\t\theight: z.number().nullable(),\n\t\t\t\t\tfocal_x: z.number().nullable(),\n\t\t\t\t\tfocal_y: z.number().nullable(),\n\t\t\t\t\tcreated_at: z.union([z.string(), z.date()]).nullable(),\n\t\t\t\t\tupdated_at: z.union([z.string(), z.date()]).nullable(),\n\t\t\t\t\tblur_hash: z.string().nullable(),\n\t\t\t\t\taverage_color: z.string().nullable(),\n\t\t\t\t\tbase64: z.string().nullable().optional(),\n\t\t\t\t\tis_dark: z\n\t\t\t\t\t\t.union([\n\t\t\t\t\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.true),\n\t\t\t\t\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.false),\n\t\t\t\t\t\t])\n\t\t\t\t\t\t.nullable(),\n\t\t\t\t\tis_light: z\n\t\t\t\t\t\t.union([\n\t\t\t\t\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.true),\n\t\t\t\t\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.false),\n\t\t\t\t\t\t])\n\t\t\t\t\t\t.nullable(),\n\t\t\t\t\tcrop: z\n\t\t\t\t\t\t.array(\n\t\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\t\tid: z.number(),\n\t\t\t\t\t\t\t\tkey: z.string(),\n\t\t\t\t\t\t\t\torigin: z.enum([\"human\", \"ai_generated\", \"ai_modified\"]),\n\t\t\t\t\t\t\t\ttype: z.string(),\n\t\t\t\t\t\t\t\tmime_type: z.string(),\n\t\t\t\t\t\t\t\tfile_extension: z.string(),\n\t\t\t\t\t\t\t\tfile_name: z.string().nullable(),\n\t\t\t\t\t\t\t\tfile_size: z.number(),\n\t\t\t\t\t\t\t\twidth: z.number().nullable(),\n\t\t\t\t\t\t\t\theight: z.number().nullable(),\n\t\t\t\t\t\t\t\tfocal_x: z.number().nullable(),\n\t\t\t\t\t\t\t\tfocal_y: z.number().nullable(),\n\t\t\t\t\t\t\t\tcrop_x: z.number(),\n\t\t\t\t\t\t\t\tcrop_y: z.number(),\n\t\t\t\t\t\t\t\tcrop_width: z.number(),\n\t\t\t\t\t\t\t\tcrop_height: z.number(),\n\t\t\t\t\t\t\t\tcrop_rotation: z.number(),\n\t\t\t\t\t\t\t\tcrop_skew_x: z.number(),\n\t\t\t\t\t\t\t\tcrop_skew_y: z.number(),\n\t\t\t\t\t\t\t\tblur_hash: z.string().nullable(),\n\t\t\t\t\t\t\t\taverage_color: z.string().nullable(),\n\t\t\t\t\t\t\t\tbase64: z.string().nullable().optional(),\n\t\t\t\t\t\t\t\tis_dark: z\n\t\t\t\t\t\t\t\t\t.union([\n\t\t\t\t\t\t\t\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.true),\n\t\t\t\t\t\t\t\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.false),\n\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t.nullable(),\n\t\t\t\t\t\t\t\tis_light: z\n\t\t\t\t\t\t\t\t\t.union([\n\t\t\t\t\t\t\t\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.true),\n\t\t\t\t\t\t\t\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.false),\n\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t.nullable(),\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.optional(),\n\t\t\t\t\tis_deleted: z.union([\n\t\t\t\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.true),\n\t\t\t\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.false),\n\t\t\t\t\t]),\n\t\t\t\t\tis_deleted_at: z.union([z.string(), z.date()]).nullable(),\n\t\t\t\t\tdeleted_by: z.number().nullable(),\n\t\t\t\t\tpublic: z.union([\n\t\t\t\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.true),\n\t\t\t\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.false),\n\t\t\t\t\t]),\n\t\t\t\t\ttranslations: z\n\t\t\t\t\t\t.array(\n\t\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\t\ttitle: z.string().nullable(),\n\t\t\t\t\t\t\t\talt: z.string().nullable(),\n\t\t\t\t\t\t\t\tlocale_code: z.string().nullable(),\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.optional(),\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.optional(),\n\t\tauth_providers: z\n\t\t\t.array(\n\t\t\t\tz.object({\n\t\t\t\t\tid: z.number(),\n\t\t\t\t\tprovider_key: z.string(),\n\t\t\t\t\tprovider_user_id: z.string(),\n\t\t\t\t\tlinked_at: z.union([z.string(), z.date()]).nullable(),\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.optional(),\n\t\troles: z\n\t\t\t.array(\n\t\t\t\tz.object({\n\t\t\t\t\tid: z.number(),\n\t\t\t\t\tname: z.string().nullable().optional(),\n\t\t\t\t\ttranslations: z\n\t\t\t\t\t\t.array(\n\t\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\t\tname: z.string().nullable(),\n\t\t\t\t\t\t\t\tlocale_code: z.string().nullable(),\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.optional(),\n\t\t\t\t\tpermissions: z\n\t\t\t\t\t\t.array(\n\t\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\t\tpermission: z.string(),\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.optional(),\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.optional(),\n\t\ttenants: z\n\t\t\t.array(\n\t\t\t\tz.object({\n\t\t\t\t\ttenant_key: z.string(),\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.optional(),\n\t\tcreated_at: z.union([z.string(), z.date()]).nullable(),\n\t\tupdated_at: z.union([z.string(), z.date()]).nullable(),\n\t});\n\tcolumnFormats = {\n\t\tid: this.dbAdapter.getDataType(\"primary\"),\n\t\tsuper_admin: this.dbAdapter.getDataType(\"boolean\"),\n\t\temail: this.dbAdapter.getDataType(\"text\"),\n\t\tusername: this.dbAdapter.getDataType(\"text\"),\n\t\tfirst_name: this.dbAdapter.getDataType(\"text\"),\n\t\tlast_name: this.dbAdapter.getDataType(\"text\"),\n\t\tpassword: this.dbAdapter.getDataType(\"text\"),\n\t\tsecret: this.dbAdapter.getDataType(\"text\"),\n\t\ttriggered_password_reset: this.dbAdapter.getDataType(\"boolean\"),\n\t\tinvitation_accepted: this.dbAdapter.getDataType(\"boolean\"),\n\t\tis_locked: this.dbAdapter.getDataType(\"boolean\"),\n\t\tis_deleted: this.dbAdapter.getDataType(\"boolean\"),\n\t\tis_deleted_at: this.dbAdapter.getDataType(\"timestamp\"),\n\t\tdeleted_by: this.dbAdapter.getDataType(\"integer\"),\n\t\tprofile_picture_media_id: this.dbAdapter.getDataType(\"integer\"),\n\t\tcreated_at: this.dbAdapter.getDataType(\"timestamp\"),\n\t\tupdated_at: this.dbAdapter.getDataType(\"timestamp\"),\n\t};\n\tqueryConfig = {\n\t\ttableKeys: {\n\t\t\tfilters: {\n\t\t\t\tfirstName: \"lucid_users.first_name\",\n\t\t\t\tlastName: \"lucid_users.last_name\",\n\t\t\t\temail: \"lucid_users.email\",\n\t\t\t\tusername: \"lucid_users.username\",\n\t\t\t\troleIds: \"lucid_user_roles.role_id\",\n\t\t\t\tid: \"lucid_users.id\",\n\t\t\t\tinvitationAccepted: \"lucid_users.invitation_accepted\",\n\t\t\t\tsuperAdmin: \"lucid_users.super_admin\",\n\t\t\t\ttriggerPasswordReset: \"lucid_users.triggered_password_reset\",\n\t\t\t\tisLocked: \"lucid_users.is_locked\",\n\t\t\t\tisDeleted: \"lucid_users.is_deleted\",\n\t\t\t\tdeletedBy: \"lucid_users.deleted_by\",\n\t\t\t\tcreatedAt: \"lucid_users.created_at\",\n\t\t\t\tupdatedAt: \"lucid_users.updated_at\",\n\t\t\t},\n\t\t\tsorts: {\n\t\t\t\tcreatedAt: \"lucid_users.created_at\",\n\t\t\t\tupdatedAt: \"lucid_users.updated_at\",\n\t\t\t\tfirstName: \"lucid_users.first_name\",\n\t\t\t\tlastName: \"lucid_users.last_name\",\n\t\t\t\temail: \"lucid_users.email\",\n\t\t\t\tusername: \"lucid_users.username\",\n\t\t\t\tisLocked: \"lucid_users.is_locked\",\n\t\t\t},\n\t\t},\n\t\toperators: {\n\t\t\tfirstName: \"contains\",\n\t\t\tlastName: \"contains\",\n\t\t\temail: \"contains\",\n\t\t\tusername: \"contains\",\n\t\t},\n\t} as const;\n\n\t// ----------------------------------------\n\t// queries\n\tasync selectAccessTokenUser<V extends boolean = false>(\n\t\tprops: QueryProps<\n\t\t\tV,\n\t\t\t{\n\t\t\t\twhere: QueryBuilderWhere<\"lucid_users\">;\n\t\t\t\ttenantKey?: string | null;\n\t\t\t}\n\t\t>,\n\t) {\n\t\tlet query = this.db.selectFrom(\"lucid_users\").select((eb) => [\n\t\t\t\"id\",\n\t\t\t\"username\",\n\t\t\t\"email\",\n\t\t\t\"super_admin\",\n\t\t\tthis.dbAdapter\n\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\teb\n\t\t\t\t\t\t.selectFrom(\"lucid_user_roles\")\n\t\t\t\t\t\t.innerJoin(\n\t\t\t\t\t\t\t\"lucid_roles\",\n\t\t\t\t\t\t\t\"lucid_roles.id\",\n\t\t\t\t\t\t\t\"lucid_user_roles.role_id\",\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.select((eb) => [\n\t\t\t\t\t\t\t\"lucid_roles.id\",\n\t\t\t\t\t\t\tthis.dbAdapter\n\t\t\t\t\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\t\t\t\t\teb\n\t\t\t\t\t\t\t\t\t\t.selectFrom(\"lucid_role_translations\")\n\t\t\t\t\t\t\t\t\t\t.select([\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_role_translations.name\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_role_translations.locale_code\",\n\t\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t\t.whereRef(\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_role_translations.role_id\",\n\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_roles.id\",\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.as(\"translations\"),\n\t\t\t\t\t\t\tthis.dbAdapter\n\t\t\t\t\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\t\t\t\t\teb\n\t\t\t\t\t\t\t\t\t\t.selectFrom(\"lucid_role_permissions\")\n\t\t\t\t\t\t\t\t\t\t.select([\"permission\"])\n\t\t\t\t\t\t\t\t\t\t.whereRef(\"role_id\", \"=\", \"lucid_roles.id\"),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.as(\"permissions\"),\n\t\t\t\t\t\t])\n\t\t\t\t\t\t.whereRef(\"user_id\", \"=\", \"lucid_users.id\")\n\t\t\t\t\t\t.$call((qb) =>\n\t\t\t\t\t\t\tqueryBuilder.tenantScope(qb, {\n\t\t\t\t\t\t\t\ttenantKey: props.tenantKey,\n\t\t\t\t\t\t\t\tcolumn: \"lucid_roles.tenant_key\",\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t)\n\t\t\t\t.as(\"roles\"),\n\t\t\tthis.dbAdapter\n\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\teb\n\t\t\t\t\t\t.selectFrom(\"lucid_user_tenants\")\n\t\t\t\t\t\t.select([\"lucid_user_tenants.tenant_key\"])\n\t\t\t\t\t\t.whereRef(\"lucid_user_tenants.user_id\", \"=\", \"lucid_users.id\"),\n\t\t\t\t)\n\t\t\t\t.as(\"tenants\"),\n\t\t]);\n\n\t\tquery = queryBuilder.select(query, props.where);\n\n\t\tconst exec = await this.executeQuery(() => query.executeTakeFirst(), {\n\t\t\tmethod: \"selectAccessTokenUser\",\n\t\t});\n\t\tif (exec.response.error) return exec.response;\n\n\t\treturn this.validateResponse(exec, {\n\t\t\t...props.validation,\n\t\t\tmode: \"single\",\n\t\t\tselect: [\"id\", \"username\", \"email\", \"super_admin\", \"roles\", \"tenants\"],\n\t\t});\n\t}\n\tasync selectAuditActorById<V extends boolean = false>(\n\t\tprops: QueryProps<\n\t\t\tV,\n\t\t\t{\n\t\t\t\tid: number;\n\t\t\t\tdefaultLocale: string;\n\t\t\t}\n\t\t>,\n\t) {\n\t\tconst query = this.db\n\t\t\t.selectFrom(\"lucid_users\")\n\t\t\t.select((eb) => [\n\t\t\t\t\"id\",\n\t\t\t\t\"super_admin\",\n\t\t\t\tthis.dbAdapter\n\t\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\t\teb\n\t\t\t\t\t\t\t.selectFrom(\"lucid_user_roles\")\n\t\t\t\t\t\t\t.innerJoin(\n\t\t\t\t\t\t\t\t\"lucid_roles\",\n\t\t\t\t\t\t\t\t\"lucid_roles.id\",\n\t\t\t\t\t\t\t\t\"lucid_user_roles.role_id\",\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.leftJoin(\"lucid_role_translations as translation\", (join) =>\n\t\t\t\t\t\t\t\tjoin\n\t\t\t\t\t\t\t\t\t.onRef(\"translation.role_id\", \"=\", \"lucid_roles.id\")\n\t\t\t\t\t\t\t\t\t.on(\"translation.locale_code\", \"=\", props.defaultLocale),\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.select([\"lucid_roles.id\", \"translation.name\"])\n\t\t\t\t\t\t\t.whereRef(\"user_id\", \"=\", \"lucid_users.id\")\n\t\t\t\t\t\t\t.orderBy(\"lucid_roles.id\", \"asc\"),\n\t\t\t\t\t)\n\t\t\t\t\t.as(\"roles\"),\n\t\t\t])\n\t\t\t.where(\"id\", \"=\", props.id);\n\n\t\tconst exec = await this.executeQuery(() => query.executeTakeFirst(), {\n\t\t\tmethod: \"selectAuditActorById\",\n\t\t});\n\t\tif (exec.response.error) return exec.response;\n\n\t\treturn this.validateResponse(exec, {\n\t\t\t...props.validation,\n\t\t\tmode: \"single\",\n\t\t\tselect: [\"id\", \"super_admin\", \"roles\"],\n\t\t});\n\t}\n\tasync selectSinglePreset<V extends boolean = false>(\n\t\tprops: QueryProps<\n\t\t\tV,\n\t\t\t{\n\t\t\t\twhere: QueryBuilderWhere<\"lucid_users\">;\n\t\t\t\ttenantKey?: string | null;\n\t\t\t}\n\t\t>,\n\t) {\n\t\tlet query = this.db.selectFrom(\"lucid_users\").select((eb) => [\n\t\t\t\"email\",\n\t\t\t\"first_name\",\n\t\t\t\"last_name\",\n\t\t\t\"id\",\n\t\t\t\"created_at\",\n\t\t\t\"updated_at\",\n\t\t\t\"username\",\n\t\t\t\"super_admin\",\n\t\t\t\"triggered_password_reset\",\n\t\t\t\"invitation_accepted\",\n\t\t\t\"is_locked\",\n\t\t\t\"is_deleted\",\n\t\t\t\"is_deleted_at\",\n\t\t\t\"password\",\n\t\t\tthis.dbAdapter\n\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\teb\n\t\t\t\t\t\t.selectFrom(\"lucid_user_roles\")\n\t\t\t\t\t\t.innerJoin(\n\t\t\t\t\t\t\t\"lucid_roles\",\n\t\t\t\t\t\t\t\"lucid_roles.id\",\n\t\t\t\t\t\t\t\"lucid_user_roles.role_id\",\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.select((eb) => [\n\t\t\t\t\t\t\t\"lucid_roles.id\",\n\t\t\t\t\t\t\tthis.dbAdapter\n\t\t\t\t\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\t\t\t\t\teb\n\t\t\t\t\t\t\t\t\t\t.selectFrom(\"lucid_role_translations\")\n\t\t\t\t\t\t\t\t\t\t.select([\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_role_translations.name\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_role_translations.locale_code\",\n\t\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t\t.whereRef(\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_role_translations.role_id\",\n\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_roles.id\",\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.as(\"translations\"),\n\t\t\t\t\t\t\tthis.dbAdapter\n\t\t\t\t\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\t\t\t\t\teb\n\t\t\t\t\t\t\t\t\t\t.selectFrom(\"lucid_role_permissions\")\n\t\t\t\t\t\t\t\t\t\t.select([\"permission\"])\n\t\t\t\t\t\t\t\t\t\t.whereRef(\"role_id\", \"=\", \"lucid_roles.id\"),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.as(\"permissions\"),\n\t\t\t\t\t\t])\n\t\t\t\t\t\t.whereRef(\"user_id\", \"=\", \"lucid_users.id\")\n\t\t\t\t\t\t.$call((qb) =>\n\t\t\t\t\t\t\tqueryBuilder.tenantScope(qb, {\n\t\t\t\t\t\t\t\ttenantKey: props.tenantKey,\n\t\t\t\t\t\t\t\tcolumn: \"lucid_roles.tenant_key\",\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t)\n\t\t\t\t.as(\"roles\"),\n\t\t\tthis.dbAdapter\n\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\teb\n\t\t\t\t\t\t.selectFrom(\"lucid_user_auth_providers\")\n\t\t\t\t\t\t.select([\n\t\t\t\t\t\t\t\"lucid_user_auth_providers.id\",\n\t\t\t\t\t\t\t\"lucid_user_auth_providers.provider_key\",\n\t\t\t\t\t\t\t\"lucid_user_auth_providers.provider_user_id\",\n\t\t\t\t\t\t\t\"lucid_user_auth_providers.linked_at\",\n\t\t\t\t\t\t])\n\t\t\t\t\t\t.whereRef(\n\t\t\t\t\t\t\t\"lucid_user_auth_providers.user_id\",\n\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\"lucid_users.id\",\n\t\t\t\t\t\t),\n\t\t\t\t)\n\t\t\t\t.as(\"auth_providers\"),\n\t\t\tthis.dbAdapter\n\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\teb\n\t\t\t\t\t\t.selectFrom(\"lucid_media\")\n\t\t\t\t\t\t.select((mediaEb) => [\n\t\t\t\t\t\t\t\"lucid_media.id\",\n\t\t\t\t\t\t\t\"lucid_media.key\",\n\t\t\t\t\t\t\t\"lucid_media.origin\",\n\t\t\t\t\t\t\t\"lucid_media.folder_id\",\n\t\t\t\t\t\t\t\"lucid_media.e_tag\",\n\t\t\t\t\t\t\t\"lucid_media.type\",\n\t\t\t\t\t\t\t\"lucid_media.mime_type\",\n\t\t\t\t\t\t\t\"lucid_media.file_extension\",\n\t\t\t\t\t\t\t\"lucid_media.file_name\",\n\t\t\t\t\t\t\t\"lucid_media.file_size\",\n\t\t\t\t\t\t\t\"lucid_media.width\",\n\t\t\t\t\t\t\t\"lucid_media.height\",\n\t\t\t\t\t\t\t\"lucid_media.focal_x\",\n\t\t\t\t\t\t\t\"lucid_media.focal_y\",\n\t\t\t\t\t\t\t\"lucid_media.created_at\",\n\t\t\t\t\t\t\t\"lucid_media.updated_at\",\n\t\t\t\t\t\t\t\"lucid_media.blur_hash\",\n\t\t\t\t\t\t\t\"lucid_media.average_color\",\n\t\t\t\t\t\t\t\"lucid_media.base64\",\n\t\t\t\t\t\t\t\"lucid_media.is_dark\",\n\t\t\t\t\t\t\t\"lucid_media.is_light\",\n\t\t\t\t\t\t\t\"lucid_media.is_deleted\",\n\t\t\t\t\t\t\t\"lucid_media.is_deleted_at\",\n\t\t\t\t\t\t\t\"lucid_media.deleted_by\",\n\t\t\t\t\t\t\t\"lucid_media.public\",\n\t\t\t\t\t\t\tthis.dbAdapter\n\t\t\t\t\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\t\t\t\t\tmediaEb\n\t\t\t\t\t\t\t\t\t\t.selectFrom(\"lucid_media as profile_crop\")\n\t\t\t\t\t\t\t\t\t\t.select([\n\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.id\",\n\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.key\",\n\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.origin\",\n\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.type\",\n\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.mime_type\",\n\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.file_extension\",\n\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.file_name\",\n\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.file_size\",\n\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.width\",\n\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.height\",\n\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.focal_x\",\n\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.focal_y\",\n\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_x\",\n\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_y\",\n\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_width\",\n\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_height\",\n\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_rotation\",\n\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_skew_x\",\n\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_skew_y\",\n\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.blur_hash\",\n\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.average_color\",\n\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.base64\",\n\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.is_dark\",\n\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.is_light\",\n\t\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t\t.where(\n\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.parent_media_id\",\n\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\tsql.ref<number>(\"lucid_media.id\"),\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t.where(\"profile_crop.relation_type\", \"=\", \"crop\")\n\t\t\t\t\t\t\t\t\t\t.where(\n\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.is_deleted\",\n\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\tthis.dbAdapter.getDefault(\"boolean\", \"false\"),\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.as(\"crop\"),\n\t\t\t\t\t\t\tthis.dbAdapter\n\t\t\t\t\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\t\t\t\t\tmediaEb\n\t\t\t\t\t\t\t\t\t\t.selectFrom(\"lucid_media_translations\")\n\t\t\t\t\t\t\t\t\t\t.select([\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.title\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.alt\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.description\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.summary\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.locale_code\",\n\t\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t\t.whereRef(\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.media_id\",\n\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.id\",\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.as(\"translations\"),\n\t\t\t\t\t\t])\n\t\t\t\t\t\t.whereRef(\n\t\t\t\t\t\t\t\"lucid_media.id\",\n\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\"lucid_users.profile_picture_media_id\",\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.where(\n\t\t\t\t\t\t\t\"lucid_media.is_deleted\",\n\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\tthis.dbAdapter.getDefault(\"boolean\", \"false\"),\n\t\t\t\t\t\t),\n\t\t\t\t)\n\t\t\t\t.as(\"profile_picture\"),\n\t\t\tthis.dbAdapter\n\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\teb\n\t\t\t\t\t\t.selectFrom(\"lucid_user_tenants\")\n\t\t\t\t\t\t.select([\"lucid_user_tenants.tenant_key\"])\n\t\t\t\t\t\t.whereRef(\"lucid_user_tenants.user_id\", \"=\", \"lucid_users.id\"),\n\t\t\t\t)\n\t\t\t\t.as(\"tenants\"),\n\t\t]);\n\n\t\tquery = queryBuilder.select(query, props.where);\n\t\tquery = this.applyUserTenantScope(query, props.tenantKey);\n\n\t\tconst exec = await this.executeQuery(() => query.executeTakeFirst(), {\n\t\t\tmethod: \"selectSingleById\",\n\t\t});\n\t\tif (exec.response.error) return exec.response;\n\n\t\treturn this.validateResponse(exec, {\n\t\t\t...props.validation,\n\t\t\tmode: \"single\",\n\t\t\tselect: [\n\t\t\t\t\"email\",\n\t\t\t\t\"first_name\",\n\t\t\t\t\"last_name\",\n\t\t\t\t\"id\",\n\t\t\t\t\"created_at\",\n\t\t\t\t\"updated_at\",\n\t\t\t\t\"username\",\n\t\t\t\t\"super_admin\",\n\t\t\t\t\"triggered_password_reset\",\n\t\t\t\t\"invitation_accepted\",\n\t\t\t\t\"is_locked\",\n\t\t\t\t\"password\",\n\t\t\t\t\"roles\",\n\t\t\t\t\"auth_providers\",\n\t\t\t\t\"profile_picture\",\n\t\t\t\t\"tenants\",\n\t\t\t],\n\t\t});\n\t}\n\tasync selectMultipleByIds<V extends boolean = false>(\n\t\tprops: QueryProps<\n\t\t\tV,\n\t\t\t{\n\t\t\t\tids: number[];\n\t\t\t\ttenantKey?: string | null;\n\t\t\t\twhere?: QueryBuilderWhere<\"lucid_users\">;\n\t\t\t}\n\t\t>,\n\t) {\n\t\tlet query = this.db\n\t\t\t.selectFrom(\"lucid_users\")\n\t\t\t.select((eb) => [\n\t\t\t\t\"email\",\n\t\t\t\t\"first_name\",\n\t\t\t\t\"last_name\",\n\t\t\t\t\"id\",\n\t\t\t\t\"created_at\",\n\t\t\t\t\"updated_at\",\n\t\t\t\t\"username\",\n\t\t\t\t\"super_admin\",\n\t\t\t\t\"is_locked\",\n\t\t\t\t\"is_deleted\",\n\t\t\t\t\"is_deleted_at\",\n\t\t\t\t\"invitation_accepted\",\n\t\t\t\tthis.dbAdapter\n\t\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\t\teb\n\t\t\t\t\t\t\t.selectFrom(\"lucid_media\")\n\t\t\t\t\t\t\t.select((mediaEb) => [\n\t\t\t\t\t\t\t\t\"lucid_media.id\",\n\t\t\t\t\t\t\t\t\"lucid_media.key\",\n\t\t\t\t\t\t\t\t\"lucid_media.origin\",\n\t\t\t\t\t\t\t\t\"lucid_media.folder_id\",\n\t\t\t\t\t\t\t\t\"lucid_media.e_tag\",\n\t\t\t\t\t\t\t\t\"lucid_media.type\",\n\t\t\t\t\t\t\t\t\"lucid_media.mime_type\",\n\t\t\t\t\t\t\t\t\"lucid_media.file_extension\",\n\t\t\t\t\t\t\t\t\"lucid_media.file_name\",\n\t\t\t\t\t\t\t\t\"lucid_media.file_size\",\n\t\t\t\t\t\t\t\t\"lucid_media.width\",\n\t\t\t\t\t\t\t\t\"lucid_media.height\",\n\t\t\t\t\t\t\t\t\"lucid_media.focal_x\",\n\t\t\t\t\t\t\t\t\"lucid_media.focal_y\",\n\t\t\t\t\t\t\t\t\"lucid_media.created_at\",\n\t\t\t\t\t\t\t\t\"lucid_media.updated_at\",\n\t\t\t\t\t\t\t\t\"lucid_media.blur_hash\",\n\t\t\t\t\t\t\t\t\"lucid_media.average_color\",\n\t\t\t\t\t\t\t\t\"lucid_media.base64\",\n\t\t\t\t\t\t\t\t\"lucid_media.is_dark\",\n\t\t\t\t\t\t\t\t\"lucid_media.is_light\",\n\t\t\t\t\t\t\t\t\"lucid_media.is_deleted\",\n\t\t\t\t\t\t\t\t\"lucid_media.is_deleted_at\",\n\t\t\t\t\t\t\t\t\"lucid_media.deleted_by\",\n\t\t\t\t\t\t\t\t\"lucid_media.public\",\n\t\t\t\t\t\t\t\tthis.dbAdapter\n\t\t\t\t\t\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\t\t\t\t\t\tmediaEb\n\t\t\t\t\t\t\t\t\t\t\t.selectFrom(\"lucid_media as profile_crop\")\n\t\t\t\t\t\t\t\t\t\t\t.select([\n\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.id\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.key\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.origin\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.type\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.mime_type\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.file_extension\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.file_name\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.file_size\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.width\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.height\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.focal_x\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.focal_y\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_x\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_y\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_width\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_height\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_rotation\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_skew_x\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_skew_y\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.blur_hash\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.average_color\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.base64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.is_dark\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.is_light\",\n\t\t\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t\t\t.where(\n\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.parent_media_id\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\t\tsql.ref<number>(\"lucid_media.id\"),\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t.where(\"profile_crop.relation_type\", \"=\", \"crop\")\n\t\t\t\t\t\t\t\t\t\t\t.where(\n\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.is_deleted\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\t\tthis.dbAdapter.getDefault(\"boolean\", \"false\"),\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.as(\"crop\"),\n\t\t\t\t\t\t\t\tthis.dbAdapter\n\t\t\t\t\t\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\t\t\t\t\t\tmediaEb\n\t\t\t\t\t\t\t\t\t\t\t.selectFrom(\"lucid_media_translations\")\n\t\t\t\t\t\t\t\t\t\t\t.select([\n\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.title\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.alt\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.description\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.summary\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.locale_code\",\n\t\t\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t\t\t.whereRef(\n\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.media_id\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.id\",\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.as(\"translations\"),\n\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t.whereRef(\n\t\t\t\t\t\t\t\t\"lucid_media.id\",\n\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\"lucid_users.profile_picture_media_id\",\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.where(\n\t\t\t\t\t\t\t\t\"lucid_media.is_deleted\",\n\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\tthis.dbAdapter.getDefault(\"boolean\", \"false\"),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t)\n\t\t\t\t\t.as(\"profile_picture\"),\n\t\t\t])\n\t\t\t.where(\"id\", \"in\", props.ids);\n\n\t\tif (props.where !== undefined && props.where.length > 0) {\n\t\t\tquery = queryBuilder.select(query, props.where);\n\t\t}\n\n\t\tquery = this.applyUserTenantScope(query, props.tenantKey);\n\n\t\tconst exec = await this.executeQuery(() => query.execute(), {\n\t\t\tmethod: \"selectMultipleByIds\",\n\t\t});\n\t\tif (exec.response.error) return exec.response;\n\n\t\treturn this.validateResponse(exec, {\n\t\t\t...props.validation,\n\t\t\tmode: \"multiple\",\n\t\t\tselect: [\n\t\t\t\t\"email\",\n\t\t\t\t\"first_name\",\n\t\t\t\t\"last_name\",\n\t\t\t\t\"id\",\n\t\t\t\t\"created_at\",\n\t\t\t\t\"updated_at\",\n\t\t\t\t\"username\",\n\t\t\t\t\"super_admin\",\n\t\t\t\t\"invitation_accepted\",\n\t\t\t\t\"is_locked\",\n\t\t\t\t\"profile_picture\",\n\t\t\t],\n\t\t});\n\t}\n\tasync selectSingleByEmailUsername<\n\t\tK extends keyof Select<LucidUsers>,\n\t\tV extends boolean = false,\n\t>(\n\t\tprops: QueryProps<\n\t\t\tV,\n\t\t\t{\n\t\t\t\tselect: K[];\n\t\t\t\twhere: {\n\t\t\t\t\tusername: string;\n\t\t\t\t\temail: string;\n\t\t\t\t};\n\t\t\t}\n\t\t>,\n\t) {\n\t\tconst query = this.db\n\t\t\t.selectFrom(\"lucid_users\")\n\t\t\t.select(props.select)\n\t\t\t.where((eb) =>\n\t\t\t\teb.or([\n\t\t\t\t\teb(\"username\", \"=\", props.where.username),\n\t\t\t\t\teb(\"email\", \"=\", props.where.email),\n\t\t\t\t]),\n\t\t\t);\n\n\t\tconst exec = await this.executeQuery(\n\t\t\t() =>\n\t\t\t\tquery.executeTakeFirst() as Promise<\n\t\t\t\t\tPick<Select<LucidUsers>, K> | undefined\n\t\t\t\t>,\n\t\t\t{\n\t\t\t\tmethod: \"selectSingleByEmailUsername\",\n\t\t\t},\n\t\t);\n\t\tif (exec.response.error) return exec.response;\n\n\t\treturn this.validateResponse(exec, {\n\t\t\t...props.validation,\n\t\t\tmode: \"single\",\n\t\t\tselect: props.select,\n\t\t});\n\t}\n\tasync selectMultipleFilteredFixed<V extends boolean = false>(\n\t\tprops: QueryProps<\n\t\t\tV,\n\t\t\t{\n\t\t\t\tqueryParams: GetMultipleQueryParams;\n\t\t\t\ttenantKey?: string | null;\n\t\t\t\tincludeTenants?: boolean;\n\t\t\t}\n\t\t>,\n\t) {\n\t\tconst exec = await this.executeQuery(\n\t\t\tasync () => {\n\t\t\t\tconst mainQuery = this.db\n\t\t\t\t\t.selectFrom(\"lucid_users\")\n\t\t\t\t\t.select((eb) => [\n\t\t\t\t\t\t\"lucid_users.email\",\n\t\t\t\t\t\t\"lucid_users.first_name\",\n\t\t\t\t\t\t\"lucid_users.last_name\",\n\t\t\t\t\t\t\"lucid_users.id\",\n\t\t\t\t\t\t\"lucid_users.created_at\",\n\t\t\t\t\t\t\"lucid_users.updated_at\",\n\t\t\t\t\t\t\"lucid_users.username\",\n\t\t\t\t\t\t\"lucid_users.super_admin\",\n\t\t\t\t\t\t\"lucid_users.password\",\n\t\t\t\t\t\t\"lucid_users.triggered_password_reset\",\n\t\t\t\t\t\t\"lucid_users.is_locked\",\n\t\t\t\t\t\t\"lucid_users.is_deleted\",\n\t\t\t\t\t\t\"lucid_users.is_deleted_at\",\n\t\t\t\t\t\t\"lucid_users.invitation_accepted\",\n\t\t\t\t\t\tthis.dbAdapter\n\t\t\t\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\t\t\t\teb\n\t\t\t\t\t\t\t\t\t.selectFrom(\"lucid_user_roles\")\n\t\t\t\t\t\t\t\t\t.innerJoin(\n\t\t\t\t\t\t\t\t\t\t\"lucid_roles\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_roles.id\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_user_roles.role_id\",\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.select((eb) => [\n\t\t\t\t\t\t\t\t\t\t\"lucid_roles.id\",\n\t\t\t\t\t\t\t\t\t\tthis.dbAdapter\n\t\t\t\t\t\t\t\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\t\t\t\t\t\t\t\teb\n\t\t\t\t\t\t\t\t\t\t\t\t\t.selectFrom(\"lucid_role_translations\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t.select([\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_role_translations.name\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_role_translations.locale_code\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t\t\t\t\t.whereRef(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_role_translations.role_id\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_roles.id\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t.as(\"translations\"),\n\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t.whereRef(\"user_id\", \"=\", \"lucid_users.id\")\n\t\t\t\t\t\t\t\t\t.$call((qb) =>\n\t\t\t\t\t\t\t\t\t\tqueryBuilder.tenantScope(qb, {\n\t\t\t\t\t\t\t\t\t\t\ttenantKey: props.tenantKey,\n\t\t\t\t\t\t\t\t\t\t\tcolumn: \"lucid_roles.tenant_key\",\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.as(\"roles\"),\n\t\t\t\t\t\tthis.dbAdapter\n\t\t\t\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\t\t\t\teb\n\t\t\t\t\t\t\t\t\t.selectFrom(\"lucid_media\")\n\t\t\t\t\t\t\t\t\t.select((mediaEb) => [\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.id\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.key\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.origin\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.folder_id\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.e_tag\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.type\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.mime_type\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.file_extension\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.file_name\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.file_size\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.width\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.height\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.focal_x\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.focal_y\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.created_at\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.updated_at\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.blur_hash\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.average_color\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.base64\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.is_dark\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.is_light\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.is_deleted\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.is_deleted_at\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.deleted_by\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.public\",\n\t\t\t\t\t\t\t\t\t\tthis.dbAdapter\n\t\t\t\t\t\t\t\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\t\t\t\t\t\t\t\tmediaEb\n\t\t\t\t\t\t\t\t\t\t\t\t\t.selectFrom(\"lucid_media as profile_crop\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t.select([\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.id\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.key\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.origin\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.type\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.mime_type\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.file_extension\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.file_name\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.file_size\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.width\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.height\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.focal_x\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.focal_y\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_x\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_y\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_width\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_height\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_rotation\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_skew_x\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_skew_y\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.blur_hash\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.average_color\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.base64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.is_dark\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.is_light\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t\t\t\t\t.where(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.parent_media_id\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsql.ref<number>(\"lucid_media.id\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t.where(\"profile_crop.relation_type\", \"=\", \"crop\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t.where(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.is_deleted\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.dbAdapter.getDefault(\"boolean\", \"false\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t.as(\"crop\"),\n\t\t\t\t\t\t\t\t\t\tthis.dbAdapter\n\t\t\t\t\t\t\t\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\t\t\t\t\t\t\t\tmediaEb\n\t\t\t\t\t\t\t\t\t\t\t\t\t.selectFrom(\"lucid_media_translations\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t.select([\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.title\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.alt\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.description\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.summary\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.locale_code\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t\t\t\t\t.whereRef(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.media_id\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.id\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t.as(\"translations\"),\n\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t.whereRef(\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.id\",\n\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\"lucid_users.profile_picture_media_id\",\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.where(\n\t\t\t\t\t\t\t\t\t\t\"lucid_media.is_deleted\",\n\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\tthis.dbAdapter.getDefault(\"boolean\", \"false\"),\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.as(\"profile_picture\"),\n\t\t\t\t\t])\n\t\t\t\t\t.$if(props.includeTenants === true, (qb) =>\n\t\t\t\t\t\tqb.select((eb) => [\n\t\t\t\t\t\t\tthis.dbAdapter\n\t\t\t\t\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\t\t\t\t\teb\n\t\t\t\t\t\t\t\t\t\t.selectFrom(\"lucid_user_tenants\")\n\t\t\t\t\t\t\t\t\t\t.select([\"lucid_user_tenants.tenant_key\"])\n\t\t\t\t\t\t\t\t\t\t.whereRef(\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_user_tenants.user_id\",\n\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_users.id\",\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.as(\"tenants\"),\n\t\t\t\t\t\t]),\n\t\t\t\t\t)\n\t\t\t\t\t.leftJoin(\"lucid_user_roles\", (join) =>\n\t\t\t\t\t\tjoin.onRef(\"lucid_user_roles.user_id\", \"=\", \"lucid_users.id\"),\n\t\t\t\t\t)\n\t\t\t\t\t.groupBy(\"lucid_users.id\")\n\t\t\t\t\t.$call((qb) => this.applyUserTenantScope(qb, props.tenantKey));\n\n\t\t\t\tconst countQuery = this.db\n\t\t\t\t\t.selectFrom(\"lucid_users\")\n\t\t\t\t\t.select(sql`count(distinct lucid_users.id)`.as(\"count\"))\n\t\t\t\t\t.leftJoin(\"lucid_user_roles\", (join) =>\n\t\t\t\t\t\tjoin.onRef(\"lucid_user_roles.user_id\", \"=\", \"lucid_users.id\"),\n\t\t\t\t\t)\n\t\t\t\t\t.$call((qb) => this.applyUserTenantScope(qb, props.tenantKey));\n\n\t\t\t\tconst { main, count } = queryBuilder.main(\n\t\t\t\t\t{\n\t\t\t\t\t\tmain: mainQuery,\n\t\t\t\t\t\tcount: countQuery,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tqueryParams: props.queryParams,\n\t\t\t\t\t\tdatabase: this.dbAdapter.config,\n\t\t\t\t\t\tmeta: this.queryConfig,\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tconst [mainResult, countResult] = await Promise.all([\n\t\t\t\t\tmain.execute(),\n\t\t\t\t\tcount?.executeTakeFirst() as Promise<{ count: string } | undefined>,\n\t\t\t\t]);\n\n\t\t\t\treturn [mainResult, countResult] as const;\n\t\t\t},\n\t\t\t{\n\t\t\t\tmethod: \"selectMultipleFilteredFixed\",\n\t\t\t},\n\t\t);\n\t\tif (exec.response.error) return exec.response;\n\n\t\treturn this.validateResponse(exec, {\n\t\t\t...props.validation,\n\t\t\tmode: \"multiple-count\",\n\t\t\tselect: [\n\t\t\t\t\"email\",\n\t\t\t\t\"first_name\",\n\t\t\t\t\"last_name\",\n\t\t\t\t\"id\",\n\t\t\t\t\"created_at\",\n\t\t\t\t\"updated_at\",\n\t\t\t\t\"username\",\n\t\t\t\t\"super_admin\",\n\t\t\t\t\"password\",\n\t\t\t\t\"triggered_password_reset\",\n\t\t\t\t\"is_locked\",\n\t\t\t\t\"roles\",\n\t\t\t\t\"invitation_accepted\",\n\t\t\t\t\"profile_picture\",\n\t\t\t\t...(props.includeTenants === true ? [\"tenants\"] : []),\n\t\t\t],\n\t\t});\n\t}\n\n\tasync selectMultiplePublishReviewers<V extends boolean = false>(\n\t\tprops: QueryProps<\n\t\t\tV,\n\t\t\t{\n\t\t\t\tpermission: string;\n\t\t\t\ttenantKey?: string | null;\n\t\t\t}\n\t\t>,\n\t) {\n\t\tconst exec = await this.executeQuery(\n\t\t\t() => {\n\t\t\t\tconst superAdminValue = this.dbAdapter.getDefault(\"boolean\", \"true\");\n\t\t\t\tconst deletedValue = this.dbAdapter.getDefault(\"boolean\", \"false\");\n\t\t\t\tconst lockedValue = this.dbAdapter.getDefault(\"boolean\", \"false\");\n\n\t\t\t\treturn this.applyUserTenantScope(\n\t\t\t\t\tthis.db\n\t\t\t\t\t\t.selectFrom(\"lucid_users\")\n\t\t\t\t\t\t.select((eb) => [\n\t\t\t\t\t\t\t\"id\",\n\t\t\t\t\t\t\t\"email\",\n\t\t\t\t\t\t\t\"username\",\n\t\t\t\t\t\t\t\"first_name as firstName\",\n\t\t\t\t\t\t\t\"last_name as lastName\",\n\t\t\t\t\t\t\tthis.dbAdapter\n\t\t\t\t\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\t\t\t\t\teb\n\t\t\t\t\t\t\t\t\t\t.selectFrom(\"lucid_media\")\n\t\t\t\t\t\t\t\t\t\t.select((mediaEb) => [\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.id\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.key\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.origin\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.type\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.mime_type\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.file_extension\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.file_name\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.file_size\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.width\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.height\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.focal_x\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.focal_y\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.blur_hash\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.average_color\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.base64\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.is_dark\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.is_light\",\n\t\t\t\t\t\t\t\t\t\t\tthis.dbAdapter\n\t\t\t\t\t\t\t\t\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\t\t\t\t\t\t\t\t\tmediaEb\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.selectFrom(\"lucid_media as profile_crop\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.select([\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.id\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.key\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.origin\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.type\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.mime_type\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.file_extension\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.file_name\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.file_size\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.width\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.height\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.focal_x\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.focal_y\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_x\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_y\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_width\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_height\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_rotation\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_skew_x\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_skew_y\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.blur_hash\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.average_color\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.base64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.is_dark\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.is_light\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.where(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.parent_media_id\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsql.ref<number>(\"lucid_media.id\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.where(\"profile_crop.relation_type\", \"=\", \"crop\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.where(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.is_deleted\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.dbAdapter.getDefault(\"boolean\", \"false\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t.as(\"crop\"),\n\t\t\t\t\t\t\t\t\t\t\tthis.dbAdapter\n\t\t\t\t\t\t\t\t\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\t\t\t\t\t\t\t\t\tmediaEb\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.selectFrom(\"lucid_media_translations\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.select([\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.title\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.alt\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.description\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.summary\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.locale_code\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.whereRef(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.media_id\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.id\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t.as(\"translations\"),\n\t\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t\t.whereRef(\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.id\",\n\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_users.profile_picture_media_id\",\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t.where(\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.is_deleted\",\n\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\tthis.dbAdapter.getDefault(\"boolean\", \"false\"),\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.as(\"profile_picture\"),\n\t\t\t\t\t\t])\n\t\t\t\t\t\t.where(\"is_deleted\", \"=\", deletedValue)\n\t\t\t\t\t\t.where(\"is_locked\", \"=\", lockedValue)\n\t\t\t\t\t\t.where(({ or, eb, exists, selectFrom }) =>\n\t\t\t\t\t\t\tor([\n\t\t\t\t\t\t\t\teb(\"super_admin\", \"=\", superAdminValue),\n\t\t\t\t\t\t\t\texists(\n\t\t\t\t\t\t\t\t\tqueryBuilder.tenantScope(\n\t\t\t\t\t\t\t\t\t\tselectFrom(\"lucid_user_roles\")\n\t\t\t\t\t\t\t\t\t\t\t.innerJoin(\n\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_roles\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_roles.id\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_user_roles.role_id\",\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t.innerJoin(\n\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_role_permissions\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_role_permissions.role_id\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_roles.id\",\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t.select(sql.lit(1).as(\"one\"))\n\t\t\t\t\t\t\t\t\t\t\t.whereRef(\n\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_user_roles.user_id\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_users.id\",\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t.where(\n\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_role_permissions.permission\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\t\tprops.permission,\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\ttenantKey: props.tenantKey,\n\t\t\t\t\t\t\t\t\t\t\tcolumn: \"lucid_roles.tenant_key\",\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.orderBy(\"email\", \"asc\"),\n\t\t\t\t\tprops.tenantKey,\n\t\t\t\t).execute();\n\t\t\t},\n\t\t\t{\n\t\t\t\tmethod: \"selectMultiplePublishReviewers\",\n\t\t\t},\n\t\t);\n\t\tif (exec.response.error) return exec.response;\n\n\t\treturn this.validateResponse(exec, {\n\t\t\t...props.validation,\n\t\t\tmode: \"multiple\",\n\t\t});\n\t}\n\n\tasync selectMultipleWithPermission<V extends boolean = false>(\n\t\tprops: QueryProps<\n\t\t\tV,\n\t\t\t{\n\t\t\t\tpermission: string;\n\t\t\t\ttenantKey?: string | null;\n\t\t\t}\n\t\t>,\n\t) {\n\t\tconst exec = await this.executeQuery(\n\t\t\t() => {\n\t\t\t\tconst superAdminValue = this.dbAdapter.getDefault(\"boolean\", \"true\");\n\t\t\t\tconst deletedValue = this.dbAdapter.getDefault(\"boolean\", \"false\");\n\t\t\t\tconst lockedValue = this.dbAdapter.getDefault(\"boolean\", \"false\");\n\n\t\t\t\treturn this.applyUserTenantScope(\n\t\t\t\t\tthis.db\n\t\t\t\t\t\t.selectFrom(\"lucid_users\")\n\t\t\t\t\t\t.select((eb) => [\n\t\t\t\t\t\t\t\"id\",\n\t\t\t\t\t\t\t\"email\",\n\t\t\t\t\t\t\t\"username\",\n\t\t\t\t\t\t\t\"first_name as firstName\",\n\t\t\t\t\t\t\t\"last_name as lastName\",\n\t\t\t\t\t\t\tthis.dbAdapter\n\t\t\t\t\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\t\t\t\t\teb\n\t\t\t\t\t\t\t\t\t\t.selectFrom(\"lucid_media\")\n\t\t\t\t\t\t\t\t\t\t.select((mediaEb) => [\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.id\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.key\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.origin\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.type\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.mime_type\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.file_extension\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.file_name\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.file_size\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.width\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.height\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.focal_x\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.focal_y\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.blur_hash\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.average_color\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.base64\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.is_dark\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.is_light\",\n\t\t\t\t\t\t\t\t\t\t\tthis.dbAdapter\n\t\t\t\t\t\t\t\t\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\t\t\t\t\t\t\t\t\tmediaEb\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.selectFrom(\"lucid_media as profile_crop\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.select([\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.id\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.key\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.origin\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.type\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.mime_type\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.file_extension\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.file_name\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.file_size\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.width\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.height\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.focal_x\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.focal_y\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_x\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_y\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_width\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_height\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_rotation\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_skew_x\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.crop_skew_y\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.blur_hash\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.average_color\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.base64\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.is_dark\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.is_light\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.where(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.parent_media_id\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsql.ref<number>(\"lucid_media.id\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.where(\"profile_crop.relation_type\", \"=\", \"crop\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.where(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"profile_crop.is_deleted\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.dbAdapter.getDefault(\"boolean\", \"false\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t.as(\"crop\"),\n\t\t\t\t\t\t\t\t\t\t\tthis.dbAdapter\n\t\t\t\t\t\t\t\t\t\t\t\t.jsonArrayFrom(\n\t\t\t\t\t\t\t\t\t\t\t\t\tmediaEb\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.selectFrom(\"lucid_media_translations\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.select([\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.title\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.alt\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.description\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.summary\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.locale_code\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.whereRef(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media_translations.media_id\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.id\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t.as(\"translations\"),\n\t\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t\t.whereRef(\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.id\",\n\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_users.profile_picture_media_id\",\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t.where(\n\t\t\t\t\t\t\t\t\t\t\t\"lucid_media.is_deleted\",\n\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\tthis.dbAdapter.getDefault(\"boolean\", \"false\"),\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.as(\"profile_picture\"),\n\t\t\t\t\t\t])\n\t\t\t\t\t\t.where(\"is_deleted\", \"=\", deletedValue)\n\t\t\t\t\t\t.where(\"is_locked\", \"=\", lockedValue)\n\t\t\t\t\t\t.where(({ or, eb, exists, selectFrom }) =>\n\t\t\t\t\t\t\tor([\n\t\t\t\t\t\t\t\teb(\"super_admin\", \"=\", superAdminValue),\n\t\t\t\t\t\t\t\texists(\n\t\t\t\t\t\t\t\t\tqueryBuilder.tenantScope(\n\t\t\t\t\t\t\t\t\t\tselectFrom(\"lucid_user_roles\")\n\t\t\t\t\t\t\t\t\t\t\t.innerJoin(\n\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_roles\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_roles.id\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_user_roles.role_id\",\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t.innerJoin(\n\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_role_permissions\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_role_permissions.role_id\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_roles.id\",\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t.select(sql.lit(1).as(\"one\"))\n\t\t\t\t\t\t\t\t\t\t\t.whereRef(\n\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_user_roles.user_id\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_users.id\",\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t.where(\n\t\t\t\t\t\t\t\t\t\t\t\t\"lucid_role_permissions.permission\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"=\",\n\t\t\t\t\t\t\t\t\t\t\t\tprops.permission,\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\ttenantKey: props.tenantKey,\n\t\t\t\t\t\t\t\t\t\t\tcolumn: \"lucid_roles.tenant_key\",\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.orderBy(\"email\", \"asc\"),\n\t\t\t\t\tprops.tenantKey,\n\t\t\t\t).execute();\n\t\t\t},\n\t\t\t{\n\t\t\t\tmethod: \"selectMultipleWithPermission\",\n\t\t\t},\n\t\t);\n\t\tif (exec.response.error) return exec.response;\n\n\t\treturn this.validateResponse(exec, {\n\t\t\t...props.validation,\n\t\t\tmode: \"multiple\",\n\t\t});\n\t}\n\n\t// ----------------------------------------\n\t// helpers\n\n\t/**\n\t * Scopes user reads to a tenant. Users with no tenant memberships are global\n\t * and remain visible to every tenant-scoped request.\n\t */\n\tprivate applyUserTenantScope<DB, TB extends keyof DB, O>(\n\t\tqb: SelectQueryBuilder<DB, TB, O>,\n\t\ttenantKey: string | null | undefined,\n\t) {\n\t\tif (tenantKey == null) return qb;\n\t\treturn qb.where(\n\t\t\tsql<boolean>`(\n\t\t\t\texists (\n\t\t\t\t\tselect 1 from lucid_user_tenants\n\t\t\t\t\twhere lucid_user_tenants.user_id = lucid_users.id\n\t\t\t\t\tand lucid_user_tenants.tenant_key = ${tenantKey}\n\t\t\t\t)\n\t\t\t\tor not exists (\n\t\t\t\t\tselect 1 from lucid_user_tenants\n\t\t\t\t\twhere lucid_user_tenants.user_id = lucid_users.id\n\t\t\t\t)\n\t\t\t)`,\n\t\t);\n\t}\n}\n"],"mappings":"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ACA,qCACD,CAAC,CAAC,CACD,SACA,kCACA,IACA,gBACD,CACF,CAAC,CACA,GAAG,cAAc,EACnB,KAAK,UACH,cACA,EACE,WAAW,wBAAwB,CAAC,CACpC,OAAO,CAAC,YAAY,CAAC,CAAC,CACtB,SAAS,UAAW,IAAK,gBAAgB,CAC5C,CAAC,CACA,GAAG,aAAa,CACnB,CAAC,CAAC,CACD,SAAS,UAAW,IAAK,gBAAgB,CAAC,CAC1C,MAAO,GACPA,EAAa,YAAY,EAAI,CAC5B,UAAW,EAAM,UACjB,OAAQ,wBACT,CAAC,CACF,CACF,CAAC,CACA,GAAG,OAAO,EACZ,KAAK,UACH,cACA,EACE,WAAW,2BAA2B,CAAC,CACvC,OAAO,CACP,+BACA,yCACA,6CACA,qCACD,CAAC,CAAC,CACD,SACA,oCACA,IACA,gBACD,CACF,CAAC,CACA,GAAG,gBAAgB,EACrB,KAAK,UACH,cACA,EACE,WAAW,aAAa,CAAC,CACzB,OAAQ,GAAY,CACpB,iBACA,kBACA,qBACA,wBACA,oBACA,mBACA,wBACA,6BACA,wBACA,wBACA,oBACA,qBACA,sBACA,sBACA,yBACA,yBACA,wBACA,4BACA,qBACA,sBACA,uBACA,yBACA,4BACA,yBACA,qBACA,KAAK,UACH,cACA,EACE,WAAW,6BAA6B,CAAC,CACzC,OAAO,CACP,kBACA,mBACA,sBACA,oBACA,yBACA,8BACA,yBACA,yBACA,qBACA,sBACA,uBACA,uBACA,sBACA,sBACA,0BACA,2BACA,6BACA,2BACA,2BACA,yBACA,6BACA,sBACA,uBACA,uBACD,CAAC,CAAC,CACD,MACA,+BACA,IACA,EAAI,IAAY,gBAAgB,CACjC,CAAC,CACA,MAAM,6BAA8B,IAAK,MAAM,CAAC,CAChD,MACA,0BACA,IACA,KAAK,UAAU,WAAW,UAAW,OAAO,CAC7C,CACF,CAAC,CACA,GAAG,MAAM,EACX,KAAK,UACH,cACA,EACE,WAAW,0BAA0B,CAAC,CACtC,OAAO,CACP,iCACA,+BACA,uCACA,mCACA,sCACD,CAAC,CAAC,CACD,SACA,oCACA,IACA,gBACD,CACF,CAAC,CACA,GAAG,cAAc,CACpB,CAAC,CAAC,CACD,SACA,iBACA,IACA,sCACD,CAAC,CACA,MACA,yBACA,IACA,KAAK,UAAU,WAAW,UAAW,OAAO,CAC7C,CACF,CAAC,CACA,GAAG,iBAAiB,EACtB,KAAK,UACH,cACA,EACE,WAAW,oBAAoB,CAAC,CAChC,OAAO,CAAC,+BAA+B,CAAC,CAAC,CACzC,SAAS,6BAA8B,IAAK,gBAAgB,CAC/D,CAAC,CACA,GAAG,SAAS,CACf,CAAC,EAED,EAAQA,EAAa,OAAO,EAAO,EAAM,KAAK,EAC9C,EAAQ,KAAK,qBAAqB,EAAO,EAAM,SAAS,EAExD,IAAM,EAAO,MAAM,KAAK,iBAAmB,EAAM,iBAAiB,EAAG,CACpE,OAAQ,kBACT,CAAC,EAGD,OAFI,EAAK,SAAS,MAAc,EAAK,SAE9B,KAAK,iBAAiB,EAAM,CAClC,GAAG,EAAM,WACT,KAAM,SACN,OAAQ,CACP,QACA,aACA,YACA,KACA,aACA,aACA,WACA,cACA,2BACA,sBACA,YACA,WACA,QACA,iBACA,kBACA,SACD,CACD,CAAC,CACF,CACA,MAAM,oBACL,EAQC,CACD,IAAI,EAAQ,KAAK,GACf,WAAW,aAAa,CAAC,CACzB,OAAQ,GAAO,CACf,QACA,aACA,YACA,KACA,aACA,aACA,WACA,cACA,YACA,aACA,gBACA,sBACA,KAAK,UACH,cACA,EACE,WAAW,aAAa,CAAC,CACzB,OAAQ,GAAY,CACpB,iBACA,kBACA,qBACA,wBACA,oBACA,mBACA,wBACA,6BACA,wBACA,wBACA,oBACA,qBACA,sBACA,sBACA,yBACA,yBACA,wBACA,4BACA,qBACA,sBACA,uBACA,yBACA,4BACA,yBACA,qBACA,KAAK,UACH,cACA,EACE,WAAW,6BAA6B,CAAC,CACzC,OAAO,CACP,kBACA,mBACA,sBACA,oBACA,yBACA,8BACA,yBACA,yBACA,qBACA,sBACA,uBACA,uBACA,sBACA,sBACA,0BACA,2BACA,6BACA,2BACA,2BACA,yBACA,6BACA,sBACA,uBACA,uBACD,CAAC,CAAC,CACD,MACA,+BACA,IACA,EAAI,IAAY,gBAAgB,CACjC,CAAC,CACA,MAAM,6BAA8B,IAAK,MAAM,CAAC,CAChD,MACA,0BACA,IACA,KAAK,UAAU,WAAW,UAAW,OAAO,CAC7C,CACF,CAAC,CACA,GAAG,MAAM,EACX,KAAK,UACH,cACA,EACE,WAAW,0BAA0B,CAAC,CACtC,OAAO,CACP,iCACA,+BACA,uCACA,mCACA,sCACD,CAAC,CAAC,CACD,SACA,oCACA,IACA,gBACD,CACF,CAAC,CACA,GAAG,cAAc,CACpB,CAAC,CAAC,CACD,SACA,iBACA,IACA,sCACD,CAAC,CACA,MACA,yBACA,IACA,KAAK,UAAU,WAAW,UAAW,OAAO,CAC7C,CACF,CAAC,CACA,GAAG,iBAAiB,CACvB,CAAC,CAAC,CACD,MAAM,KAAM,KAAM,EAAM,GAAG,EAEzB,EAAM,QAAU,IAAA,IAAa,EAAM,MAAM,OAAS,IACrD,EAAQA,EAAa,OAAO,EAAO,EAAM,KAAK,GAG/C,EAAQ,KAAK,qBAAqB,EAAO,EAAM,SAAS,EAExD,IAAM,EAAO,MAAM,KAAK,iBAAmB,EAAM,QAAQ,EAAG,CAC3D,OAAQ,qBACT,CAAC,EAGD,OAFI,EAAK,SAAS,MAAc,EAAK,SAE9B,KAAK,iBAAiB,EAAM,CAClC,GAAG,EAAM,WACT,KAAM,WACN,OAAQ,CACP,QACA,aACA,YACA,KACA,aACA,aACA,WACA,cACA,sBACA,YACA,iBACD,CACD,CAAC,CACF,CACA,MAAM,4BAIL,EAUC,CACD,IAAM,EAAQ,KAAK,GACjB,WAAW,aAAa,CAAC,CACzB,OAAO,EAAM,MAAM,CAAC,CACpB,MAAO,GACP,EAAG,GAAG,CACL,EAAG,WAAY,IAAK,EAAM,MAAM,QAAQ,EACxC,EAAG,QAAS,IAAK,EAAM,MAAM,KAAK,CACnC,CAAC,CACF,EAEK,EAAO,MAAM,KAAK,iBAEtB,EAAM,iBAAiB,EAGxB,CACC,OAAQ,6BACT,CACD,EAGA,OAFI,EAAK,SAAS,MAAc,EAAK,SAE9B,KAAK,iBAAiB,EAAM,CAClC,GAAG,EAAM,WACT,KAAM,SACN,OAAQ,EAAM,MACf,CAAC,CACF,CACA,MAAM,4BACL,EAQC,CACD,IAAM,EAAO,MAAM,KAAK,aACvB,SAAY,CACX,IAAM,EAAY,KAAK,GACrB,WAAW,aAAa,CAAC,CACzB,OAAQ,GAAO,CACf,oBACA,yBACA,wBACA,iBACA,yBACA,yBACA,uBACA,0BACA,uBACA,uCACA,wBACA,yBACA,4BACA,kCACA,KAAK,UACH,cACA,EACE,WAAW,kBAAkB,CAAC,CAC9B,UACA,cACA,iBACA,0BACD,CAAC,CACA,OAAQ,GAAO,CACf,iBACA,KAAK,UACH,cACA,EACE,WAAW,yBAAyB,CAAC,CACrC,OAAO,CACP,+BACA,qCACD,CAAC,CAAC,CACD,SACA,kCACA,IACA,gBACD,CACF,CAAC,CACA,GAAG,cAAc,CACpB,CAAC,CAAC,CACD,SAAS,UAAW,IAAK,gBAAgB,CAAC,CAC1C,MAAO,GACPA,EAAa,YAAY,EAAI,CAC5B,UAAW,EAAM,UACjB,OAAQ,wBACT,CAAC,CACF,CACF,CAAC,CACA,GAAG,OAAO,EACZ,KAAK,UACH,cACA,EACE,WAAW,aAAa,CAAC,CACzB,OAAQ,GAAY,CACpB,iBACA,kBACA,qBACA,wBACA,oBACA,mBACA,wBACA,6BACA,wBACA,wBACA,oBACA,qBACA,sBACA,sBACA,yBACA,yBACA,wBACA,4BACA,qBACA,sBACA,uBACA,yBACA,4BACA,yBACA,qBACA,KAAK,UACH,cACA,EACE,WAAW,6BAA6B,CAAC,CACzC,OAAO,CACP,kBACA,mBACA,sBACA,oBACA,yBACA,8BACA,yBACA,yBACA,qBACA,sBACA,uBACA,uBACA,sBACA,sBACA,0BACA,2BACA,6BACA,2BACA,2BACA,yBACA,6BACA,sBACA,uBACA,uBACD,CAAC,CAAC,CACD,MACA,+BACA,IACA,EAAI,IAAY,gBAAgB,CACjC,CAAC,CACA,MAAM,6BAA8B,IAAK,MAAM,CAAC,CAChD,MACA,0BACA,IACA,KAAK,UAAU,WAAW,UAAW,OAAO,CAC7C,CACF,CAAC,CACA,GAAG,MAAM,EACX,KAAK,UACH,cACA,EACE,WAAW,0BAA0B,CAAC,CACtC,OAAO,CACP,iCACA,+BACA,uCACA,mCACA,sCACD,CAAC,CAAC,CACD,SACA,oCACA,IACA,gBACD,CACF,CAAC,CACA,GAAG,cAAc,CACpB,CAAC,CAAC,CACD,SACA,iBACA,IACA,sCACD,CAAC,CACA,MACA,yBACA,IACA,KAAK,UAAU,WAAW,UAAW,OAAO,CAC7C,CACF,CAAC,CACA,GAAG,iBAAiB,CACvB,CAAC,CAAC,CACD,IAAI,EAAM,iBAAmB,GAAO,GACpC,EAAG,OAAQ,GAAO,CACjB,KAAK,UACH,cACA,EACE,WAAW,oBAAoB,CAAC,CAChC,OAAO,CAAC,+BAA+B,CAAC,CAAC,CACzC,SACA,6BACA,IACA,gBACD,CACF,CAAC,CACA,GAAG,SAAS,CACf,CAAC,CACF,CAAC,CACA,SAAS,mBAAqB,GAC9B,EAAK,MAAM,2BAA4B,IAAK,gBAAgB,CAC7D,CAAC,CACA,QAAQ,gBAAgB,CAAC,CACzB,MAAO,GAAO,KAAK,qBAAqB,EAAI,EAAM,SAAS,CAAC,EAExD,EAAa,KAAK,GACtB,WAAW,aAAa,CAAC,CACzB,OAAO,CAAG,iCAAiC,GAAG,OAAO,CAAC,CAAC,CACvD,SAAS,mBAAqB,GAC9B,EAAK,MAAM,2BAA4B,IAAK,gBAAgB,CAC7D,CAAC,CACA,MAAO,GAAO,KAAK,qBAAqB,EAAI,EAAM,SAAS,CAAC,EAExD,CAAE,OAAM,SAAUA,EAAa,KACpC,CACC,KAAM,EACN,MAAO,CACR,EACA,CACC,YAAa,EAAM,YACnB,SAAU,KAAK,UAAU,OACzB,KAAM,KAAK,WACZ,CACD,EAEM,CAAC,EAAY,GAAe,MAAM,QAAQ,IAAI,CACnD,EAAK,QAAQ,EACb,GAAO,iBAAiB,CACzB,CAAC,EAED,MAAO,CAAC,EAAY,CAAW,CAChC,EACA,CACC,OAAQ,6BACT,CACD,EAGA,OAFI,EAAK,SAAS,MAAc,EAAK,SAE9B,KAAK,iBAAiB,EAAM,CAClC,GAAG,EAAM,WACT,KAAM,iBACN,OAAQ,CACP,QACA,aACA,YACA,KACA,aACA,aACA,WACA,cACA,WACA,2BACA,YACA,QACA,sBACA,kBACA,GAAI,EAAM,iBAAmB,GAAO,CAAC,SAAS,EAAI,CAAC,CACpD,CACD,CAAC,CACF,CAEA,MAAM,+BACL,EAOC,CACD,IAAM,EAAO,MAAM,KAAK,iBACjB,CACL,IAAM,EAAkB,KAAK,UAAU,WAAW,UAAW,MAAM,EAC7D,EAAe,KAAK,UAAU,WAAW,UAAW,OAAO,EAC3D,EAAc,KAAK,UAAU,WAAW,UAAW,OAAO,EAEhE,OAAO,KAAK,qBACX,KAAK,GACH,WAAW,aAAa,CAAC,CACzB,OAAQ,GAAO,CACf,KACA,QACA,WACA,0BACA,wBACA,KAAK,UACH,cACA,EACE,WAAW,aAAa,CAAC,CACzB,OAAQ,GAAY,CACpB,iBACA,kBACA,qBACA,mBACA,wBACA,6BACA,wBACA,wBACA,oBACA,qBACA,sBACA,sBACA,wBACA,4BACA,qBACA,sBACA,uBACA,KAAK,UACH,cACA,EACE,WAAW,6BAA6B,CAAC,CACzC,OAAO,CACP,kBACA,mBACA,sBACA,oBACA,yBACA,8BACA,yBACA,yBACA,qBACA,sBACA,uBACA,uBACA,sBACA,sBACA,0BACA,2BACA,6BACA,2BACA,2BACA,yBACA,6BACA,sBACA,uBACA,uBACD,CAAC,CAAC,CACD,MACA,+BACA,IACA,EAAI,IAAY,gBAAgB,CACjC,CAAC,CACA,MAAM,6BAA8B,IAAK,MAAM,CAAC,CAChD,MACA,0BACA,IACA,KAAK,UAAU,WAAW,UAAW,OAAO,CAC7C,CACF,CAAC,CACA,GAAG,MAAM,EACX,KAAK,UACH,cACA,EACE,WAAW,0BAA0B,CAAC,CACtC,OAAO,CACP,iCACA,+BACA,uCACA,mCACA,sCACD,CAAC,CAAC,CACD,SACA,oCACA,IACA,gBACD,CACF,CAAC,CACA,GAAG,cAAc,CACpB,CAAC,CAAC,CACD,SACA,iBACA,IACA,sCACD,CAAC,CACA,MACA,yBACA,IACA,KAAK,UAAU,WAAW,UAAW,OAAO,CAC7C,CACF,CAAC,CACA,GAAG,iBAAiB,CACvB,CAAC,CAAC,CACD,MAAM,aAAc,IAAK,CAAY,CAAC,CACtC,MAAM,YAAa,IAAK,CAAW,CAAC,CAC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"}