feature/research-di #1

Merged
behnam merged 37 commits from feature/research-di into develop 2024-11-21 15:50:19 +00:00
25 changed files with 51 additions and 51 deletions
Showing only changes of commit 2d8774ae36 - Show all commits

View File

@ -1,11 +1,11 @@
import getCustomerInvoiceDi from "@/feature/customer-invoice/data/module/customer-invoice-di";
import { customerInvoiceModuleKey } from "@/feature/customer-invoice/invoice-module-key";
import { customerKey } from "@/feature/customer/customer-key";
import getCustomerDi from "@/feature/customer/data/module/customer-di";
import getCustomerInvoiceDi from "@/feature/core/customer-invoice/data/module/customer-invoice-di";
import { customerInvoiceModuleKey } from "@/feature/core/customer-invoice/invoice-module-key";
import { customerKey } from "@/feature/core/customer/customer-key";
import getCustomerDi from "@/feature/core/customer/data/module/customer-di";
import { testModuleKey } from "@/feature/domain/test/test-module-key";
import getTestModule from "@/feature/infra/test/module/test-module";
import getInvoiceDi from "@/feature/invoice/data/module/invoice-di";
import { invoiceModuleKey } from "@/feature/invoice/invoice-module-key";
import getInvoiceDi from "@/feature/core/invoice/data/module/invoice-di";
import { invoiceModuleKey } from "@/feature/core/invoice/invoice-module-key";
import { DependencyContainer } from "tsyringe";
export default function serverDi(module: string): DependencyContainer {

View File

@ -1,7 +1,7 @@
import di from "@/bootstrap/di/init-di";
import { customerInvoiceRepoKey } from "@/feature/customer-invoice/domain/i-repo/customer-invoice-repo";
import fetchCustomerInvoicesUsecase from "@/feature/customer-invoice/domain/usecase/fetch-customer-invoices-usecase";
import CustomerDbRepo from "@/feature/customer/data/repo/customer-db-repo";
import { customerInvoiceRepoKey } from "@/feature/core/customer-invoice/domain/i-repo/customer-invoice-repo";
import fetchCustomerInvoicesUsecase from "@/feature/core/customer-invoice/domain/usecase/fetch-customer-invoices-usecase";
import CustomerDbRepo from "@/feature/core/customer/data/repo/customer-db-repo";
import { DependencyContainer } from "tsyringe";
export default function getCustomerInvoiceDi(): DependencyContainer {

View File

@ -1,7 +1,7 @@
import { formatCurrency } from "@/app/lib/utils";
import { sql } from "@/bootstrap/db/db";
import CustomerInvoice from "@/feature/customer-invoice/domain/entity/customer-invoice";
import CustomerInvoiceRepo from "@/feature/customer-invoice/domain/i-repo/customer-invoice-repo";
import CustomerInvoice from "@/feature/core/customer-invoice/domain/entity/customer-invoice";
import CustomerInvoiceRepo from "@/feature/core/customer-invoice/domain/i-repo/customer-invoice-repo";
import { connection } from "next/server";
import postgres from "postgres";

View File

@ -0,0 +1,7 @@
import CustomerInvoice from "@/feature/core/customer-invoice/domain/entity/customer-invoice"
export default interface CustomerInvoiceRepo {
fetchList(): Promise<CustomerInvoice[]>
}
export const customerInvoiceRepoKey = "customerInvoiceRepoKey"

View File

@ -1,8 +1,8 @@
"use server"
import serverDi from "@/feature/common/server-di";
import CustomerInvoice from "@/feature/customer-invoice/domain/entity/customer-invoice";
import CustomerInvoiceRepo, { customerInvoiceRepoKey } from "@/feature/customer-invoice/domain/i-repo/customer-invoice-repo";
import { customerInvoiceModuleKey } from "@/feature/customer-invoice/invoice-module-key";
import CustomerInvoice from "@/feature/core/customer-invoice/domain/entity/customer-invoice";
import CustomerInvoiceRepo, { customerInvoiceRepoKey } from "@/feature/core/customer-invoice/domain/i-repo/customer-invoice-repo";
import { customerInvoiceModuleKey } from "@/feature/core/customer-invoice/invoice-module-key";
export default function fetchCustomerInvoicesUsecase(): Promise<CustomerInvoice[]> {
const repo = serverDi(customerInvoiceModuleKey).resolve<CustomerInvoiceRepo>(customerInvoiceRepoKey)

View File

@ -1,7 +1,7 @@
import di from "@/bootstrap/di/init-di";
import CustomerDbRepo from "@/feature/customer/data/repo/customer-db-repo";
import { customerRepoKey } from "@/feature/customer/domain/i-repo/customer-repo";
import fetchCustomersUsecase from "@/feature/customer/domain/usecase/fetch-customers-usecase";
import CustomerDbRepo from "@/feature/core/customer/data/repo/customer-db-repo";
import { customerRepoKey } from "@/feature/core/customer/domain/i-repo/customer-repo";
import fetchCustomersUsecase from "@/feature/core/customer/domain/usecase/fetch-customers-usecase";
import { DependencyContainer } from "tsyringe";
export default function getCustomerDi(): DependencyContainer {

View File

@ -1,7 +1,7 @@
import { formatCurrency } from "@/app/lib/utils";
import { sql } from "@/bootstrap/db/db";
import Customer from "@/feature/customer/domain/entity/customer";
import CustomerRepo from "@/feature/customer/domain/i-repo/customer-repo";
import Customer from "@/feature/core/customer/domain/entity/customer";
import CustomerRepo from "@/feature/core/customer/domain/i-repo/customer-repo";
import { connection } from "next/server";
import postgres from "postgres";

View File

@ -1,4 +1,4 @@
import Customer from "@/feature/customer/domain/entity/customer"
import Customer from "@/feature/core/customer/domain/entity/customer"
export default interface CustomerRepo {
fetchList(query: string): Promise<Customer[]>

View File

@ -1,6 +1,6 @@
import serverDi from "@/feature/common/server-di";
import { customerKey } from "@/feature/customer/customer-key";
import CustomerRepo, { customerRepoKey } from "@/feature/customer/domain/i-repo/customer-repo";
import { customerKey } from "@/feature/core/customer/customer-key";
import CustomerRepo, { customerRepoKey } from "@/feature/core/customer/domain/i-repo/customer-repo";
export default function fetchCustomersAmountUsecase(): Promise<number> {
const repo = serverDi(customerKey).resolve<CustomerRepo>(customerRepoKey)

View File

@ -1,9 +1,9 @@
"use server"
import serverDi from "@/feature/common/server-di";
import { customerKey } from "@/feature/customer/customer-key";
import Customer from "@/feature/customer/domain/entity/customer";
import CustomerRepo, { customerRepoKey } from "@/feature/customer/domain/i-repo/customer-repo";
import { customerKey } from "@/feature/core/customer/customer-key";
import Customer from "@/feature/core/customer/domain/entity/customer";
import CustomerRepo, { customerRepoKey } from "@/feature/core/customer/domain/i-repo/customer-repo";
export default function fetchCustomersUsecase(query: string): Promise<Customer[]> {
const repo = serverDi(customerKey).resolve<CustomerRepo>(customerRepoKey)

View File

@ -1,6 +1,6 @@
import di from "@/bootstrap/di/init-di";
import invoiceDbRepo from "@/feature/invoice/data/repo/invoice-db-repo";
import { invoiceRepoKey } from "@/feature/invoice/domain/i-repo/invoice-repo";
import invoiceDbRepo from "@/feature/core/invoice/data/repo/invoice-db-repo";
import { invoiceRepoKey } from "@/feature/core/invoice/domain/i-repo/invoice-repo";
import { DependencyContainer } from "tsyringe";
export default function getInvoiceDi(): DependencyContainer {

View File

@ -1,7 +1,7 @@
import { formatCurrency } from "@/app/lib/utils";
import { sql } from "@/bootstrap/db/db";
import InvoiceRepo from "@/feature/invoice/domain/i-repo/invoice-repo";
import InvoiceStatusSummary from "@/feature/invoice/domain/value-object/invoice-status";
import InvoiceRepo from "@/feature/core/invoice/domain/i-repo/invoice-repo";
import InvoiceStatusSummary from "@/feature/core/invoice/domain/value-object/invoice-status";
import postgres from "postgres";
type InvoiceSummaryDbResponse = {paid: string, pending: string}

View File

@ -1,4 +1,4 @@
import InvoiceStatusSummary from "@/feature/invoice/domain/value-object/invoice-status"
import InvoiceStatusSummary from "@/feature/core/invoice/domain/value-object/invoice-status"
export default interface InvoiceRepo {
fetchAllInvoicesAmount(): Promise<number>

View File

@ -1,7 +1,7 @@
"use server"
import serverDi from "@/feature/common/server-di";
import InvoiceRepo, { invoiceRepoKey } from "@/feature/invoice/domain/i-repo/invoice-repo";
import { invoiceModuleKey } from "@/feature/invoice/invoice-module-key";
import InvoiceRepo, { invoiceRepoKey } from "@/feature/core/invoice/domain/i-repo/invoice-repo";
import { invoiceModuleKey } from "@/feature/core/invoice/invoice-module-key";
export default function fetchAllInvoicesAmountUsecase(): Promise<number> {
const repo = serverDi(invoiceModuleKey).resolve<InvoiceRepo>(invoiceRepoKey)

View File

@ -0,0 +1,9 @@
import serverDi from "@/feature/common/server-di";
import InvoiceRepo, { invoiceRepoKey } from "@/feature/core/invoice/domain/i-repo/invoice-repo";
import InvoiceStatusSummary from "@/feature/core/invoice/domain/value-object/invoice-status";
import { invoiceModuleKey } from "@/feature/core/invoice/invoice-module-key";
export default function fetchInvoicesStatusSummary(): Promise<InvoiceStatusSummary> {
const repo = serverDi(invoiceModuleKey).resolve<InvoiceRepo>(invoiceRepoKey)
return repo.fetchInvoicesStatusSummary()
}

View File

@ -1,7 +0,0 @@
import CustomerInvoice from "@/feature/customer-invoice/domain/entity/customer-invoice"
export default interface CustomerInvoiceRepo {
fetchList(): Promise<CustomerInvoice[]>
}
export const customerInvoiceRepoKey = "customerInvoiceRepoKey"

View File

@ -1,9 +0,0 @@
import serverDi from "@/feature/common/server-di";
import InvoiceRepo, { invoiceRepoKey } from "@/feature/invoice/domain/i-repo/invoice-repo";
import InvoiceStatusSummary from "@/feature/invoice/domain/value-object/invoice-status";
import { invoiceModuleKey } from "@/feature/invoice/invoice-module-key";
export default function fetchInvoicesStatusSummary(): Promise<InvoiceStatusSummary> {
const repo = serverDi(invoiceModuleKey).resolve<InvoiceRepo>(invoiceRepoKey)
return repo.fetchInvoicesStatusSummary()
}

View File

@ -1,4 +1,4 @@
import Customer from "@/feature/customer/domain/entity/customer";
import Customer from "@/feature/core/customer/domain/entity/customer";
import { faker } from "@faker-js/faker";
export default class CustomerFakeFactory {

View File

@ -1,9 +1,9 @@
import CustomerRepo, { customerRepoKey } from "@/feature/customer/domain/i-repo/customer-repo";
import CustomerRepo, { customerRepoKey } from "@/feature/core/customer/domain/i-repo/customer-repo";
import { getMock } from "@/test/common/mock/mock-factory";
import { describe } from "vitest";
import { faker } from "@faker-js/faker";
import CustomerFakeFactory from "@/test/common/fake-factory/customer/customer-fake-factory";
import fetchCustomersUsecase from "@/feature/customer/domain/usecase/fetch-customers-usecase";
import fetchCustomersUsecase from "@/feature/core/customer/domain/usecase/fetch-customers-usecase";
import mockDi from "@/test/common/mock/mock-di";
/* -------------------------------------------------------------------------- */
/* Faking */