From 5f08b4be66076ebf3fbc69becc148eed911cad72 Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Wed, 4 Jun 2025 09:48:10 +0700 Subject: [PATCH] feat: setup module otp verifications --- .../strings/constants/module.constants.ts | 1 + src/core/strings/constants/table.constants.ts | 1 + .../data/models/otp-verification.model.ts | 35 +++++++++++++++++++ .../services/otp-verification-data.service.ts | 0 .../services/otp-verification-read.service.ts | 0 .../entities/otp-verification.entity.ts | 21 +++++++++++ .../otp-verification-data.orchestrator.ts | 0 .../otp-verification-read.orchestrator.ts | 0 .../dto/otp-verification.dto.ts | 0 .../otp-verification-data.controller.ts | 0 .../otp-verification-read.controller.ts | 0 .../otp-verification.module.ts | 0 12 files changed, 58 insertions(+) create mode 100644 src/modules/configuration/otp-verification/data/models/otp-verification.model.ts create mode 100644 src/modules/configuration/otp-verification/data/services/otp-verification-data.service.ts create mode 100644 src/modules/configuration/otp-verification/data/services/otp-verification-read.service.ts create mode 100644 src/modules/configuration/otp-verification/domain/entities/otp-verification.entity.ts create mode 100644 src/modules/configuration/otp-verification/domain/usecases/otp-verification-data.orchestrator.ts create mode 100644 src/modules/configuration/otp-verification/domain/usecases/otp-verification-read.orchestrator.ts create mode 100644 src/modules/configuration/otp-verification/infrastructure/dto/otp-verification.dto.ts create mode 100644 src/modules/configuration/otp-verification/infrastructure/otp-verification-data.controller.ts create mode 100644 src/modules/configuration/otp-verification/infrastructure/otp-verification-read.controller.ts create mode 100644 src/modules/configuration/otp-verification/otp-verification.module.ts diff --git a/src/core/strings/constants/module.constants.ts b/src/core/strings/constants/module.constants.ts index 032dace..a7b4aa0 100644 --- a/src/core/strings/constants/module.constants.ts +++ b/src/core/strings/constants/module.constants.ts @@ -30,4 +30,5 @@ export enum MODULE_NAME { QUEUE = 'queue', TIME_GROUPS = 'time-groups', + OTP_VERIFICATIONS = 'otp-verification', } diff --git a/src/core/strings/constants/table.constants.ts b/src/core/strings/constants/table.constants.ts index dcdc1a3..edc0b7b 100644 --- a/src/core/strings/constants/table.constants.ts +++ b/src/core/strings/constants/table.constants.ts @@ -45,4 +45,5 @@ export enum TABLE_NAME { QUEUE_BUCKET = 'queue_bucket', TIME_GROUPS = 'time_groups', + OTP_VERIFICATIONS = 'otp_verifications', } diff --git a/src/modules/configuration/otp-verification/data/models/otp-verification.model.ts b/src/modules/configuration/otp-verification/data/models/otp-verification.model.ts new file mode 100644 index 0000000..4db9191 --- /dev/null +++ b/src/modules/configuration/otp-verification/data/models/otp-verification.model.ts @@ -0,0 +1,35 @@ +import { TABLE_NAME } from 'src/core/strings/constants/table.constants'; +import { + OPT_ACTION_TYPE, + OTP_SOURCE, + OtpVerificationEntity, +} from '../../domain/entities/otp-verification.entity'; +import { Column, Entity } from 'typeorm'; +import { BaseModel } from 'src/core/modules/data/model/base.model'; + +@Entity(TABLE_NAME.OTP_VERIFICATIONS) +export class OtpVerificationModel + extends BaseModel + implements OtpVerificationEntity +{ + @Column({ type: 'varchar', nullable: false }) + otp_code: string; + + @Column({ type: 'enum', enum: OPT_ACTION_TYPE }) + action_type: OPT_ACTION_TYPE; + + @Column({ type: 'varchar', nullable: true }) + target_id: string; + + @Column({ type: 'enum', enum: OTP_SOURCE }) + source: OTP_SOURCE; + + @Column({ default: false }) + is_used: boolean; + + @Column({ type: 'bigint', nullable: false }) + expired_at: number; // UNIX timestamp + + @Column({ type: 'bigint', nullable: true }) + verified_at: number; // UNIX timestamp or null +} diff --git a/src/modules/configuration/otp-verification/data/services/otp-verification-data.service.ts b/src/modules/configuration/otp-verification/data/services/otp-verification-data.service.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/modules/configuration/otp-verification/data/services/otp-verification-read.service.ts b/src/modules/configuration/otp-verification/data/services/otp-verification-read.service.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/modules/configuration/otp-verification/domain/entities/otp-verification.entity.ts b/src/modules/configuration/otp-verification/domain/entities/otp-verification.entity.ts new file mode 100644 index 0000000..88e0c9f --- /dev/null +++ b/src/modules/configuration/otp-verification/domain/entities/otp-verification.entity.ts @@ -0,0 +1,21 @@ +import { BaseEntity } from 'src/core/modules/domain/entities//base.entity'; + +export enum OPT_ACTION_TYPE { + CREATE_DISCOUNT = 'CREATE_DISCOUNT', + CANCEL_TRANSACTION = 'CANCEL_TRANSACTION', +} + +export enum OTP_SOURCE { + POS = 'POS', + WEB = 'WEB', +} + +export interface OtpVerificationEntity extends BaseEntity { + otp_code: string; + action_type: OPT_ACTION_TYPE; + target_id: string; + source: OTP_SOURCE; + is_used: boolean; + expired_at: number; + verified_at: number; +} diff --git a/src/modules/configuration/otp-verification/domain/usecases/otp-verification-data.orchestrator.ts b/src/modules/configuration/otp-verification/domain/usecases/otp-verification-data.orchestrator.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/modules/configuration/otp-verification/domain/usecases/otp-verification-read.orchestrator.ts b/src/modules/configuration/otp-verification/domain/usecases/otp-verification-read.orchestrator.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/modules/configuration/otp-verification/infrastructure/dto/otp-verification.dto.ts b/src/modules/configuration/otp-verification/infrastructure/dto/otp-verification.dto.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/modules/configuration/otp-verification/infrastructure/otp-verification-data.controller.ts b/src/modules/configuration/otp-verification/infrastructure/otp-verification-data.controller.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/modules/configuration/otp-verification/infrastructure/otp-verification-read.controller.ts b/src/modules/configuration/otp-verification/infrastructure/otp-verification-read.controller.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/modules/configuration/otp-verification/otp-verification.module.ts b/src/modules/configuration/otp-verification/otp-verification.module.ts new file mode 100644 index 0000000..e69de29