/**
 * 系统账户算力同步事件
 * 用于将系统账户（运营、省、市、总部）的算力同步到 mining-service
 */
export class SystemAccountSyncedEvent {
  static readonly EVENT_TYPE = 'SystemAccountSynced';
  static readonly AGGREGATE_TYPE = 'SystemAccount';

  constructor(
    public readonly accountType: string, // OPERATION / PROVINCE / CITY / HEADQUARTERS
    public readonly regionCode: string | null, // 省/市代码，如 440000, 440100
    public readonly name: string,
    public readonly contributionBalance: string,
    public readonly createdAt: Date,
  ) {}

  toPayload(): Record<string, any> {
    return {
      eventType: SystemAccountSyncedEvent.EVENT_TYPE,
      accountType: this.accountType,
      regionCode: this.regionCode,
      name: this.name,
      contributionBalance: this.contributionBalance,
      createdAt: this.createdAt.toISOString(),
    };
  }
}
