{-# LANGUAGE TemplateHaskell #-}

module Deck.Category (
    -- * Types
    Category (..),
    CategoryName,
    Copies,

    -- * Lenses
    name,
    copies,
) where

import Control.Lens

import Util

type Copies = PositiveNumber
type CategoryName = NonEmptyText

data Category = Category
    { _name :: !CategoryName
    , _copies :: !Copies
    }
    deriving (Show, Eq, Ord)

makeLenses ''Category