"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.PricingResponseDto = exports.ServerTypePricingDto = exports.LocationPriceDto = exports.PriceDetailDto = void 0;
const swagger_1 = require("@nestjs/swagger");
// Re-export with Swagger decorators for API documentation
class PriceDetailDto {
}
exports.PriceDetailDto = PriceDetailDto;
__decorate([
    (0, swagger_1.ApiProperty)({ description: 'Price without VAT', example: '5.00' }),
    __metadata("design:type", String)
], PriceDetailDto.prototype, "net", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ description: 'Price with VAT', example: '5.95' }),
    __metadata("design:type", String)
], PriceDetailDto.prototype, "gross", void 0);
class LocationPriceDto {
}
exports.LocationPriceDto = LocationPriceDto;
__decorate([
    (0, swagger_1.ApiProperty)({ description: 'Location identifier', example: 'nbg1' }),
    __metadata("design:type", String)
], LocationPriceDto.prototype, "location", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ type: PriceDetailDto }),
    __metadata("design:type", PriceDetailDto)
], LocationPriceDto.prototype, "priceHourly", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ type: PriceDetailDto }),
    __metadata("design:type", PriceDetailDto)
], LocationPriceDto.prototype, "priceMonthly", void 0);
class ServerTypePricingDto {
}
exports.ServerTypePricingDto = ServerTypePricingDto;
__decorate([
    (0, swagger_1.ApiProperty)({ description: 'Server type ID', example: '1' }),
    __metadata("design:type", String)
], ServerTypePricingDto.prototype, "id", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ description: 'Server type name', example: 'cx11' }),
    __metadata("design:type", String)
], ServerTypePricingDto.prototype, "name", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({
        description: 'Prices per location',
        type: [LocationPriceDto],
    }),
    __metadata("design:type", Array)
], ServerTypePricingDto.prototype, "prices", void 0);
class PricingResponseDto {
}
exports.PricingResponseDto = PricingResponseDto;
__decorate([
    (0, swagger_1.ApiProperty)({ description: 'Provider name', example: 'hetzner' }),
    __metadata("design:type", String)
], PricingResponseDto.prototype, "provider", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ description: 'Currency code (ISO 4217)', example: 'EUR' }),
    __metadata("design:type", String)
], PricingResponseDto.prototype, "currency", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ description: 'VAT rate as string', example: '0.19' }),
    __metadata("design:type", String)
], PricingResponseDto.prototype, "vatRate", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({
        description: 'Server type pricing information',
        type: [ServerTypePricingDto],
    }),
    __metadata("design:type", Array)
], PricingResponseDto.prototype, "serverTypes", void 0);
