Skip to content

Commit

Permalink
Move isolated type declarations to separate folder
Browse files Browse the repository at this point in the history
  • Loading branch information
owlmafia committed Dec 8, 2019
1 parent 41d3f59 commit e7f3f30
Show file tree
Hide file tree
Showing 32 changed files with 146 additions and 153 deletions.
9 changes: 3 additions & 6 deletions src/Lib.hs
Expand Up @@ -2,12 +2,11 @@

module Lib (someFunc) where

import OrderQuantity
import Types.OrderQuantity as OrderQuantity
import OrderTakingDomain
import qualified KilogramQuantity
import qualified Types.KilogramQuantity as KilogramQuantity
import Data.Aeson

import UnvalidatedOrderLine
import Types.UnvalidatedOrderLine as UnvalidatedOrderLine

someFunc :: IO ()
someFunc =
Expand All @@ -18,5 +17,3 @@ someFunc =
in
print newstr
-- someFunc = print $ KilogramQuantity.create 2.4


14 changes: 0 additions & 14 deletions src/OrderLine.hs

This file was deleted.

50 changes: 25 additions & 25 deletions src/OrderTakingDomain.hs
@@ -1,38 +1,38 @@
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE DisambiguateRecordFields #-}
{-# LANGUAGE DuplicateTypesFields #-}
{-# LANGUAGE DisambiguateTypesFields #-}

-- TODO rename in OrderTaking.Domain (file too?)
module OrderTakingDomain where

import OrderQuantity
import Types.OrderQuantity as OrderQuantity
-- import qualified Data.List as L (find)
import qualified Data.List as L
import Prelude hiding (lines, map)
import Data.List.NonEmpty as NEL
import qualified PricedOrderLine as POL
import qualified PricedOrder as PO
import qualified OrderAcknowledgment
import qualified OrderAcknowledgmentSent
import qualified Types.PricedOrderLine as POL
import qualified Types.PricedOrder as PO
import qualified Types.OrderAcknowledgment as OrderAcknowledgment
import qualified Types.OrderAcknowledgmentSent as OrderAcknowledgmentSent
import SharedTypes
import PlaceOrderWorkflow
import qualified UnvalidatedOrder
import qualified ValidatedOrder
import qualified OrderId
import String50
import qualified UnvalidatedCustomerInfo
import qualified CustomerInfo
import qualified PersonalName
import qualified CheckedAddress
import qualified Address
import qualified UnvalidatedOrderLine
import qualified OrderLineId
import qualified OrderLine
import qualified UnitQuantity
import qualified KilogramQuantity
import qualified ProductCode
import qualified PricedOrderLine
import Price
import qualified BillingAmount
import qualified Types.UnvalidatedOrder as UnvalidatedOrder
import qualified Types.ValidatedOrder as ValidatedOrder
import qualified Types.OrderId as OrderId
import Types.String50
import qualified Types.UnvalidatedCustomerInfo
import qualified Types.CustomerInfo as CustomerInfo
import qualified Types.PersonalName as PersonalName
import qualified Types.CheckedAddress as CheckedAddress
import qualified Types.Address as Address
import qualified Types.UnvalidatedOrderLine
import qualified Types.OrderLineId as OrderLineId
import qualified Types.OrderLine as OrderLine
import qualified Types.UnitQuantity as UnitQuantity
import qualified Types.KilogramQuantity as KilogramQuantity
import qualified Types.ProductCode as ProductCode
import qualified Types.PricedOrderLine
import Types.Price as Price
import qualified Types.BillingAmount as BillingAmount

-- data Foo = Foo {
-- myField :: Int
Expand Down
14 changes: 0 additions & 14 deletions src/Payments.hs

This file was deleted.

49 changes: 24 additions & 25 deletions src/PlaceOrderWorkflow.hs
Expand Up @@ -5,32 +5,31 @@ import Prelude hiding (lines, map, sequence)
import Data.List.NonEmpty as NE
import qualified NonEmptyExt as NEE
import SharedTypes
import qualified ValidatedOrder
import qualified UnvalidatedOrder
import qualified PricedOrder
import qualified OrderLine
import qualified OrderId
import qualified BillingAmount
import qualified PricedOrder as PO
import qualified OrderAcknowledgment
import qualified OrderAcknowledgmentSent
import qualified CustomerInfo
import qualified Address
import qualified OrderLineId
import qualified UnvalidatedOrderLine
import qualified CheckedAddress
import qualified UnvalidatedCustomerInfo
import qualified PersonalName
import String50
import qualified ProductCode
import OrderQuantity
import qualified UnitQuantity
import qualified KilogramQuantity
import qualified PricedOrderLine as POL
import Price
import qualified Types.ValidatedOrder as ValidatedOrder
import qualified Types.UnvalidatedOrder as UnvalidatedOrder
import qualified Types.OrderLine as OrderLine
import qualified Types.OrderId as OrderId
import qualified Types.BillingAmount as BillingAmount
import qualified Types.PricedOrder as PO
import qualified Types.OrderAcknowledgment as OrderAcknowledgment
import qualified Types.OrderAcknowledgmentSent as OrderAcknowledgmentSent
import qualified Types.CustomerInfo as CustomerInfo
import qualified Types.Address as Address
import qualified Types.OrderLineId as OrderLineId
import qualified Types.UnvalidatedOrderLine as UnvalidatedOrderLine
import qualified Types.CheckedAddress as CheckedAddress
import qualified Types.UnvalidatedCustomerInfo as UnvalidatedCustomerInfo
import qualified Types.PersonalName as PersonalName
import Types.String50
import qualified Types.ProductCode as ProductCode
import Types.OrderQuantity as OrderQuantity
import qualified Types.UnitQuantity as UnitQuantity
import qualified Types.KilogramQuantity as KilogramQuantity
import qualified Types.PricedOrderLine as POL
import Types.Price as Price
import Control.Arrow(left)

type OrderPlaced = PricedOrder.PricedOrder
type OrderPlaced = PO.PricedOrder
type PlaceOrder = Command UnvalidatedOrder.UnvalidatedOrder

data BillableOrderPlaced = BillableOrderPlaced {
Expand All @@ -39,7 +38,7 @@ data BillableOrderPlaced = BillableOrderPlaced {
amountToBill :: BillingAmount.BillingAmount
}

data Order = Unvalidated UnvalidatedOrder.UnvalidatedOrder | Validated ValidatedOrder.ValidatedOrder | Priced PricedOrder.PricedOrder
data Order = Unvalidated UnvalidatedOrder.UnvalidatedOrder | Validated ValidatedOrder.ValidatedOrder | Priced PO.PricedOrder

data PlaceOrderEvents = PlaceOrderEvents {
acknowledgmentSent :: OrderAcknowledgment.OrderAcknowledgment,
Expand Down
2 changes: 1 addition & 1 deletion src/SharedTypes.hs
@@ -1,7 +1,7 @@
module SharedTypes where

import Data.Time
import String50
import Types.String50

newtype ProductId = ProductId String deriving (Eq, Show)
newtype CustomerId = CustomerId Int deriving (Show)
Expand Down
4 changes: 2 additions & 2 deletions src/Address.hs → src/Types/Address.hs
@@ -1,9 +1,9 @@
module Address(
module Types.Address(
Address(Address)
) where

import SharedTypes
import String50
import Types.String50

data Address = Address {
addressLine1 :: String50,
Expand Down
3 changes: 1 addition & 2 deletions src/BillingAmount.hs → src/Types/BillingAmount.hs
@@ -1,4 +1,4 @@
module BillingAmount(
module Types.BillingAmount(
BillingAmount(BillingAmount), create, value
) where

Expand All @@ -9,4 +9,3 @@ create = BillingAmount

value :: BillingAmount -> Double
value (BillingAmount value) = value

2 changes: 1 addition & 1 deletion src/CheckedAddress.hs → src/Types/CheckedAddress.hs
@@ -1,4 +1,4 @@
module CheckedAddress where
module Types.CheckedAddress where

import SharedTypes

Expand Down
8 changes: 4 additions & 4 deletions src/CustomerInfo.hs → src/Types/CustomerInfo.hs
@@ -1,10 +1,10 @@
module CustomerInfo where
module Types.CustomerInfo where

import String50
import Types.String50
import SharedTypes
import PersonalName
import Types.PersonalName

data CustomerInfo = CustomerInfo {
name :: PersonalName.PersonalName,
name :: PersonalName,
emailAddress :: EmailAddress
} deriving (Eq, Show)
4 changes: 2 additions & 2 deletions src/OrderDto.hs → src/Types/DTO/OrderDto.hs
@@ -1,6 +1,6 @@
module OrderDto where
module Types.DTO.OrderDto where

import OrderLineDto
import Types.DTO.OrderLineDto

data OrderDto = OrderDto {
orderId :: String,
Expand Down
2 changes: 1 addition & 1 deletion src/OrderLineDto.hs → src/Types/DTO/OrderLineDto.hs
@@ -1,4 +1,4 @@
module OrderLineDto where
module Types.DTO.OrderLineDto where

data OrderLineDto = OrderLineDto {
orderLineId :: Int,
Expand Down
2 changes: 1 addition & 1 deletion src/KilogramQuantity.hs → src/Types/KilogramQuantity.hs
@@ -1,4 +1,4 @@
module KilogramQuantity(
module Types.KilogramQuantity(
KilogramQuantity, create, value
) where

Expand Down
@@ -1,4 +1,4 @@
module OrderAcknowledgment where
module Types.OrderAcknowledgment where

import SharedTypes

Expand Down
@@ -1,10 +1,10 @@
module OrderAcknowledgmentSent where
module Types.OrderAcknowledgmentSent where

import SharedTypes
import qualified OrderId
import Types.OrderId

data OrderAcknowledgmentSent = OrderAcknowledgmentSent {
orderId :: OrderId.OrderId,
orderId :: OrderId,
emailAddress :: EmailAddress
}


2 changes: 1 addition & 1 deletion src/OrderId.hs → src/Types/OrderId.hs
@@ -1,4 +1,4 @@
module OrderId(
module Types.OrderId(
OrderId, create, value
) where

Expand Down
14 changes: 14 additions & 0 deletions src/Types/OrderLine.hs
@@ -0,0 +1,14 @@
module Types.OrderLine where

import SharedTypes
import Types.OrderLineId
import Types.OrderQuantity
import Types.ProductCode
import Types.OrderId

data OrderLine = OrderLine {
orderLineId :: OrderLineId,
orderId :: OrderId,
productCode :: ProductCode,
quantity :: OrderQuantity
} deriving (Eq, Show)
2 changes: 1 addition & 1 deletion src/OrderLineId.hs → src/Types/OrderLineId.hs
@@ -1,4 +1,4 @@
module OrderLineId(
module Types.OrderLineId(
OrderLineId, create, value
) where

Expand Down
6 changes: 3 additions & 3 deletions src/OrderQuantity.hs → src/Types/OrderQuantity.hs
@@ -1,10 +1,10 @@
module OrderQuantity(
module Types.OrderQuantity(
OrderQuantity(UnitQuantity, KilogramQuantity),
value
) where

import qualified UnitQuantity
import qualified KilogramQuantity
import qualified Types.UnitQuantity as UnitQuantity
import qualified Types.KilogramQuantity as KilogramQuantity

data OrderQuantity = UnitQuantity UnitQuantity.UnitQuantity |
KilogramQuantity KilogramQuantity.KilogramQuantity deriving (Eq, Show)
Expand Down
14 changes: 14 additions & 0 deletions src/Types/Payment.hs
@@ -0,0 +1,14 @@
module Types.Payment where

newtype CheckNumber = CheckNumber Int deriving (Show)
newtype CardNumber = CardNumber String deriving (Show)
newtype PaymentAmount = PaymentAmount Double

data PaymentMethod = Cash | Check CheckNumber | Card CardNumber
data Currency = EUR | USD

data Payment = Payment {
amount :: PaymentAmount,
currency :: Currency,
method :: PaymentMethod
}
4 changes: 2 additions & 2 deletions src/PersonalName.hs → src/Types/PersonalName.hs
@@ -1,6 +1,6 @@
module PersonalName where
module Types.PersonalName where

import String50
import Types.String50

data PersonalName = PersonalName {
firstName :: String50,
Expand Down
2 changes: 1 addition & 1 deletion src/Price.hs → src/Types/Price.hs
@@ -1,4 +1,4 @@
module Price(
module Types.Price(
Price(Price), create, multiply
) where

Expand Down
12 changes: 6 additions & 6 deletions src/PricedOrder.hs → src/Types/PricedOrder.hs
@@ -1,12 +1,12 @@
module PricedOrder where
module Types.PricedOrder where

import SharedTypes
import PricedOrderLine
import Types.PricedOrderLine
import Data.List.NonEmpty
import OrderId
import CustomerInfo
import Address
import BillingAmount
import Types.OrderId
import Types.CustomerInfo
import Types.Address
import Types.BillingAmount

data PricedOrder = PricedOrder {
orderId :: OrderId,
Expand Down
12 changes: 6 additions & 6 deletions src/PricedOrderLine.hs → src/Types/PricedOrderLine.hs
@@ -1,11 +1,11 @@
module PricedOrderLine where
module Types.PricedOrderLine where

import SharedTypes
import OrderId
import OrderLineId
import ProductCode
import Price
import OrderQuantity
import Types.OrderId
import Types.OrderLineId
import Types.ProductCode
import Types.Price
import Types.OrderQuantity

data PricedOrderLine = PricedOrderLine {
orderLineId :: OrderLineId,
Expand Down
2 changes: 1 addition & 1 deletion src/ProductCode.hs → src/Types/ProductCode.hs
@@ -1,4 +1,4 @@
module ProductCode(
module Types.ProductCode(
ProductCode(Widget, Gizmo), create, value -- exporting data constructors to be able to pattern match
) where

Expand Down
2 changes: 1 addition & 1 deletion src/String50.hs → src/Types/String50.hs
@@ -1,4 +1,4 @@
module String50(
module Types.String50(
String50, string50, value
) where

Expand Down

0 comments on commit e7f3f30

Please sign in to comment.