{"version":3,"file":"document-versions.mjs","names":["formatter"],"sources":["../../../src/libs/formatters/document-versions.ts"],"sourcesContent":["import type { DocumentVersionUpdateResponse } from \"../../types/response.js\";\nimport type { DocumentVersion, LucidBrickTableName } from \"../../types.js\";\nimport type { BrickTypes } from \"../collection/builders/brick-builder/types.js\";\nimport type { CollectionSchemaTable } from \"../collection/schema/types.js\";\nimport type { LucidVersionTable, Select } from \"../db/types.js\";\nimport type { RevisionsQueryResponse } from \"../repositories/document-versions.js\";\nimport formatter from \"./index.js\";\n\nconst formatMultiple = (props: {\n\tversions: RevisionsQueryResponse[];\n\tbricksSchema: CollectionSchemaTable<LucidBrickTableName>[];\n}): DocumentVersion[] => {\n\treturn props.versions.map((v) =>\n\t\tformatSingle({\n\t\t\tversion: v,\n\t\t\tbricksSchema: props.bricksSchema,\n\t\t}),\n\t);\n};\n\nconst formatSingle = (props: {\n\tversion: RevisionsQueryResponse;\n\tbricksSchema: CollectionSchemaTable<LucidBrickTableName>[];\n}): DocumentVersion => {\n\tconst formattedBricks: DocumentVersion[\"bricks\"] = {\n\t\tbuilder: [],\n\t\tfixed: [],\n\t};\n\n\tfor (const schema of props.bricksSchema) {\n\t\tconst tableName = schema.name as keyof RevisionsQueryResponse;\n\n\t\tif (tableName in props.version && Array.isArray(props.version[tableName])) {\n\t\t\tconst brickInstances = new Map<string, BrickTypes>();\n\n\t\t\tfor (const row of props.version[tableName]) {\n\t\t\t\tbrickInstances.set(row.brick_instance_id, row.brick_type);\n\t\t\t}\n\t\t\tfor (const [_, brickType] of brickInstances.entries()) {\n\t\t\t\tformattedBricks[brickType].push({\n\t\t\t\t\tbrickKey: schema.key.brick || null,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {\n\t\tid: props.version.id,\n\t\tversionType: props.version.type,\n\t\tpromotedFrom: props.version.promoted_from,\n\t\tcontentId: props.version.content_id,\n\t\tcreatedAt: formatter.formatDate(props.version.created_at),\n\t\tcreatedBy: props.version.created_by ?? null,\n\t\tdocument: {\n\t\t\tid: props.version.document_id ?? null,\n\t\t\tcollectionKey: props.version.collection_key,\n\t\t\tcreatedBy: props.version.document_created_by ?? null,\n\t\t\tcreatedAt: formatter.formatDate(props.version.document_created_at),\n\t\t\tupdatedAt: formatter.formatDate(props.version.document_updated_at),\n\t\t\tupdatedBy: props.version.document_updated_by ?? null,\n\t\t},\n\t\tbricks: formattedBricks,\n\t};\n};\n\nconst formatUpdateSingle = (props: {\n\tdocumentId: number;\n\tversion: Pick<\n\t\tSelect<LucidVersionTable>,\n\t\t\"id\" | \"type\" | \"content_id\" | \"updated_at\"\n\t>;\n}): DocumentVersionUpdateResponse => {\n\treturn {\n\t\tid: props.documentId,\n\t\tversionId: props.version.id,\n\t\tversionType: props.version.type,\n\t\tcontentId: props.version.content_id,\n\t\tupdatedAt: formatter.formatDate(props.version.updated_at),\n\t};\n};\n\nexport default {\n\tformatMultiple,\n\tformatSingle,\n\tformatUpdateSingle,\n};\n"],"mappings":"2BAQA,MAAM,EAAkB,GAIhB,EAAM,SAAS,IAAK,GAC1B,EAAa,CACZ,QAAS,EACT,aAAc,EAAM,YACrB,CAAC,CACF,EAGK,EAAgB,GAGC,CACtB,IAAM,EAA6C,CAClD,QAAS,CAAC,EACV,MAAO,CAAC,CACT,EAEA,IAAK,IAAM,KAAU,EAAM,aAAc,CACxC,IAAM,EAAY,EAAO,KAEzB,GAAI,KAAa,EAAM,SAAW,MAAM,QAAQ,EAAM,QAAQ,EAAU,EAAG,CAC1E,IAAM,EAAiB,IAAI,IAE3B,IAAK,IAAM,KAAO,EAAM,QAAQ,GAC/B,EAAe,IAAI,EAAI,kBAAmB,EAAI,UAAU,EAEzD,IAAK,GAAM,CAAC,EAAG,KAAc,EAAe,QAAQ,EACnD,EAAgB,EAAU,CAAC,KAAK,CAC/B,SAAU,EAAO,IAAI,OAAS,IAC/B,CAAC,CAEH,CACD,CAEA,MAAO,CACN,GAAI,EAAM,QAAQ,GAClB,YAAa,EAAM,QAAQ,KAC3B,aAAc,EAAM,QAAQ,cAC5B,UAAW,EAAM,QAAQ,WACzB,UAAWA,EAAU,WAAW,EAAM,QAAQ,UAAU,EACxD,UAAW,EAAM,QAAQ,YAAc,KACvC,SAAU,CACT,GAAI,EAAM,QAAQ,aAAe,KACjC,cAAe,EAAM,QAAQ,eAC7B,UAAW,EAAM,QAAQ,qBAAuB,KAChD,UAAWA,EAAU,WAAW,EAAM,QAAQ,mBAAmB,EACjE,UAAWA,EAAU,WAAW,EAAM,QAAQ,mBAAmB,EACjE,UAAW,EAAM,QAAQ,qBAAuB,IACjD,EACA,OAAQ,CACT,CACD,EAkBA,IAAA,EAAe,CACd,iBACA,eACA,mBAnB2B,IAOpB,CACN,GAAI,EAAM,WACV,UAAW,EAAM,QAAQ,GACzB,YAAa,EAAM,QAAQ,KAC3B,UAAW,EAAM,QAAQ,WACzB,UAAWA,EAAU,WAAW,EAAM,QAAQ,UAAU,CACzD,EAOD"}