// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
interface ISchemaRegistry {
struct SchemaRecord {
string schemaId;
string name;
string version;
address author;
bytes32 schemaHash;
string storageUri;
uint256 created;
bool active;
}
event SchemaCreated(string indexed schemaId, string name, string version, address indexed author);
event SchemaDeactivated(string indexed schemaId);
function createSchema(
string calldata schemaId,
string calldata name,
string calldata version,
bytes32 schemaHash,
string calldata storageUri
) external;
function getSchema(string calldata schemaId) external view returns (SchemaRecord memory);
function listSchemas(uint256 offset, uint256 limit) external view returns (SchemaRecord[] memory);
function deactivateSchema(string calldata schemaId) external;
function getSchemaCount() external view returns (uint256);
}