module Config.Pages.Services.Records.NixBuilds exposing (..)

import Config.Helpers.Converters exposing (formatName)
import Config.Pages.Services.Types exposing (..)
import Config.Style.Colour.Helpers exposing (colourTheme)
import Config.Style.Transitions exposing (hoverFontDarkOrange, transitionStyleMedium)
import Element as E exposing (..)
import Element.Font as F exposing (..)
import Route.Path as Path
import Config.Helpers.Cards.Inner.Helpers exposing (detailBodyLink)
import Config.Style.Colour.Helpers exposing (ThemeColor(..))


servicesNixBuilds : Service msg
servicesNixBuilds =
    let
        name : String
        name =
            "Custom Nix Configs"
    in
    { serviceImage = formatName name
    , serviceLink = Path.toString Path.Services_Nix
    , serviceName = name
    , serviceRate = "$40/hr"
    , isNewTabLink = False
    , serviceDescription =
        [ { point = "Receive a custom NixOS configuration." }
        , { point = "Help with transitioning from other operating systems to NixOS." }
        , { point = "Assistance with the Nix programming language." }
        , { point = "Receive unlimited revisions before finalization." }
        ]
    , serviceArticle =
        { articleTitles =
            { title1 = "What You Get"
            , title2 = "Requirements"
            , title3 = "Example"
            , title4 = ""
            , title5 = ""
            , title6 = ""
            , title7 = ""
            , title8 = ""
            , title9 = ""
            , title10 = ""
            }
        , articleParagraph =
            { paragraph1 =
                [ text "NixOS has become popular in my community, with many people choosing to explore it over Windows, MacOS, and other Linux distributions. Naturally, as a consequence of this, I receive numerous requests for help regarding the Nix programming language and NixOS system configuration. So, to fast-track newcomers and to make my life a little bit easier for both of us, I'm offering to build custom NixOS configurations for interested clients. "
                , text "If you're interested in having a custom Nix configuration, or having a pre-existing configuration refactored, please inquire at "
                , link
                    []
                    { url = "mailto:"
                    , label = detailBodyLink TextLightOrange "nick@upRootNutrition.com"
                    }
                , text "."
                ]
            , paragraph2 = [ text "Below is an example of a nix flake that I wrote for the devshell that I used to manage and isolate the development environment for this site. All of the packages, pre-defined settings, and tooling used for this site are managed through this flake." ]
            , paragraph3 =
                [ text "The source code for this website's server is viewable on "
                , newTabLink []
                    { url = "https://gitlab.com/upRootNutrition/dotfiles"
                    , label =
                        el
                            [ F.color colourTheme.textLightOrange
                            , hoverFontDarkOrange
                            , transitionStyleMedium
                            ]
                        <|
                            text "Gitlab"
                    }
                ]
            , paragraph4 = []
            }
        , articleListEntries =
            { list1 =
                [ "A NixOS configuration written to your specifications."
                , "Two refactors for the purposes of improving readability."
                , "Instructions for how to use and build upon your configuration."
                ]
            , list2 =
                [ "A comprehensive list of packages you'd like included."
                , "A list of configuration architecture specifications."
                , "Any bespoke configuration you want included."
                ]
            , list3 =
                []
            , list4 =
                []
            , list5 =
                []
            , list6 =
                []
            , list7 =
                []
            , list8 =
                []
            , list9 =
                []
            , list10 =
                []
            }
        }
    }
