Here's the example filter code include filter_types proc getAdminUsersWithReportsAccess(context: Context): AccountUsers = var filter: AccountUserFilter filter.whereEq.isAdmin = true filter.whereIn.names = @[ "User 1", "User 2" ] filter.includes.accountUserRole.whereEq.role = "Admin reports" filter.orderBy.name = asc filter.orderBy.created = desc return filterAccountUser( context.db, filter) # Main var context: Context discard getAdminUsersWithReportsAccess(context) Run
The filter_types.nim file (which would be auto-generated): import times const asc = 1 desc = 2 type DbContext* = object dbConn: string # stub Context* = object db: DbContext AccountUserRole* = object accountUserId*: string role*: string AccountUserRoles* = seq[AccountUserRole] AccountUser* = object name*: string isAdmin*: bool AccountUsers* = seq[AccountUser] AccountUserIncludeRoleModels* = object accountUsers*: seq[AccountUser] AccountUserRoleWhereEq* = object accountUserId*: string role*: string AccountUserRoleWhereIn* = object accountUserIds*: seq[string] roles*: seq[string] AccountUserRoleOrderBy* = object name*: int isAdmin*: int AccountUserRoleFilter* = object whereEq*: AccountUserRoleWhereEq whereIn*: AccountUserRoleWhereIn # includes*: AccountUserRoleIncludeModels orderBy*: AccountUserRoleOrderBy AccountUserWhereEq* = object name*: string isAdmin*: bool created*: DateTime AccountUserWhereIn* = object names*: seq[string] isAdmins*: seq[bool] AccountUserIncludeModels* = object accountUserRole*: AccountUserRoleFilter AccountUserOrderBy* = object name*: int isAdmin*: int created*: int AccountUserFilter* = object whereEq*: AccountUserWhereEq whereIn*: AccountUserWhereIn includes*: AccountUserIncludeModels orderBy*: AccountUserOrderBy proc filterAccountUser*( dbContext: DbContext, filter: AccountUserFilter): AccountUsers = echo $filter Run