"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.AssetBulkUploadCheckResponseDto = exports.AssetMediaResponseDto = exports.AssetRejectReason = exports.AssetUploadAction = exports.AssetMediaStatus = void 0;
const openapi = require("@nestjs/swagger");
const nestjs_zod_1 = require("nestjs-zod");
const zod_1 = __importDefault(require("zod"));
var AssetMediaStatus;
(function (AssetMediaStatus) {
    AssetMediaStatus["CREATED"] = "created";
    AssetMediaStatus["DUPLICATE"] = "duplicate";
})(AssetMediaStatus || (exports.AssetMediaStatus = AssetMediaStatus = {}));
const AssetMediaStatusSchema = zod_1.default.enum(AssetMediaStatus).describe('Upload status').meta({ id: 'AssetMediaStatus' });
const AssetMediaResponseSchema = zod_1.default
    .object({
    status: AssetMediaStatusSchema,
    id: zod_1.default.uuidv4().describe('Asset media ID'),
})
    .meta({ id: 'AssetMediaResponseDto' });
var AssetUploadAction;
(function (AssetUploadAction) {
    AssetUploadAction["ACCEPT"] = "accept";
    AssetUploadAction["REJECT"] = "reject";
})(AssetUploadAction || (exports.AssetUploadAction = AssetUploadAction = {}));
const AssetUploadActionSchema = zod_1.default.enum(AssetUploadAction).describe('Upload action').meta({ id: 'AssetUploadAction' });
var AssetRejectReason;
(function (AssetRejectReason) {
    AssetRejectReason["DUPLICATE"] = "duplicate";
    AssetRejectReason["UNSUPPORTED_FORMAT"] = "unsupported-format";
})(AssetRejectReason || (exports.AssetRejectReason = AssetRejectReason = {}));
const AssetRejectReasonSchema = zod_1.default
    .enum(AssetRejectReason)
    .describe('Rejection reason if rejected')
    .meta({ id: 'AssetRejectReason' });
const AssetBulkUploadCheckResultSchema = zod_1.default
    .object({
    id: zod_1.default.string().describe('Client-side identifier echoed from the request to match results to inputs'),
    action: AssetUploadActionSchema,
    reason: AssetRejectReasonSchema.optional(),
    assetId: zod_1.default.uuidv4().optional().describe('Existing asset ID if duplicate'),
    isTrashed: zod_1.default.boolean().optional().describe('Whether existing asset is trashed'),
})
    .meta({ id: 'AssetBulkUploadCheckResult' });
const AssetBulkUploadCheckResponseSchema = zod_1.default
    .object({
    results: zod_1.default.array(AssetBulkUploadCheckResultSchema).describe('Upload check results'),
})
    .meta({ id: 'AssetBulkUploadCheckResponseDto' });
class AssetMediaResponseDto extends (0, nestjs_zod_1.createZodDto)(AssetMediaResponseSchema) {
    static _OPENAPI_METADATA_FACTORY() {
        return {};
    }
}
exports.AssetMediaResponseDto = AssetMediaResponseDto;
class AssetBulkUploadCheckResponseDto extends (0, nestjs_zod_1.createZodDto)(AssetBulkUploadCheckResponseSchema) {
    static _OPENAPI_METADATA_FACTORY() {
        return {};
    }
}
exports.AssetBulkUploadCheckResponseDto = AssetBulkUploadCheckResponseDto;
//# sourceMappingURL=asset-media-response.dto.js.map