From 401159ba9abdc23fcf31e42afa5e6c440e9fab0a Mon Sep 17 00:00:00 2001
From: sovrgn <boyan.tsolov@vereign.com>
Date: Tue, 26 Sep 2023 15:14:13 +0300
Subject: [PATCH] fix: names, base class that is extended upon

---
 .../src/app/app.controller.ts                 |  4 +-
 .../app/managers/attestation.controller.ts    | 10 ++---
 .../src/app/managers/connection.controller.ts |  6 +--
 .../src/app/managers/proof.controller.ts      | 18 ++++-----
 apps/proof-manager/src/app/app.controller.ts  |  4 +-
 .../src/askar-nats/event.handler.service.ts   | 20 +++++-----
 libs/askar/src/askar-rest/rest.controller.ts  |  6 +--
 libs/askar/src/askar/agent.service.ts         | 38 +++++++++----------
 .../dtos/src/dtos/generics/base.record.dto.ts | 18 +++++++++
 .../dtos/generics/connection.record.dto.ts    | 13 +------
 .../src/dtos/generics/creddef.record.dto.ts   |  6 +--
 .../dtos/generics/credential.record.dto.ts    | 33 ++++++++--------
 .../src/dtos/generics/proof.record.dto.ts     | 14 +------
 .../src/dtos/generics/schema.record.dto.ts    | 10 +----
 .../connection.req.dto.ts}                    |  2 +-
 .../creddef.req.dto.ts}                       |  2 +-
 .../credential.req.dto.ts}                    |  2 +-
 .../proof.req.dto.ts}                         |  2 +-
 .../schema.req.dto.ts}                        |  2 +-
 .../make.basic.message.response.dto.ts        |  7 +---
 libs/dtos/src/events/dtoToEventTransformer.ts | 12 +++---
 libs/dtos/src/index.ts                        | 11 +++---
 22 files changed, 113 insertions(+), 127 deletions(-)
 create mode 100644 libs/dtos/src/dtos/generics/base.record.dto.ts
 rename libs/dtos/src/dtos/{generics/connection.ref.dto.ts => requests/connection.req.dto.ts} (87%)
 rename libs/dtos/src/dtos/{generics/creddef.ref.dto.ts => requests/creddef.req.dto.ts} (86%)
 rename libs/dtos/src/dtos/{generics/credential.ref.dto.ts => requests/credential.req.dto.ts} (88%)
 rename libs/dtos/src/dtos/{generics/proof.ref.dto.ts => requests/proof.req.dto.ts} (90%)
 rename libs/dtos/src/dtos/{generics/schema.ref.dto.ts => requests/schema.req.dto.ts} (90%)

diff --git a/apps/connection-manager/src/app/app.controller.ts b/apps/connection-manager/src/app/app.controller.ts
index ae335291..4eefca2f 100644
--- a/apps/connection-manager/src/app/app.controller.ts
+++ b/apps/connection-manager/src/app/app.controller.ts
@@ -7,7 +7,7 @@ import {
   ConnectionEvent,
   CreateInvitationResponseDto,
   GatewayAcceptedResponseDto,
-  ConnectionRefDto,
+  ConnectionReqDto,
   makeEvent,
 } from "@ocm-engine/dtos";
 
