@@ -7,6 +7,7 @@ module App.Types
7
7
St (.. ),
8
8
newSt ,
9
9
Asset (.. ),
10
+ newOrderId ,
10
11
newAsset ,
11
12
verifyAsset ,
12
13
newFieldPair ,
@@ -40,6 +41,7 @@ import qualified Data.ByteString.Base64.URL as B64URL
40
41
import qualified Data.ByteString.Lazy as BL
41
42
import Data.Functor.Barbie
42
43
import qualified Data.Generics as Syb
44
+ import qualified Data.Time.Format as TF
43
45
import qualified Data.Version as Version
44
46
import Functora.Cfg
45
47
import Functora.Miso.Prelude
@@ -94,6 +96,7 @@ data St f = St
94
96
stMerchantFeePercent :: Field DynamicField f ,
95
97
stOnlineOrOffline :: OnlineOrOffline ,
96
98
stPreview :: Field Unicode f ,
99
+ stOrderId :: Field Unicode f ,
97
100
stScreen :: Screen ,
98
101
stEnableTheme :: Bool ,
99
102
stTheme :: Theme
@@ -123,6 +126,7 @@ newSt = do
123
126
tele <- newTextField " Functora"
124
127
fee <- newDynamicField $ DynamicFieldNumber 2
125
128
pre <- newTextField " Delivery Calculator"
129
+ oid <- newOrderId ct
126
130
pure
127
131
St
128
132
{ stAssets = mempty ,
@@ -134,6 +138,7 @@ newSt = do
134
138
stMerchantFeePercent = fee & # fieldType .~ FieldTypePercent ,
135
139
stOnlineOrOffline = Online ,
136
140
stPreview = pre & # fieldType .~ FieldTypeTitle ,
141
+ stOrderId = oid,
137
142
stScreen = Main ,
138
143
stEnableTheme = True ,
139
144
stTheme = Theme. Matcha
@@ -160,6 +165,12 @@ instance TraversableB Asset
160
165
161
166
deriving via GenericType (Asset Identity ) instance Binary (Asset Identity )
162
167
168
+ newOrderId :: (MonadIO m ) => UTCTime -> m (Field Unicode Unique )
169
+ newOrderId ct =
170
+ newTextField
171
+ . from @ String @ Unicode
172
+ $ TF. formatTime TF. defaultTimeLocale " %Y%m%d%H%M%S" ct
173
+
163
174
newAsset :: (MonadIO m ) => m (Asset Unique )
164
175
newAsset = do
165
176
link <-
0 commit comments