"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.AdminCarListingModerationDto = exports.UpdateCarListingStatusDto = exports.CarListingQueryDto = exports.UpdateCarListingDto = exports.CreateCarListingDto = void 0;
const swagger_1 = require("@nestjs/swagger");
const class_validator_1 = require("class-validator");
const marketplace_listing_status_enum_1 = require("../../common/marketplace/marketplace-listing-status.enum");
const class_transformer_1 = require("class-transformer");
class CarListingFeaturesDto {
}
__decorate([
    (0, swagger_1.ApiProperty)({ example: "4 door" }),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CarListingFeaturesDto.prototype, "doors", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ example: "6" }),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CarListingFeaturesDto.prototype, "cylinders", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "5 Seater" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CarListingFeaturesDto.prototype, "seating", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ example: "200 - 299 HP" }),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CarListingFeaturesDto.prototype, "horsepower", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ example: "Left Hand" }),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CarListingFeaturesDto.prototype, "steeringSide", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "2000 - 2499 cc" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CarListingFeaturesDto.prototype, "engineCapacity", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ type: [String], example: ["Anti-Lock Brakes (ABS)"] }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsArray)(),
    (0, class_validator_1.IsString)({ each: true }),
    __metadata("design:type", Array)
], CarListingFeaturesDto.prototype, "safety", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ type: [String], example: ["Bluetooth"] }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsArray)(),
    (0, class_validator_1.IsString)({ each: true }),
    __metadata("design:type", Array)
], CarListingFeaturesDto.prototype, "entertainment", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ type: [String], example: ["Air Conditioning"] }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsArray)(),
    (0, class_validator_1.IsString)({ each: true }),
    __metadata("design:type", Array)
], CarListingFeaturesDto.prototype, "comfort", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ type: [String], example: ["Alloy Wheels"] }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsArray)(),
    (0, class_validator_1.IsString)({ each: true }),
    __metadata("design:type", Array)
], CarListingFeaturesDto.prototype, "exterior", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Custom location label" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CarListingFeaturesDto.prototype, "customLabel", void 0);
class CreateCarListingDto {
}
exports.CreateCarListingDto = CreateCarListingDto;
__decorate([
    (0, swagger_1.ApiProperty)({ example: "Toyota" }),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CreateCarListingDto.prototype, "make", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ example: "Land Cruiser" }),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CreateCarListingDto.prototype, "model", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ example: 2022 }),
    (0, class_validator_1.IsInt)(),
    (0, class_validator_1.Min)(1984),
    (0, class_validator_1.Max)(2026),
    __metadata("design:type", Number)
], CreateCarListingDto.prototype, "year", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "GXR" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CreateCarListingDto.prototype, "trim", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ example: "Black" }),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CreateCarListingDto.prototype, "exteriorColor", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ example: "Beige" }),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CreateCarListingDto.prototype, "interiorColor", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ example: "Petrol" }),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CreateCarListingDto.prototype, "fuelType", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ example: "Automatic" }),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CreateCarListingDto.prototype, "transmissionType", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ example: 45000 }),
    (0, class_validator_1.IsInt)(),
    (0, class_validator_1.Min)(0),
    __metadata("design:type", Number)
], CreateCarListingDto.prototype, "mileage", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ example: "Excellent" }),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CreateCarListingDto.prototype, "carCondition", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ example: "Under dealer warranty" }),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CreateCarListingDto.prototype, "warrantyStatus", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "GCC" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CreateCarListingDto.prototype, "origin", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ example: "Sedan" }),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CreateCarListingDto.prototype, "bodyType", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ example: "GCC Specs" }),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CreateCarListingDto.prototype, "regionalSpecs", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ example: true }),
    (0, class_validator_1.IsBoolean)(),
    __metadata("design:type", Boolean)
], CreateCarListingDto.prototype, "isInsured", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Toyota Land Cruiser 2024" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CreateCarListingDto.prototype, "title", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({
        example: { doors: "4 door", cylinders: "6", safety: ["ABS"] },
    }),
    (0, class_validator_1.ValidateNested)(),
    (0, class_transformer_1.Type)(() => CarListingFeaturesDto),
    __metadata("design:type", CarListingFeaturesDto)
], CreateCarListingDto.prototype, "features", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: 1 }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsInt)(),
    (0, class_validator_1.Min)(0),
    __metadata("design:type", Number)
], CreateCarListingDto.prototype, "previousOwners", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ example: "Dubai" }),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CreateCarListingDto.prototype, "registrationEmirate", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Dubai Marina" }),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CreateCarListingDto.prototype, "locationName", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: 25.07725 }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsNumber)(),
    (0, class_validator_1.Min)(-90),
    (0, class_validator_1.Max)(90),
    __metadata("design:type", Number)
], CreateCarListingDto.prototype, "latitude", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: 55.1390 }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsNumber)(),
    (0, class_validator_1.Min)(-180),
    (0, class_validator_1.Max)(180),
    __metadata("design:type", Number)
], CreateCarListingDto.prototype, "longitude", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "JTMCV02J404123456" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CreateCarListingDto.prototype, "chassisNumber", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ example: 245000 }),
    (0, class_validator_1.IsNumber)(),
    (0, class_validator_1.IsPositive)(),
    __metadata("design:type", Number)
], CreateCarListingDto.prototype, "price", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: true }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsBoolean)(),
    __metadata("design:type", Boolean)
], CreateCarListingDto.prototype, "isNegotiable", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Single owner, full service history." }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CreateCarListingDto.prototype, "description", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "No major accidents." }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CreateCarListingDto.prototype, "accidentHistory", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Front bumper repainted." }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CreateCarListingDto.prototype, "repaintingDetails", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Agency serviced until 40,000 km." }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CreateCarListingDto.prototype, "maintenanceDetails", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Apple CarPlay retrofit." }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CreateCarListingDto.prototype, "modificationDetails", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Available for viewing in Abu Dhabi." }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CreateCarListingDto.prototype, "additionalNotes", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Ahmed" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CreateCarListingDto.prototype, "sellerName", void 0);
__decorate([
    (0, swagger_1.ApiProperty)({ example: "+971501234567" }),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CreateCarListingDto.prototype, "sellerMobile", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "seller@example.com" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsEmail)(),
    __metadata("design:type", String)
], CreateCarListingDto.prototype, "sellerEmail", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({
        type: [String],
        maxItems: 5,
        example: ["/uploads/car-front.jpg", "/uploads/car-rear.jpg"],
    }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsArray)(),
    (0, class_validator_1.ArrayMaxSize)(5),
    (0, class_validator_1.IsString)({ each: true }),
    __metadata("design:type", Array)
], CreateCarListingDto.prototype, "photoUrls", void 0);
class UpdateCarListingDto {
}
exports.UpdateCarListingDto = UpdateCarListingDto;
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Toyota" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateCarListingDto.prototype, "make", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Land Cruiser" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateCarListingDto.prototype, "model", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: 2022 }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsInt)(),
    (0, class_validator_1.Min)(1984),
    (0, class_validator_1.Max)(2026),
    __metadata("design:type", Number)
], UpdateCarListingDto.prototype, "year", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "GXR" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateCarListingDto.prototype, "trim", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Black" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateCarListingDto.prototype, "exteriorColor", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Beige" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateCarListingDto.prototype, "interiorColor", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Petrol" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateCarListingDto.prototype, "fuelType", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Automatic" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateCarListingDto.prototype, "transmissionType", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: 45000 }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsInt)(),
    (0, class_validator_1.Min)(0),
    __metadata("design:type", Number)
], UpdateCarListingDto.prototype, "mileage", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Excellent" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateCarListingDto.prototype, "carCondition", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Under dealer warranty" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateCarListingDto.prototype, "warrantyStatus", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "GCC" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateCarListingDto.prototype, "origin", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Sedan" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateCarListingDto.prototype, "bodyType", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "GCC Specs" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateCarListingDto.prototype, "regionalSpecs", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: true }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsBoolean)(),
    __metadata("design:type", Boolean)
], UpdateCarListingDto.prototype, "isInsured", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Toyota Land Cruiser 2024" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateCarListingDto.prototype, "title", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({
        example: { doors: "4 door", cylinders: "6", safety: ["ABS"] },
    }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.ValidateNested)(),
    (0, class_transformer_1.Type)(() => CarListingFeaturesDto),
    __metadata("design:type", CarListingFeaturesDto)
], UpdateCarListingDto.prototype, "features", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: 1 }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsInt)(),
    (0, class_validator_1.Min)(0),
    __metadata("design:type", Number)
], UpdateCarListingDto.prototype, "previousOwners", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Dubai" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateCarListingDto.prototype, "registrationEmirate", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Dubai Marina" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateCarListingDto.prototype, "locationName", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: 25.07725 }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsNumber)(),
    (0, class_validator_1.Min)(-90),
    (0, class_validator_1.Max)(90),
    __metadata("design:type", Number)
], UpdateCarListingDto.prototype, "latitude", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: 55.1390 }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsNumber)(),
    (0, class_validator_1.Min)(-180),
    (0, class_validator_1.Max)(180),
    __metadata("design:type", Number)
], UpdateCarListingDto.prototype, "longitude", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "JTMCV02J404123456" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateCarListingDto.prototype, "chassisNumber", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: 245000 }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsNumber)(),
    (0, class_validator_1.IsPositive)(),
    __metadata("design:type", Number)
], UpdateCarListingDto.prototype, "price", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: true }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsBoolean)(),
    __metadata("design:type", Boolean)
], UpdateCarListingDto.prototype, "isNegotiable", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Single owner, full service history." }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateCarListingDto.prototype, "description", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "No major accidents." }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateCarListingDto.prototype, "accidentHistory", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Front bumper repainted." }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateCarListingDto.prototype, "repaintingDetails", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Agency serviced until 40,000 km." }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateCarListingDto.prototype, "maintenanceDetails", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Apple CarPlay retrofit." }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateCarListingDto.prototype, "modificationDetails", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Available for viewing in Abu Dhabi." }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateCarListingDto.prototype, "additionalNotes", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Ahmed" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateCarListingDto.prototype, "sellerName", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "+971501234567" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], UpdateCarListingDto.prototype, "sellerMobile", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "seller@example.com" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsEmail)(),
    __metadata("design:type", String)
], UpdateCarListingDto.prototype, "sellerEmail", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({
        type: [String],
        maxItems: 5,
        example: ["/uploads/car-front.jpg", "/uploads/car-rear.jpg"],
    }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsArray)(),
    (0, class_validator_1.ArrayMaxSize)(5),
    (0, class_validator_1.IsString)({ each: true }),
    __metadata("design:type", Array)
], UpdateCarListingDto.prototype, "photoUrls", void 0);
class CarListingQueryDto {
}
exports.CarListingQueryDto = CarListingQueryDto;
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Toyota" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CarListingQueryDto.prototype, "make", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Land Cruiser" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CarListingQueryDto.prototype, "model", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: 2022 }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsInt)(),
    __metadata("design:type", Number)
], CarListingQueryDto.prototype, "year", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: 100000 }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsNumber)(),
    __metadata("design:type", Number)
], CarListingQueryDto.prototype, "minPrice", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: 300000 }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsNumber)(),
    __metadata("design:type", Number)
], CarListingQueryDto.prototype, "maxPrice", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Excellent" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CarListingQueryDto.prototype, "carCondition", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: 50000 }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsInt)(),
    __metadata("design:type", Number)
], CarListingQueryDto.prototype, "maxMileage", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Automatic" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CarListingQueryDto.prototype, "transmissionType", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Petrol" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CarListingQueryDto.prototype, "fuelType", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Dubai" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], CarListingQueryDto.prototype, "registrationEmirate", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "pending_approval" }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsEnum)(marketplace_listing_status_enum_1.MarketplaceListingStatus),
    __metadata("design:type", String)
], CarListingQueryDto.prototype, "status", void 0);
class UpdateCarListingStatusDto {
}
exports.UpdateCarListingStatusDto = UpdateCarListingStatusDto;
__decorate([
    (0, swagger_1.ApiProperty)({ enum: marketplace_listing_status_enum_1.MarketplaceListingStatus }),
    (0, class_validator_1.IsEnum)(marketplace_listing_status_enum_1.MarketplaceListingStatus),
    __metadata("design:type", String)
], UpdateCarListingStatusDto.prototype, "status", void 0);
class AdminCarListingModerationDto {
}
exports.AdminCarListingModerationDto = AdminCarListingModerationDto;
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ enum: marketplace_listing_status_enum_1.MarketplaceListingStatus }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsEnum)(marketplace_listing_status_enum_1.MarketplaceListingStatus),
    __metadata("design:type", String)
], AdminCarListingModerationDto.prototype, "status", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: true }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsBoolean)(),
    __metadata("design:type", Boolean)
], AdminCarListingModerationDto.prototype, "isVisible", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: 45 }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsInt)(),
    (0, class_validator_1.Min)(1),
    __metadata("design:type", Number)
], AdminCarListingModerationDto.prototype, "validityDays", void 0);
__decorate([
    (0, swagger_1.ApiPropertyOptional)({ example: "Missing supporting photos." }),
    (0, class_validator_1.IsOptional)(),
    (0, class_validator_1.IsString)(),
    __metadata("design:type", String)
], AdminCarListingModerationDto.prototype, "rejectionReason", void 0);
//# sourceMappingURL=car-listing.dto.js.map