REMOVE NAMESPACE saleor_marketplace; REMOVE DATABASE main; DEFINE NAMESPACE saleor_marketplace; DEFINE DATABASE main; USE NS saleor_marketplace; USE DB main; DEFINE TABLE saleor_app TYPE ANY SCHEMALESS PERMISSIONS FOR select WHERE true FOR update, delete WHERE id.id()[0] = $auth.id OR $auth.admin = true FOR create WHERE id.id()[0] = $auth.id OR $auth.admin = true //MAKE THIS QUERY FOR AMOUNT OF APPS USER HAS, LIMIT TO 20!! ; DEFINE FIELD versions ON saleor_app TYPE array PERMISSIONS FULL ; DEFINE FIELD OVERWRITE versions[*] ON saleor_app TYPE string ASSERT string::is::semver($value) PERMISSIONS FULL ; DEFINE FIELD current_version ON saleor_app TYPE string ASSERT string::is::semver($value) PERMISSIONS FULL ; DEFINE FIELD last_updated ON saleor_app TYPE datetime VALUE time::now() ASSERT string::is::datetime($value) PERMISSIONS FULL ; DEFINE FIELD created ON saleor_app TYPE datetime VALUE time::now() ASSERT string::is::datetime($value) PERMISSIONS FULL ; DEFINE FIELD images ON saleor_app TYPE array PERMISSIONS FULL ; DEFINE FIELD OVERWRITE images[*] ON saleor_app TYPE string ASSERT string::is::url($value) PERMISSIONS FULL ; DEFINE FIELD manifest ON saleor_app TYPE { about: option, app_permissions: array<'MANAGE_USERS' | 'MANAGE_STAFF' | 'IMPERSONATE_USER' | 'MANAGE_OBSERVABILITY' | 'MANAGE_CHECKOUTS' | 'HANDLE_CHECKOUTS' | 'HANDLE_TAXES' | 'MANAGE_TAXES' | 'MANAGE_CHANNELS' | 'MANAGE_DISCOUNTS' | 'MANAGE_GIFT_CARD' | 'MANAGE_MENUS' | 'MANAGE_ORDERS' | 'MANAGE_ORDERS_IMPORT' | 'MANAGE_PAGES' | 'MANAGE_PAGE_TYPES_AND_ATTRIBUTES' | 'HANDLE_PAYMENTS' | 'MANAGE_PLUGINS' | 'MANAGE_PRODUCTS' | 'MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES' | 'MANAGE_SHIPPING' | 'MANAGE_SETTINGS' | 'MANAGE_TRANSLATIONS' | 'MANAGE_APPS'>, app_url: string, author: option, brand: option<{ logo: { default: string } }>, configuration_url: option, data_privacy: option, data_privacy_url: option, extensions: option, target: 'Popup' | 'AppPage', url: string }>>, homepage_url: option, id: string, name: string, required_saleor_version: option, support_url: option, token_target_url: string, version: string, webhooks: option>, is_active: option, name: string, query: string, sync_events: option>, target_url: string }>> } PERMISSIONS FULL ; DEFINE FIELD OVERWRITE manifest.app_url ON saleor_app TYPE string ASSERT $value.is_url() PERMISSIONS FULL ; DEFINE FIELD OVERWRITE manifest.token_target_url ON saleor_app TYPE string ASSERT $value.is_url() PERMISSIONS FULL ; DEFINE FIELD OVERWRITE manifest.configuration_url ON saleor_app TYPE option ASSERT $value.is_url() PERMISSIONS FULL ; DEFINE FIELD OVERWRITE manifest.data_privacy_url ON saleor_app TYPE option ASSERT $value.is_url() PERMISSIONS FULL ; DEFINE FIELD OVERWRITE manifest.homepage_url ON saleor_app TYPE option ASSERT $value.is_url() PERMISSIONS FULL ; DEFINE FIELD OVERWRITE manifest.support_url ON saleor_app TYPE option ASSERT $value.is_url() PERMISSIONS FULL ; DEFINE FIELD OVERWRITE manifest.webhooks.target_url ON saleor_app TYPE string ASSERT $value.is_url() PERMISSIONS FULL ; DEFINE FIELD OVERWRITE manifest.extensions.url ON saleor_app TYPE string ASSERT $value.is_url() PERMISSIONS FULL ; DEFINE FIELD is_verified ON saleor_app TYPE bool PERMISSIONS FULL ; DEFINE FIELD supported_deployments ON saleor_app TYPE array<'Docker' | 'Podman' | 'Linux' | 'Windows' | 'MacOS' | 'WASM'> PERMISSIONS FULL ; DEFINE FIELD built_for_url ON saleor_app TYPE option PERMISSIONS FULL ; DEFINE FIELD minimal_docker_compose ON saleor_app TYPE string PERMISSIONS FULL ; DEFINE FIELD supported_apls ON saleor_app TYPE array<'File' | 'Redis' | 'Env' | 'Upstash'> PERMISSIONS FULL ; DEFINE FIELD categories ON saleor_app TYPE array<'CMS' | 'Messaging' | 'Taxes' | 'Payments' | 'CRM' | 'Monitoring' | 'Marketplaces' | 'Search' | 'SEO' | 'DashboardUtilities' | 'Other'> PERMISSIONS FULL ; DEFINE TABLE author TYPE ANY SCHEMALESS PERMISSIONS FOR select WHERE true FOR create, update, delete WHERE id.id()[0] = $auth.id OR $auth.admin = true ; DEFINE FIELD name ON author TYPE string PERMISSIONS FULL ; DEFINE FIELD socials ON author TYPE array PERMISSIONS FULL ; DEFINE FIELD OVERWRITE socials[*] ON author TYPE string ASSERT string::is::url($value) PERMISSIONS FULL ; DEFINE FIELD email ON author TYPE string ASSERT string::is::email($value) PERMISSIONS FULL ; DELETE user:djkato; DELETE saleor_app:[ user:djkato, 'stripe-payment-gateway' ]; CREATE author:djkato SET name = 'Djkáťo', socials = [ 'https://twitter.com/djkato_vfx' ], email = 'djkatovfx@gmail.com'; CREATE saleor_app:[ author:djkato, 'stripe-payment-gateway' ] SET versions = [ '1.0.0' ], slug = [ author:djkato, 'stripe-payment-gateway' ], current_version = '1.0.0', images = [ 'https://imgur.com/g/img.jfif' ], is_verified = false, supported_deployments = [ 'Docker' ], minimal_docker_compose = '', categories = [ 'Payments' ], supported_apls = [ 'Redis' ], manifest = { about: 'cool stripe integration', app_permissions: [ 'MANAGE_USERS' ], app_url: 'https://app-payment-gateway.test.com', author: 'Djkáťo ', extensions: [], id: 'stripe-payment-gateway', name: 'Stripe Payment Gateway', token_target_url: 'https://app-payment-gateway.test.com/api/register', version: '1.0.0', webhooks: [] }; SELECT manifest FROM saleor_app:[ user:djkato, NONE ]..[ user:djkato ];