modules/FeedProcessor/AuditLog/Message/Cardinality.psm1

using module '..\..\..\Enums.psm1'
using module '..\..\..\Helper\ObjectHelper.psm1'
using module '..\..\..\Helper\DateTimeHelper.psm1'

class Cardinality{
    [datetime] $group
    [int] $messages
    [int] $fixtures
    [int] $markets
    [int] $outcomes
    [int] $other

    Cardinality(){
        $this.messages = 1
        $this.fixtures = 0
        $this.markets = 0
        $this.outcomes = 0
        $this.other = 0
    }

    Cardinality([int] $fixtures, [int] $markets, [int] $outcomes, [int] $other){
        $this.Cardinality()

        $this.fixtures = $fixtures
        $this.markets = $markets
        $this.outcomes = $outcomes
        $this.other = $other
    }

    [Cardinality] Copy(){
        $cardinality = [Cardinality]::new()

        $cardinality.group = $this.group
        $cardinality.messages = $this.messages
        $cardinality.fixtures = $this.fixtures
        $cardinality.markets = $this.markets
        $cardinality.outcomes = $this.outcomes
        $cardinality.other = $this.other

        return $cardinality
    }
}