using EventFlow.Aggregates;

namespace Books.Api.Domain.Accounts.Events;

public class AccountCreatedEvent(
    string companyId,
    string accountNumber,
    string name,
    AccountType accountType,
    string? parentId,
    string? description,
    string? vatCodeId,
    bool isSystemAccount,
    string? standardAccountNumber = null) : AggregateEvent<AccountAggregate, AccountId>
{
    public string CompanyId { get; } = companyId;
    public string AccountNumber { get; } = accountNumber;
    public string Name { get; } = name;
    public AccountType AccountType { get; } = accountType;
    public string? ParentId { get; } = parentId;
    public string? Description { get; } = description;
    public string? VatCodeId { get; } = vatCodeId;
    public bool IsSystemAccount { get; } = isSystemAccount;
    /// <summary>
    /// Erhvervsstyrelsens standardkontonummer for SAF-T rapportering.
    /// </summary>
    public string? StandardAccountNumber { get; } = standardAccountNumber;
}
