import { ContractConfig, Feature, FunctionConfig, MintConfig, ProjectConfig } from "@patchworkdev/common/types";

const appraisalsProjectConfig: ProjectConfig = {
    name: "appraisals",
    scopes: [
        {
            name: "myscope",
            whitelist: true,
            userAssign: false,
            userPatch: false,
            mintConfigs: {},
            patchFees: {},
            assignFees: {}
        }
    ],
    contracts: {
        "AppraisalPatch": {
            scopeName: "myscope",
            name: "AppraisalPatch",
            symbol: "APPAT",
            baseURI: "https://replace-me-with-website/",
            schemaURI: "https://replace-me-with-website/schemas/appraisalpatch.json",
            imageURI: "https://replace-me-with-website/assets/appraisalpatch/{tokenID}",
            fields: [
                {
                    id: 0,
                    key: "nonce",
                    type: "uint64",
                    description: "Signature Nonce - New appraisals must be greater",
                },
                {
                    id: 1,
                    key: "appraisals",
                    type: "literef",
                    description: "Appraisals",
                    arrayLength: 8,
                }
            ],
            features: [Feature.PATCH],
            fragments: ["Appraisal"]
        },
        "Appraisal1155Patch": {
            scopeName: "myscope",
            name: "Appraisal1155Patch",
            symbol: "APPAT5",
            baseURI: "https://replace-me-with-website/",
            schemaURI: "https://replace-me-with-website/schemas/appraisal1155patch.json",
            imageURI: "https://replace-me-with-website/assets/appraisal1155patch/{tokenID}",
            fields: [
                {
                    id: 0,
                    key: "nonce",
                    type: "uint64",
                    description: "Signature Nonce - New appraisals must be greater",
                },
                {
                    id: 1,
                    key: "appraisals",
                    type: "literef",
                    description: "Appraisals",
                    arrayLength: 8,
                }
            ],
            features: [Feature["1155PATCH"]],
            fragments: ["Appraisal"]
        },
        "Appraisal": {
            scopeName: "myscope",
            name: "Appraisal",
            symbol: "APPR",
            baseURI: "https://replace-me-with-website/",
            schemaURI: "https://replace-me-with-website/schemas/appraisal.json",
            imageURI: "https://replace-me-with-website/assets/appraisal/{tokenID}",
            fields: [
                {
                    id: 0,
                    key: "createdat",
                    type: "uint64",
                    description: "CreatedAt Timestamp (seconds since epoch)",
                    functionConfig: FunctionConfig.LOAD,
                },
                {
                    id: 1,
                    key: "appraiser",
                    type: "address",
                    description: "Appraiser",
                    functionConfig: FunctionConfig.LOAD,
                },
                {
                    id: 2,
                    key: "nonce",
                    type: "uint64",
                    description: "Nonce",
                    functionConfig: FunctionConfig.LOAD,
                },
                {
                    id: 3,
                    key: "signature",
                    type: "uint256",
                    description: "Appraiser Signature",
                    functionConfig: FunctionConfig.LOAD,
                },
                {
                    id: 4,
                    key: "value",
                    type: "uint256",
                    description: "Appraised Value",
                    functionConfig: FunctionConfig.LOAD,
                }
            ],
            features: [Feature.MINTABLE, Feature.FRAGMENTSINGLE],
            fragments: []
        }
    }
};

export default appraisalsProjectConfig;