import { createPiece, PieceAuth, Property } from '@activepieces/pieces-framework';
import { createUpdateQueue } from './lib/actions/create-update-queue';
import { addToQueue } from './lib/actions/add-to-queue';
import { clearQueue } from './lib/actions/clear-queue';
import { listQueueItems } from './lib/actions/list-queue-items';
import { getQueue } from './lib/actions/get-queue';

export const queuer = createPiece({
  displayName: 'Syncer MCP Queuer',
  description: 'Project wide MCP execution Delay Queue',
  auth: PieceAuth.CustomAuth({
    description: 'ActivePieces Platform API Configuration',
    props: {
      mcpServerUrl: Property.ShortText({
        displayName: 'MCP Server URL',
        description: 'MCP Server URL endpoint for JSON-RPC calls',
        required: true,
      }),
    },
    required: true,
  }),
  minimumSupportedRelease: '0.20.0',
  logoUrl: 'https://net3marketing.com/wp-content/uploads/2025/06/favicon-32x32-1.png',
  authors: ['Net3'],
  actions: [createUpdateQueue, addToQueue, clearQueue, listQueueItems, getQueue],
  triggers: [],
});
