Files
cozsweet-frontend-nextjs/src/data/schemas/private-zone/response/private_album_unlock_response.ts
T

47 lines
1.2 KiB
TypeScript

import { z } from "zod";
import {
arrayOrEmpty,
booleanOrFalse,
numberOrZero,
stringOrEmpty,
} from "../../nullable-defaults";
import { PrivateAlbumImageSchema } from "../private_album";
export const PrivateAlbumUnlockReasonSchema = z.enum([
"ok",
"already_unlocked",
"insufficient_credits",
"cost_changed",
"unlock_in_progress",
"deduct_failed",
"persist_failed_refunded",
"not_found",
]);
export const PrivateAlbumUnlockResponseSchema = z
.object({
albumId: stringOrEmpty,
locked: booleanOrFalse,
unlocked: booleanOrFalse,
reason: PrivateAlbumUnlockReasonSchema.or(stringOrEmpty),
unlockCost: numberOrZero,
requiredCredits: numberOrZero,
creditBalance: numberOrZero,
shortfallCredits: numberOrZero,
images: arrayOrEmpty(PrivateAlbumImageSchema),
})
.readonly();
export type PrivateAlbumUnlockReason = z.output<
typeof PrivateAlbumUnlockReasonSchema
>;
export type PrivateAlbumUnlockResponseInput = z.input<
typeof PrivateAlbumUnlockResponseSchema
>;
export type PrivateAlbumUnlockResponseData = z.output<
typeof PrivateAlbumUnlockResponseSchema
>;
export type PrivateAlbumUnlockResponse = PrivateAlbumUnlockResponseData;