@@ -7,6 +7,7 @@ module App.Types
77 St (.. ),
88 newSt ,
99 Asset (.. ),
10+ newOrderId ,
1011 newAsset ,
1112 verifyAsset ,
1213 newFieldPair ,
@@ -40,6 +41,7 @@ import qualified Data.ByteString.Base64.URL as B64URL
4041import qualified Data.ByteString.Lazy as BL
4142import Data.Functor.Barbie
4243import qualified Data.Generics as Syb
44+ import qualified Data.Time.Format as TF
4345import qualified Data.Version as Version
4446import Functora.Cfg
4547import Functora.Miso.Prelude
@@ -94,6 +96,7 @@ data St f = St
9496 stMerchantFeePercent :: Field DynamicField f ,
9597 stOnlineOrOffline :: OnlineOrOffline ,
9698 stPreview :: Field Unicode f ,
99+ stOrderId :: Field Unicode f ,
97100 stScreen :: Screen ,
98101 stEnableTheme :: Bool ,
99102 stTheme :: Theme
@@ -123,6 +126,7 @@ newSt = do
123126 tele <- newTextField " Functora"
124127 fee <- newDynamicField $ DynamicFieldNumber 2
125128 pre <- newTextField " Delivery Calculator"
129+ oid <- newOrderId ct
126130 pure
127131 St
128132 { stAssets = mempty ,
@@ -134,6 +138,7 @@ newSt = do
134138 stMerchantFeePercent = fee & # fieldType .~ FieldTypePercent ,
135139 stOnlineOrOffline = Online ,
136140 stPreview = pre & # fieldType .~ FieldTypeTitle ,
141+ stOrderId = oid,
137142 stScreen = Main ,
138143 stEnableTheme = True ,
139144 stTheme = Theme. Matcha
@@ -160,6 +165,12 @@ instance TraversableB Asset
160165
161166deriving via GenericType (Asset Identity ) instance Binary (Asset Identity )
162167
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+
163174newAsset :: (MonadIO m ) => m (Asset Unique )
164175newAsset = do
165176 link <-
0 commit comments