diff --git a/src/config/card-repository-factory.ts b/src/config/card-repository-factory.ts new file mode 100644 index 0000000..6b46566 --- /dev/null +++ b/src/config/card-repository-factory.ts @@ -0,0 +1,13 @@ +import type { CardRepository } from '@/domain/card-repository' +import { MongoCardRepository } from '@/repositories/mongo-card-repository' +import { MysqlCardRepository } from '@/repositories/mysql-card-repository' + +export type RepositoryImpl = 'mysql' | 'mongo' + +export function getCardRepository(): CardRepository { + const impl = (process.env.DB_IMPL ?? 'mysql') as RepositoryImpl + if (impl === 'mongo') { + return new MongoCardRepository() + } + return new MysqlCardRepository() +} \ No newline at end of file