"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.swaggerSpec = exports.swaggerOptions = void 0;
const swagger_jsdoc_1 = __importDefault(require("swagger-jsdoc"));
exports.swaggerOptions = {
    definition: {
        openapi: '3.0.0',
        info: {
            title: 'SerpentRace API',
            version: '1.0.0',
            description: 'Comprehensive API documentation for SerpentRace Backend',
            contact: {
                name: 'SerpentRace Development Team',
                email: 'dev@serpentrace.com'
            },
            license: {
                name: 'MIT',
                url: 'https://opensource.org/licenses/MIT'
            }
        },
        servers: [
            {
                url: 'http://localhost:3000',
                description: 'Local development server'
            },
            {
                url: 'https://api.serpentrace.com',
                description: 'Production server'
            }
        ],
        components: {
            securitySchemes: {
                bearerAuth: {
                    type: 'http',
                    scheme: 'bearer',
                    bearerFormat: 'JWT',
                    description: 'Enter JWT token obtained from /api/users/login'
                }
            }
        },
        security: [{ bearerAuth: [] }],
        tags: [
            {
                name: 'Users',
                description: 'User authentication and profile management'
            },
            {
                name: 'Organizations',
                description: 'Organization management and authentication'
            },
            {
                name: 'Decks',
                description: 'Deck creation, management, and gameplay'
            },
            {
                name: 'Chats',
                description: 'Real-time chat and messaging system'
            },
            {
                name: 'Contacts',
                description: 'Contact form and support requests'
            },
            {
                name: 'Deck Import/Export',
                description: 'Import and export deck functionality'
            }
        ]
    },
    apis: [
        './src/Api/swagger/swaggerDefinitions.ts'
    ],
};
exports.swaggerSpec = (0, swagger_jsdoc_1.default)(exports.swaggerOptions);
//# sourceMappingURL=swaggerConfig.js.map