Variable $ProductConst

$Product: {
    additionalProperties: false;
    properties: {
        contractAddress: {
            $ref: "#/components/schemas/ContractAddress";
            description: "Address of the smart-contract to call";
        };
        currency: {
            $ref: "#/components/schemas/Currency";
        };
        failUrl: {
            description: "URL to redirect the user after a failed purchase";
            example: "https://example.com/fail";
            format: "uri";
            nullable: true;
            type: "string";
        };
        functionInputsAbi: {
            $ref: "#/components/schemas/FunctionInputsAbi";
            description: "ABI of the contract function to call";
        };
        functionSelector: {
            $ref: "#/components/schemas/FunctionSelector";
            description: "Function selector of the contract function to call";
        };
        id: {
            format: "int64";
            readOnly: true;
            type: "integer";
        };
        logoImgUrl: {
            description: "URL of the logo image";
            example: "https://example.com/logo.png";
            format: "uri";
            nullable: true;
            type: "string";
        };
        name: {
            description: "Product name";
            example: "Golden NFT";
            type: "string";
        };
        parametersStaticValues: {
            $ref: "#/components/schemas/ParametersStaticValues";
        };
        price: {
            $ref: "#/components/schemas/Price";
        };
        productImgUrl: {
            description: "URL of the product image";
            example: "https://example.com/image.png";
            format: "uri";
            nullable: true;
            type: "string";
        };
        recipientParamName: {
            description: "Name of the contract's function parameter to input the user wallet address to receive the NFT";
            example: "to";
            nullable: true;
            type: "string";
        };
        salesWallet: {
            description: "Wallet (ideally a Safe) collecting sales for crypto purchases";
            example: "0x3D9819210A31b4961b30EF54bE2aeD79B9c9Cd3B";
            nullable: true;
            pattern: "^0x[a-fA-F0-9]{40}$";
            type: "string";
        };
        status: {
            description: "Status of the product";
            enum: readonly ["active", "inactive"];
            type: "string";
        };
        successUrl: {
            description: "URL to redirect the user after a successful purchase";
            example: "https://example.com/success";
            format: "uri";
            nullable: true;
            type: "string";
        };
        webhookEndpoint: {
            description: "URL of the endpoint which should be notified for webhook events";
            example: "https://example.com/my-webhook";
            format: "uri";
            nullable: true;
            type: "string";
        };
    };
    required: readonly ["name", "contractAddress", "functionSelector", "functionInputsAbi", "price", "currency", "recipientParamName", "salesWallet", "status"];
    type: "object";
} = ...