@@ -21,7 +21,7 @@ export class AppController {
   async create(
     @Body()
     payload: {
-      data: null | CreateInvitationResponseDto | ConnectionRefDto;
+      data: null | CreateInvitationResponseDto | ConnectionReqDto;
       type: ConnectionEvent;
       source: string;
     },
diff --git a/apps/gateway/src/app/managers/attestation.controller.ts b/apps/gateway/src/app/managers/attestation.controller.ts
index 3e8c1fa9..a51fdf1b 100644
--- a/apps/gateway/src/app/managers/attestation.controller.ts
+++ b/apps/gateway/src/app/managers/attestation.controller.ts
@@ -2,7 +2,7 @@ import { Body, Controller, Get, Param, Post, UseFilters } from "@nestjs/common";
 import { AllExceptionsHandler } from "../exception.handler";
 import { AttestationManagerClient } from "@ocm-engine/clients";
 import {
-  CredentialRefDto,
+  CredentialReqDto,
   CreateCredentialDefinitionRequsetDto,
   CreateSchemaRequestDto,
   CRED_DEF_CREATE,
@@ -11,7 +11,7 @@ import {
   CRED_OFFER_ACCEPT,
   CRED_OFFER_LIST,
   GatewayAcceptedResponseDto,
-  SchemaRefDto,
+  SchemaReqDto,
   IssueCredentialRequestDto,
   MakeBasicMessageRequestDto,
   MESSAGE_MAKE,
@@ -165,8 +165,8 @@ export class AttestationController {
       "Method will fetch specific schema or return null. The id of the response will be matched when you receive event from the websocket",
     tags: ["Schema"],
   })
-  async getSchemaById(@Body() schemaRequestDto: SchemaRefDto) {
-    return this.amClient.sendPayload<SchemaRefDto>({
+  async getSchemaById(@Body() schemaRequestDto: SchemaReqDto) {
+    return this.amClient.sendPayload<SchemaReqDto>({
       pattern: "schemas",
       payload: {
         source: "/schemas-by-id",
@@ -504,7 +504,7 @@ export class AttestationController {
     tags: ["Credentials Offers"],
   })
   acceptCredential(@Param("credential_record_id") credentialRecordId: string) {
-    const data = new CredentialRefDto();
+    const data = new CredentialReqDto();
     data.credentialRecordId = credentialRecordId;
     return this.amClient.sendPayload({
       pattern: "credentials",
diff --git a/apps/gateway/src/app/managers/connection.controller.ts b/apps/gateway/src/app/managers/connection.controller.ts
index 8aec8f26..aa29861f 100644
--- a/apps/gateway/src/app/managers/connection.controller.ts
+++ b/apps/gateway/src/app/managers/connection.controller.ts
@@ -15,7 +15,7 @@ import {
   CONNECTION_LIST,
   CreateInvitationResponseDto,
   GatewayAcceptedResponseDto,
-  ConnectionRefDto,
+  ConnectionReqDto,
 } from "@ocm-engine/dtos";
 import { AllExceptionsHandler } from "../exception.handler";
 import {
@@ -238,10 +238,10 @@ export class ConnectionController {
     tags: ["Connections"],
   })
   async getById(@Param("id") id: string) {
-    const request = new ConnectionRefDto();
+    const request = new ConnectionReqDto();
     request.connectionId = id;
 
-    return this.cmClient.sendPayload<ConnectionRefDto>({
+    return this.cmClient.sendPayload<ConnectionReqDto>({
       pattern: "connections",
       payload: {
         source: "/connections/:id",
diff --git a/apps/gateway/src/app/managers/proof.controller.ts b/apps/gateway/src/app/managers/proof.controller.ts
index 91942b2e..c90bad7c 100644
--- a/apps/gateway/src/app/managers/proof.controller.ts
+++ b/apps/gateway/src/app/managers/proof.controller.ts
@@ -1,8 +1,8 @@
 import { Body, Controller, Get, Param, Post, UseFilters } from "@nestjs/common";
 import {
-  ProofRefDto,
+  ProofReqDto,
   GatewayAcceptedResponseDto,
-  SchemaRefDto,
+  SchemaReqDto,
   IssueProofRequestDto,
   PROOF_ACCEPT,
   PROOF_DECLINE,
@@ -60,7 +60,7 @@ export class ProofController {
     tags: ["Credentials Proof"],
   })
   proofs() {
-    return this.pmClient.sendPayload<SchemaRefDto>({
+    return this.pmClient.sendPayload<SchemaReqDto>({
       pattern: "proofs",
       payload: {
         source: "/credential/proofs",
@@ -106,10 +106,10 @@ export class ProofController {
     tags: ["Credentials Proof"],
   })
   getProofById(@Param("proof_record_id") proofRecordId: string) {
-    const data = new ProofRefDto();
+    const data = new ProofReqDto();
     data.proofRecordId = proofRecordId;
 
-    return this.pmClient.sendPayload<ProofRefDto>({
+    return this.pmClient.sendPayload<ProofReqDto>({
       pattern: "proofs",
       payload: {
         source: "/credentials/proof/:proof_record_id",
@@ -228,8 +228,8 @@ export class ProofController {
       "Method accept credential proof. The id of the response will be matched when you receive event from the websocket",
     tags: ["Credentials Proof"],
   })
-  acceptProof(@Body() acceptProofRequestDto: ProofRefDto) {
-    return this.pmClient.sendPayload<ProofRefDto>({
+  acceptProof(@Body() acceptProofRequestDto: ProofReqDto) {
+    return this.pmClient.sendPayload<ProofReqDto>({
       pattern: "proofs",
       payload: {
         source: "/credentials/proofs/accept",
@@ -275,10 +275,10 @@ export class ProofController {
     tags: ["Credentials Proof"],
   })
   declineProofRequest(@Param("proof_record_id") proofRecordId: string) {
-    const data = new ProofRefDto();
+    const data = new ProofReqDto();
     data.proofRecordId = proofRecordId;
 
-    return this.pmClient.sendPayload<ProofRefDto>({
+    return this.pmClient.sendPayload<ProofReqDto>({
       pattern: "proofs",
       payload: {
         source: "/credentials/proof/:proof_record_id/decline",
diff --git a/apps/proof-manager/src/app/app.controller.ts b/apps/proof-manager/src/app/app.controller.ts
index 2df10222..c4d40fc0 100644
--- a/apps/proof-manager/src/app/app.controller.ts
+++ b/apps/proof-manager/src/app/app.controller.ts
@@ -3,7 +3,7 @@ import { Body, Controller, Logger } from "@nestjs/common";
 import { ProducerService } from "@ocm-engine/nats";
 import { MessagePattern, RpcException } from "@nestjs/microservices";
 import {
-  ProofRefDto,
+  ProofReqDto,
   CloudEventDto,
   GatewayAcceptedResponseDto,
   makeEvent,
@@ -20,7 +20,7 @@ export class AppController {
   async create(
     @Body()
     payload: {
-      data: null | ProofRefDto;
+      data: null | ProofReqDto;
       type: ProofEvent;
       source: string;
     },
diff --git a/libs/askar/src/askar-nats/event.handler.service.ts b/libs/askar/src/askar-nats/event.handler.service.ts
index 39e24f6d..2c5b4409 100644
--- a/libs/askar/src/askar-nats/event.handler.service.ts
+++ b/libs/askar/src/askar-nats/event.handler.service.ts
@@ -1,8 +1,8 @@
 import { Injectable, Logger } from "@nestjs/common";
 import { AgentService } from "../askar/agent.service";
 import {
-  CredentialRefDto,
-  ProofRefDto,
+  CredentialReqDto,
+  ProofReqDto,
   CloudEventDto,
   CONNECTION_ACCEPT,
   CONNECTION_CREATE,
@@ -16,8 +16,8 @@ import {
   CRED_LIST,
   CRED_OFFER_ACCEPT,
   CRED_OFFER_LIST,
-  ConnectionRefDto,
-  SchemaRefDto,
+  ConnectionReqDto,
+  SchemaReqDto,
   IssueCredentialRequestDto,
   IssueProofRequestDto,
   MakeBasicMessageRequestDto,
@@ -58,7 +58,7 @@ export class EventHandlerService {
             break;
 
           case CONNECTION_GET:
-            dto = event.data as ConnectionRefDto;
+            dto = event.data as ConnectionReqDto;
             data = await this.agentService.getConnectionById(dto.connectionId);
             break;
 
@@ -71,7 +71,7 @@ export class EventHandlerService {
             break;
 
           case SCHEMA_GET:
-            dto = event.data as SchemaRefDto;
+            dto = event.data as SchemaReqDto;
             data = await this.agentService.getSchemaById(dto.schemaId);
             break;
           case CRED_DEF_CREATE:
@@ -95,7 +95,7 @@ export class EventHandlerService {
             break;
 
           case CRED_OFFER_ACCEPT:
-            dto = event.data as CredentialRefDto;
+            dto = event.data as CredentialReqDto;
             data = await this.agentService.acceptCredential(
               dto.credentialRecordId,
             );
@@ -111,18 +111,18 @@ export class EventHandlerService {
             break;
 
           case PROOF_GET:
-            dto = event.data as ProofRefDto;
+            dto = event.data as ProofReqDto;
             data = await this.agentService.getProofById(dto.proofRecordId);
             break;
 
           case PROOF_ACCEPT:
             data = await this.agentService.acceptProof(
-              event.data as ProofRefDto,
+              event.data as ProofReqDto,
             );
             break;
 
           case PROOF_DECLINE:
-            dto = event.data as ProofRefDto;
+            dto = event.data as ProofReqDto;
             data = await this.agentService.declineProofRequest(
               dto.proofRecordId,
             );
diff --git a/libs/askar/src/askar-rest/rest.controller.ts b/libs/askar/src/askar-rest/rest.controller.ts
index cc1a2780..f8ca05f4 100644
--- a/libs/askar/src/askar-rest/rest.controller.ts
+++ b/libs/askar/src/askar-rest/rest.controller.ts
@@ -8,7 +8,7 @@ import {
   IssueProofRequestDto,
   CreateSchemaRequestDto,
   MakeBasicMessageRequestDto,
-  ProofRefDto,
+  ProofReqDto,
 } from "@ocm-engine/dtos";
 import { AllExceptionsHandler } from "./exception.handler";
 
@@ -79,12 +79,12 @@ export class RestController {
   }
 
   @Get("credential/proof/:proof_record_id")
-  getProof(@Param("proof_record_id") data: ProofRefDto) {
+  getProof(@Param("proof_record_id") data: ProofReqDto) {
     return this.agentService.getProofById(data.proofRecordId);
   }
 
   @Post(`/credential/proof/accept`)
-  acceptProof(@Body() acceptProofRequestDto: ProofRefDto) {
+  acceptProof(@Body() acceptProofRequestDto: ProofReqDto) {
     return this.agentService.acceptProof(acceptProofRequestDto);
   }
 
diff --git a/libs/askar/src/askar/agent.service.ts b/libs/askar/src/askar/agent.service.ts
index c0369dbf..5c848b84 100644
--- a/libs/askar/src/askar/agent.service.ts
+++ b/libs/askar/src/askar/agent.service.ts
@@ -2,7 +2,7 @@ import { Injectable } from "@nestjs/common";
 import { AskarService } from "./askar.service";
 import {
   ConnectionRecordDto,
-  ProofRefDto,
+  ProofReqDto,
   ConnectionNotFoundError,
   CreateCredentialDefinitionRequsetDto,
   CreddefRecordDto,
@@ -55,7 +55,7 @@ export class AgentService {
 
     const r = new ConnectionRecordDto();
     r.connectionName = connectionRecord.theirLabel;
-    r.connectionId = connectionRecord.id;
+    r.id = connectionRecord.id;
     r.did = connectionRecord.did;
     r.invitationDid = connectionRecord.invitationDid;
     r.outOfBandId = connectionRecord.outOfBandId;
@@ -69,7 +69,7 @@ export class AgentService {
 
     let connectionArray = agentResponse.map((singleConnectionRes) => {
       let connectionResponse = new ConnectionRecordDto();
-      connectionResponse.connectionId = singleConnectionRes.id;
+      connectionResponse.id = singleConnectionRes.id;
       connectionResponse.state = singleConnectionRes.state;
       connectionResponse.connectionName = singleConnectionRes.theirLabel;
       connectionResponse.alias = singleConnectionRes.alias;
@@ -97,7 +97,7 @@ export class AgentService {
     }
 
     let connectionResponse = new ConnectionRecordDto();
-    connectionResponse.connectionId = agentResponse.id;
+    connectionResponse.id = agentResponse.id;
     connectionResponse.state = agentResponse.state;
     connectionResponse.connectionName = agentResponse.theirLabel;
     connectionResponse.alias = agentResponse.alias;
@@ -115,7 +115,7 @@ export class AgentService {
 
     let schemaResponse = agentResponse.map((singleSchemaRes) => {
       let schemaResponse = new SchemaRecordDto();
-      schemaResponse.schemaId = singleSchemaRes.schemaId;
+      schemaResponse.id = singleSchemaRes.schemaId;
       schemaResponse.name = singleSchemaRes.schema.name;
       schemaResponse.attributes = singleSchemaRes.schema.attrNames;
       schemaResponse.version = singleSchemaRes.schema.version;
@@ -140,7 +140,7 @@ export class AgentService {
     }
 
     let schemaResponse = new SchemaRecordDto();
-    schemaResponse.schemaId = agentResponse.schemaId;
+    schemaResponse.id = agentResponse.schemaId;
     schemaResponse.name = agentResponse.schema.name;
     schemaResponse.attributes = agentResponse.schema.attrNames;
     schemaResponse.version = agentResponse.schema.version;
@@ -170,7 +170,7 @@ export class AgentService {
     const response = new SchemaRecordDto();
 
     response.name = schemaResult.schemaState.schema.name;
-    response.schemaId = schemaResult.schemaState.schemaId;
+    response.id = schemaResult.schemaState.schemaId;
     response.issuerId = schemaResult.schemaState.schema.issuerId;
     response.version = schemaResult.schemaState.schema.version;
     response.attributes = schemaResult.schemaState.schema.attrNames;
@@ -198,7 +198,7 @@ export class AgentService {
     }
 
     const response = new CreddefRecordDto();
-    response.credentialDefinitionId =
+    response.id =
       credDef.credentialDefinitionState.credentialDefinitionId;
     response.schemaId =
       credDef.credentialDefinitionState.credentialDefinition.schemaId;
@@ -229,7 +229,7 @@ export class AgentService {
       console.log(JSON.stringify(credentialExchangeRecord, null, 2));
 
       const response = new CredentialRecordDto();
-      response.credentialId = credentialExchangeRecord.id;
+      response.id = credentialExchangeRecord.id;
       response.connectionId = credentialExchangeRecord.connectionId;
       response.attributes = credentialExchangeRecord.credentialAttributes;
       response.createdAt = credentialExchangeRecord.createdAt;
@@ -257,7 +257,7 @@ export class AgentService {
       });
 
     const response = new CredentialRecordDto();
-    response.credentialId = credentialExchangeRecord.id;
+    response.id = credentialExchangeRecord.id;
     response.connectionId = credentialExchangeRecord.connectionId;
     response.attributes = credentialExchangeRecord.credentialAttributes;
     response.createdAt = credentialExchangeRecord.createdAt;
@@ -273,7 +273,7 @@ export class AgentService {
     const response: Array<CredentialRecordDto> = [];
     for (const offer of credentials) {
       const t = new CredentialRecordDto();
-      t.credentialId = offer.id;
+      t.id = offer.id;
       t.connectionId = offer.connectionId;
       t.createdAt = offer.createdAt;
       t.attributes = offer.credentialAttributes;
@@ -291,7 +291,7 @@ export class AgentService {
     const response: Array<CredentialRecordDto> = [];
     for (const offer of offers) {
       const t = new CredentialRecordDto();
-      t.credentialId = offer.id;
+      t.id = offer.id;
       t.connectionId = offer.connectionId;
       t.createdAt = offer.createdAt;
       t.attributes = offer.credentialAttributes;
@@ -359,7 +359,7 @@ export class AgentService {
     });
 
     const response = new ProofRecordDto();
-    response.proofId = exchangeRecord.id;
+    response.id = exchangeRecord.id;
     response.connectionId = exchangeRecord.connectionId;
     response.state = exchangeRecord.state;
     response.updatedAt = exchangeRecord.updatedAt;
@@ -376,7 +376,7 @@ export class AgentService {
     const response: Array<ProofRecordDto> = [];
     for (const proof of proofs) {
       const t = new ProofRecordDto();
-      t.proofId = proof.id;
+      t.id = proof.id;
       t.connectionId = proof.connectionId;
       t.state = proof.state;
       t.updatedAt = proof.updatedAt;
@@ -397,7 +397,7 @@ export class AgentService {
 
     const proofResponse = new ProofRecordDto();
 
-    proofResponse.proofId = proofRecord.id;
+    proofResponse.id = proofRecord.id;
     proofResponse.connectionId = proofRecord.connectionId;
     proofResponse.state = proofRecord.state;
     proofResponse.updatedAt = proofRecord.updatedAt;
@@ -406,7 +406,7 @@ export class AgentService {
     return proofResponse;
   };
 
-  acceptProof = async (acceptProofDto: ProofRefDto) => {
+  acceptProof = async (acceptProofDto: ProofReqDto) => {
     if (acceptProofDto.proofUrl) {
       return this.acceptOobProof(acceptProofDto.proofUrl);
     }
@@ -436,7 +436,7 @@ export class AgentService {
 
     const response = new ProofRecordDto();
 
-    response.proofId = acceptedRecord.id;
+    response.id = acceptedRecord.id;
     response.state = acceptedRecord.state;
     response.updatedAt = acceptedRecord.updatedAt;
     response.createdAt = acceptedRecord.createdAt;
@@ -461,7 +461,7 @@ export class AgentService {
     console.log(JSON.stringify(proof, null, 2));
 
     const response = new ProofRecordDto();
-    response.proofId = proof.id;
+    response.id = proof.id;
     response.connectionId = proof.connectionId;
     response.state = proof.state;
     response.updatedAt = proof.updatedAt;
@@ -477,7 +477,7 @@ export class AgentService {
     });
 
     const declineResponse = new ProofRecordDto();
-    declineResponse.proofId = resultFromDecline.id;
+    declineResponse.id = resultFromDecline.id;
     declineResponse.connectionId = resultFromDecline.connectionId;
     declineResponse.state = resultFromDecline.state;
     declineResponse.updatedAt = resultFromDecline.updatedAt;
diff --git a/libs/dtos/src/dtos/generics/base.record.dto.ts b/libs/dtos/src/dtos/generics/base.record.dto.ts
new file mode 100644
index 00000000..0fad391f
--- /dev/null
+++ b/libs/dtos/src/dtos/generics/base.record.dto.ts
@@ -0,0 +1,18 @@
+
+import { IsDateString, IsNotEmpty, IsString } from "class-validator";
+
+
+
+export class BaseRecordDto {
+
+  @IsString()
+  @IsNotEmpty()
+  id: string;
+
+  @IsDateString()
+  @IsNotEmpty()
+  createdAt: Date;
+  
+  @IsDateString()
+  updatedAt?: Date;
+}
\ No newline at end of file
diff --git a/libs/dtos/src/dtos/generics/connection.record.dto.ts b/libs/dtos/src/dtos/generics/connection.record.dto.ts
index 0e0f86ed..b48dbb9a 100644
--- a/libs/dtos/src/dtos/generics/connection.record.dto.ts
+++ b/libs/dtos/src/dtos/generics/connection.record.dto.ts
@@ -1,5 +1,5 @@
 import { IsDateString, IsNotEmpty, IsString } from "class-validator";
-
+import { BaseRecordDto } from "./base.record.dto";
 
 // INFO: should cover:
 
@@ -7,12 +7,7 @@ import { IsDateString, IsNotEmpty, IsString } from "class-validator";
 // 2. accept connection response
 
 
-export class ConnectionRecordDto {
-  //@example 6464b521-005a-4379-91e0-a3692b31cafd
-  @IsNotEmpty()
-  @IsString()
-  connectionId: string;
-
+export class ConnectionRecordDto extends BaseRecordDto {
   @IsNotEmpty()
   @IsString()
   state: string;
@@ -31,8 +26,4 @@ export class ConnectionRecordDto {
 
   @IsString()
   outOfBandId?: string;
-
-  @IsDateString()
-  @IsNotEmpty()
-  createdAt: Date;
 }
\ No newline at end of file
diff --git a/libs/dtos/src/dtos/generics/creddef.record.dto.ts b/libs/dtos/src/dtos/generics/creddef.record.dto.ts
index c4ade28c..70f29373 100644
--- a/libs/dtos/src/dtos/generics/creddef.record.dto.ts
+++ b/libs/dtos/src/dtos/generics/creddef.record.dto.ts
@@ -1,4 +1,5 @@
 import { IsNotEmpty, IsString } from "class-validator";
+import { BaseRecordDto } from "./base.record.dto";
 
 
 // INFO: should cover:
@@ -7,10 +8,7 @@ import { IsNotEmpty, IsString } from "class-validator";
 // 2. create credential definition response
 
 
-export class CreddefRecordDto {
-  @IsNotEmpty()
-  @IsString()
-  credentialDefinitionId: string;
+export class CreddefRecordDto extends BaseRecordDto {
 
   @IsNotEmpty()
   @IsString()
diff --git a/libs/dtos/src/dtos/generics/credential.record.dto.ts b/libs/dtos/src/dtos/generics/credential.record.dto.ts
index 4ca5d571..587a46d2 100644
--- a/libs/dtos/src/dtos/generics/credential.record.dto.ts
+++ b/libs/dtos/src/dtos/generics/credential.record.dto.ts
@@ -7,6 +7,7 @@ import {
 } from "class-validator";
 import { Type } from "class-transformer";
 import { IssueCredentialAttributes } from "../requests/issue.credential.request.dto";
+import { BaseRecordDto } from "./base.record.dto";
 
 
 // INFO: should cover:
@@ -16,25 +17,25 @@ import { IssueCredentialAttributes } from "../requests/issue.credential.request.
 
 
 
-export class Credential {
-  @IsNotEmpty()
-  @IsString()
-  credentialRecordType: string;
+// export class Credential extends BaseRecordDto {
+//   @IsNotEmpty()
+//   @IsString()
+//   credentialRecordType: string;
 
-  @IsNotEmpty()
-  @IsString()
-  credentialRecordId: string;
-}
+//   @IsNotEmpty()
+//   @IsString()
+//   credentialRecordId: string;
+// }
 
-export class CredentialRecordDto {
-  @IsArray()
-  @ValidateNested({ each: true })
-  @Type(() => Credential)
-  credentials?: Array<Credential>;
+export class CredentialRecordDto extends BaseRecordDto {
+  // @IsArray()
+  // @ValidateNested({ each: true })
+  // @Type(() => Credential)
+  // credentials?: Array<Credential>;
 
   @IsNotEmpty()
   @IsString()
-  credentialId: string;
+  credentialRecordType: string;
 
   @IsString()
   connectionId?: string;
@@ -43,8 +44,4 @@ export class CredentialRecordDto {
   @ValidateNested({ each: true })
   @Type(() => IssueCredentialAttributes)
   attributes?: Array<IssueCredentialAttributes>;
-
-  @IsNotEmpty()
-  @IsDateString()
-  createdAt: Date;
 }
diff --git a/libs/dtos/src/dtos/generics/proof.record.dto.ts b/libs/dtos/src/dtos/generics/proof.record.dto.ts
index 5a71b0cd..37ce14ce 100644
--- a/libs/dtos/src/dtos/generics/proof.record.dto.ts
+++ b/libs/dtos/src/dtos/generics/proof.record.dto.ts
@@ -3,6 +3,7 @@ import {
   IsNotEmpty, 
   IsString 
 } from "class-validator";
+import { BaseRecordDto } from "./base.record.dto";
 
 
 // INFO: should cover:
@@ -11,22 +12,11 @@ import {
 // 2. get proof response
 // 3. issue proof response
 
-export class ProofRecordDto {
-  @IsString()
-  @IsNotEmpty()
-  proofId: string;
-
+export class ProofRecordDto extends BaseRecordDto {
   @IsString()
   connectionId?: string;
 
   @IsString()
   @IsNotEmpty()
   state: string;
-
-  @IsDateString()
-  updatedAt?: Date;
-
-  @IsNotEmpty()
-  @IsDateString()
-  createdAt: Date;
 }
diff --git a/libs/dtos/src/dtos/generics/schema.record.dto.ts b/libs/dtos/src/dtos/generics/schema.record.dto.ts
index 2c4e889b..bc5d219a 100644
--- a/libs/dtos/src/dtos/generics/schema.record.dto.ts
+++ b/libs/dtos/src/dtos/generics/schema.record.dto.ts
@@ -1,4 +1,5 @@
 import { IsDateString, IsNotEmpty, IsString } from "class-validator";
+import { BaseRecordDto } from "./base.record.dto";
 
 
 // INFO: should cover:
@@ -6,11 +7,7 @@ import { IsDateString, IsNotEmpty, IsString } from "class-validator";
 // 1. create schema response
 // 2. get schema response
 
-export class SchemaRecordDto {
-  @IsNotEmpty()
-  @IsString()
-  schemaId: string;
-
+export class SchemaRecordDto extends BaseRecordDto {
   @IsString()
   @IsNotEmpty()
   name: string;
@@ -22,9 +19,6 @@ export class SchemaRecordDto {
   @IsString()
   version: string;
 
-  @IsDateString()
-  updatedAt?: Date;
-
   @IsString()
   issuerId?: string;
 
diff --git a/libs/dtos/src/dtos/generics/connection.ref.dto.ts b/libs/dtos/src/dtos/requests/connection.req.dto.ts
similarity index 87%
rename from libs/dtos/src/dtos/generics/connection.ref.dto.ts
rename to libs/dtos/src/dtos/requests/connection.req.dto.ts
index a935be7c..2c63d34c 100644
--- a/libs/dtos/src/dtos/generics/connection.ref.dto.ts
+++ b/libs/dtos/src/dtos/requests/connection.req.dto.ts
@@ -6,7 +6,7 @@ import { IsNotEmpty, IsString } from "class-validator";
 // 1. get connection request
 
 
-export class ConnectionRefDto {
+export class ConnectionReqDto {
   //@example 6464b521-005a-4379-91e0-a3692b31cafd
   @IsNotEmpty()
   @IsString()
diff --git a/libs/dtos/src/dtos/generics/creddef.ref.dto.ts b/libs/dtos/src/dtos/requests/creddef.req.dto.ts
similarity index 86%
rename from libs/dtos/src/dtos/generics/creddef.ref.dto.ts
rename to libs/dtos/src/dtos/requests/creddef.req.dto.ts
index 636e0fae..37284a40 100644
--- a/libs/dtos/src/dtos/generics/creddef.ref.dto.ts
+++ b/libs/dtos/src/dtos/requests/creddef.req.dto.ts
@@ -5,7 +5,7 @@ import { IsNotEmpty, IsString } from "class-validator";
 // 1. get credential definition request
 
 
-export class CreddefRefDto {
+export class CreddefReqDto {
   @IsNotEmpty()
   @IsString()
   credentialDefinitionId: string;
diff --git a/libs/dtos/src/dtos/generics/credential.ref.dto.ts b/libs/dtos/src/dtos/requests/credential.req.dto.ts
similarity index 88%
rename from libs/dtos/src/dtos/generics/credential.ref.dto.ts
rename to libs/dtos/src/dtos/requests/credential.req.dto.ts
index 16efe77a..c2b6dcd8 100644
--- a/libs/dtos/src/dtos/generics/credential.ref.dto.ts
+++ b/libs/dtos/src/dtos/requests/credential.req.dto.ts
@@ -9,7 +9,7 @@ import { IsNotEmpty, IsString } from "class-validator";
 
 
 
-export class CredentialRefDto {
+export class CredentialReqDto {
   //@example cf8395a5-9a53-4e06-8a5d-04e0fc00ca04
   @IsNotEmpty()
   @IsString()
diff --git a/libs/dtos/src/dtos/generics/proof.ref.dto.ts b/libs/dtos/src/dtos/requests/proof.req.dto.ts
similarity index 90%
rename from libs/dtos/src/dtos/generics/proof.ref.dto.ts
rename to libs/dtos/src/dtos/requests/proof.req.dto.ts
index a90a890b..01a8d2c8 100644
--- a/libs/dtos/src/dtos/generics/proof.ref.dto.ts
+++ b/libs/dtos/src/dtos/requests/proof.req.dto.ts
@@ -7,7 +7,7 @@ import { IsNotEmpty, IsString } from "class-validator";
 // 2. decline proof request
 // 3. accept proof request
 
-export class ProofRefDto {
+export class ProofReqDto {
   @IsString()
   @IsNotEmpty()
   proofRecordId: string;
diff --git a/libs/dtos/src/dtos/generics/schema.ref.dto.ts b/libs/dtos/src/dtos/requests/schema.req.dto.ts
similarity index 90%
rename from libs/dtos/src/dtos/generics/schema.ref.dto.ts
rename to libs/dtos/src/dtos/requests/schema.req.dto.ts
index 8bc0debe..6902b704 100644
--- a/libs/dtos/src/dtos/generics/schema.ref.dto.ts
+++ b/libs/dtos/src/dtos/requests/schema.req.dto.ts
@@ -5,7 +5,7 @@ import { IsNotEmpty, IsString } from "class-validator";
 
 // 1. get schema request
 
-export class SchemaRefDto {
+export class SchemaReqDto {
   //@example "did:indy:LEDNGER:SXM76gQwRnjkgoz2oBnGjd/anoncreds/v0/SCHEMA/test schema/1.0.2"
   @IsNotEmpty()
   @IsString()
diff --git a/libs/dtos/src/dtos/responses/make.basic.message.response.dto.ts b/libs/dtos/src/dtos/responses/make.basic.message.response.dto.ts
index b1680199..720dfca6 100644
--- a/libs/dtos/src/dtos/responses/make.basic.message.response.dto.ts
+++ b/libs/dtos/src/dtos/responses/make.basic.message.response.dto.ts
@@ -1,10 +1,7 @@
 import { IsNotEmpty, IsString } from "class-validator";
+import { BaseRecordDto } from "../generics/base.record.dto";
 
-export class MakeBasicMessageResponseDto {
-  @IsNotEmpty()
-  @IsString()
-  id: string;
-
+export class MakeBasicMessageResponseDto extends BaseRecordDto {
   // @example 6464b521-005a-4379-91e0-a3692b31cafd
   @IsNotEmpty()
   @IsString()
diff --git a/libs/dtos/src/events/dtoToEventTransformer.ts b/libs/dtos/src/events/dtoToEventTransformer.ts
index 328e56b2..32a4f9e5 100644
--- a/libs/dtos/src/events/dtoToEventTransformer.ts
+++ b/libs/dtos/src/events/dtoToEventTransformer.ts
@@ -11,24 +11,24 @@ import { ConnectionUnsupportedTypeError } from "../errors/connection.unsupported
 import { CreateCredentialDefinitionRequsetDto } from "../dtos/requests/create.credential.definition.request.dto";
 import { CreateInvitationResponseDto } from "../dtos/responses/create.invitation.response.dto";
 import { CreateSchemaRequestDto } from "../dtos/requests/create.schema.request.dto";
-import { ConnectionRefDto } from "../dtos/generics/connection.ref.dto";
+import { ConnectionReqDto } from "../dtos/requests/connection.req.dto";
 import { IssueCredentialRequestDto } from "../dtos/requests/issue.credential.request.dto";
 import { IssueProofRequestDto } from "../dtos/requests/issue.proof.request.dto";
-import { CredentialRefDto } from "../dtos/generics/credential.ref.dto";
+import { CredentialReqDto } from "../dtos/requests/credential.req.dto";
 import { MakeBasicMessageResponseDto } from "../dtos/responses/make.basic.message.response.dto";
 import { MakeBasicMessageRequestDto } from "../dtos/requests/make.basic.message.request.dto";
-import { ProofRefDto } from "../dtos/generics/proof.ref.dto";
+import { ProofReqDto } from "../dtos/requests/proof.req.dto";
 import { ProofRecordDto } from "../dtos/generics/proof.record.dto";
 
 export const makeEvent = (payload: {
   data:
     | null
     | IssueProofRequestDto
-    | CredentialRefDto
+    | CredentialReqDto
     | CreateInvitationResponseDto
-    | ConnectionRefDto
+    | ConnectionReqDto
     | CreateSchemaRequestDto
-    | ProofRefDto
+    | ProofReqDto
     | CreateSchemaRequestDto
     | CreateCredentialDefinitionRequsetDto
     | ProofRecordDto
diff --git a/libs/dtos/src/index.ts b/libs/dtos/src/index.ts
index f5021a4d..b3ab1120 100644
--- a/libs/dtos/src/index.ts
+++ b/libs/dtos/src/index.ts
@@ -2,17 +2,18 @@ export * from "./dtos.module";
 
 
 export * from "./dtos/generics/connection.record.dto";
-export * from "./dtos/generics/connection.ref.dto";
 export * from "./dtos/generics/creddef.record.dto";
-export * from "./dtos/generics/creddef.ref.dto";
 export * from "./dtos/generics/credential.record.dto";
-export * from "./dtos/generics/credential.ref.dto";
 export * from "./dtos/generics/proof.record.dto";
-export * from "./dtos/generics/proof.ref.dto";
 export * from "./dtos/generics/schema.record.dto";
-export * from "./dtos/generics/schema.ref.dto";
 
 
+export * from "./dtos/requests/connection.req.dto";
+export * from "./dtos/requests/creddef.req.dto";
+export * from "./dtos/requests/credential.req.dto";
+export * from "./dtos/requests/proof.req.dto";
+export * from "./dtos/requests/schema.req.dto";
+
 export * from "./dtos/requests/create.schema.request.dto";
 export * from "./dtos/requests/create.credential.definition.request.dto";
 export * from "./dtos/requests/issue.credential.request.dto";
-- 
GitLab