import type { TriggerLogEntity, TriggerOAuthClientParams, TriggerOAuthConfig, TriggerProviderApiEntity, TriggerSubscription, TriggerSubscriptionBuilder, } from '@/app/components/workflow/block-selector/types' import { type } from '@orpc/contract' import { base } from '../base' export const triggersContract = base .route({ path: '/workspaces/current/triggers', method: 'GET' }) .input(type<{ query?: { type?: string } }>()) .output(type()) export const triggerProviderInfoContract = base .route({ path: '/workspaces/current/trigger-provider/{provider}/info', method: 'GET' }) .input(type<{ params: { provider: string } }>()) .output(type()) export const triggerSubscriptionsContract = base .route({ path: '/workspaces/current/trigger-provider/{provider}/subscriptions/list', method: 'GET' }) .input(type<{ params: { provider: string } }>()) .output(type()) export const triggerSubscriptionBuilderCreateContract = base .route({ path: '/workspaces/current/trigger-provider/{provider}/subscriptions/builder/create', method: 'POST' }) .input(type<{ params: { provider: string } body?: { credential_type?: string } }>()) .output(type<{ subscription_builder: TriggerSubscriptionBuilder }>()) export const triggerSubscriptionBuilderUpdateContract = base .route({ path: '/workspaces/current/trigger-provider/{provider}/subscriptions/builder/update/{subscriptionBuilderId}', method: 'POST' }) .input(type<{ params: { provider: string, subscriptionBuilderId: string } body?: { name?: string properties?: Record parameters?: Record credentials?: Record } }>()) .output(type()) export const triggerSubscriptionBuilderVerifyUpdateContract = base .route({ path: '/workspaces/current/trigger-provider/{provider}/subscriptions/builder/verify-and-update/{subscriptionBuilderId}', method: 'POST' }) .input(type<{ params: { provider: string, subscriptionBuilderId: string } body?: { credentials?: Record } }>()) .output(type<{ verified: boolean }>()) export const triggerSubscriptionVerifyContract = base .route({ path: '/workspaces/current/trigger-provider/{provider}/subscriptions/verify/{subscriptionId}', method: 'POST' }) .input(type<{ params: { provider: string, subscriptionId: string } body?: { credentials?: Record } }>()) .output(type<{ verified: boolean }>()) export const triggerSubscriptionBuildContract = base .route({ path: '/workspaces/current/trigger-provider/{provider}/subscriptions/builder/build/{subscriptionBuilderId}', method: 'POST' }) .input(type<{ params: { provider: string, subscriptionBuilderId: string } body?: { name?: string parameters?: Record } }>()) .output(type()) export const triggerSubscriptionDeleteContract = base .route({ path: '/workspaces/current/trigger-provider/{subscriptionId}/subscriptions/delete', method: 'POST' }) .input(type<{ params: { subscriptionId: string } }>()) .output(type<{ result: string }>()) export const triggerSubscriptionUpdateContract = base .route({ path: '/workspaces/current/trigger-provider/{subscriptionId}/subscriptions/update', method: 'POST' }) .input(type<{ params: { subscriptionId: string } body?: { name?: string properties?: Record parameters?: Record credentials?: Record } }>()) .output(type<{ result: string, id: string }>()) export const triggerSubscriptionBuilderLogsContract = base .route({ path: '/workspaces/current/trigger-provider/{provider}/subscriptions/builder/logs/{subscriptionBuilderId}', method: 'GET' }) .input(type<{ params: { provider: string, subscriptionBuilderId: string } }>()) .output(type<{ logs: TriggerLogEntity[] }>()) export const triggerOAuthConfigContract = base .route({ path: '/workspaces/current/trigger-provider/{provider}/oauth/client', method: 'GET' }) .input(type<{ params: { provider: string } }>()) .output(type()) export const triggerOAuthConfigureContract = base .route({ path: '/workspaces/current/trigger-provider/{provider}/oauth/client', method: 'POST' }) .input(type<{ params: { provider: string } body: { client_params?: TriggerOAuthClientParams, enabled: boolean } }>()) .output(type<{ result: string }>()) export const triggerOAuthDeleteContract = base .route({ path: '/workspaces/current/trigger-provider/{provider}/oauth/client', method: 'DELETE' }) .input(type<{ params: { provider: string } }>()) .output(type<{ result: string }>()) export const triggerOAuthInitiateContract = base .route({ path: '/workspaces/current/trigger-provider/{provider}/subscriptions/oauth/authorize', method: 'GET' }) .input(type<{ params: { provider: string } }>()) .output(type<{ authorization_url: string, subscription_builder: TriggerSubscriptionBuilder }>())