import { Injectable, OnModuleInit, OnModuleDestroy, Logger } from '@nestjs/common';
import { PrismaClient } from './generated';

/**
 * 预种计划独立 Prisma 服务
 *
 * 连接与主 PrismaService 相同的数据库，但使用独立的 Prisma Client，
 * 仅包含预种追踪表的类型定义（pre_planting_synced_orders 等）。
 *
 * 预种的算力分配结果仍通过主 PrismaService 写入 contribution_accounts 等表。
 */
@Injectable()
export class PrePlantingPrismaService
  extends PrismaClient
  implements OnModuleInit, OnModuleDestroy
{
  private readonly logger = new Logger(PrePlantingPrismaService.name);

  async onModuleInit() {
    await this.$connect();
    this.logger.log('Pre-planting Prisma client connected');
  }

  async onModuleDestroy() {
    await this.$disconnect();
    this.logger.log('Pre-planting Prisma client disconnected');
  }
}
