async function joinGroupSuccess(ctx: EventHandlerContext): Promise<void> {
let event = new SworkJoinGroupSuccessEvent(ctx);
const memberId = String(event.asLatest[0]);
const account = await getOrCreate(ctx.store, Account, memberId);
const joinGroup = new JoinGroup();
joinGroup.id = ctx.event.id;
joinGroup.member = account;
joinGroup.owner = String(event.asLatest[1]);
joinGroup.blockHash = ctx.block.hash;
joinGroup.blockNum = ctx.block.height;
joinGroup.createdAt = new Date(ctx.block.timestamp);
joinGroup.extrinsicId = ctx.extrinsic?.id;
await ctx.store.save(account);
await ctx.store.save(joinGroup);
async function fileSuccess(ctx: EventHandlerContext): Promise<void> {
let event = new MarketFileSuccessEvent(ctx);
const accountId = String(event.asLatest[0]);
const account = await getOrCreate(ctx.store, Account, accountId);
const storageOrder = new StorageOrder();
storageOrder.id = ctx.event.id;
storageOrder.account = account;
storageOrder.fileCid = String(event.asLatest[1]);
storageOrder.blockHash = ctx.block.hash;
storageOrder.blockNum = ctx.block.height;
storageOrder.createdAt = new Date(ctx.block.timestamp);
storageOrder.extrinsicId = ctx.extrinsic?.id;
await ctx.store.save(account);
await ctx.store.save(storageOrder);
async function workReportSuccess(ctx: EventHandlerContext): Promise<void> {
let event = new SworkWorksReportSuccessEvent(ctx);
const accountId = String(event.asLatest[0]);
const accountPr = getOrCreate(ctx.store, Account, accountId);
const addedFilesObjPr = ctx.extrinsic?.args.find(arg => arg.name === "addedFiles");
const deletedFilesObjPr = ctx.extrinsic?.args.find(arg => arg.name === "deletedFiles");
const [account,addFObj,delFObj] = await Promise.all([accountPr,addedFilesObjPr,deletedFilesObjPr]);
const workReport = new WorkReport();
workReport.addedFiles = stringifyArray(Array(addFObj?.value))
workReport.deletedFiles = stringifyArray(Array(delFObj?.value))
if ((workReport.addedFiles.length > 0) || (workReport.deletedFiles.length > 0))
{ workReport.account = account;
workReport.id = ctx.event.id;
workReport.blockHash = ctx.block.hash;
workReport.blockNum = ctx.block.height;
workReport.createdAt = new Date(ctx.block.timestamp);
workReport.extrinsicId = ctx.extrinsic?.id;
await ctx.store.save(account);
await ctx.store.save(workReport);