#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.

FROM mcr.microsoft.com/dotnet/runtime:7.0 AS base
WORKDIR /app

FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
WORKDIR /src
COPY ["NuGet.Config", "."]
COPY ["SecondBotEvents/SecondBotEvents.csproj", "SecondBotEvents/"]
COPY ["LibreMetaverse/LibreMetaverse.csproj", "LibreMetaverse/"]
COPY ["LibreMetaverse.StructuredData/LibreMetaverse.StructuredData.csproj", "LibreMetaverse.StructuredData/"]
COPY ["LibreMetaverse.Types/LibreMetaverse.Types.csproj", "LibreMetaverse.Types/"]
RUN dotnet restore "SecondBotEvents/SecondBotEvents.csproj"
COPY . .
WORKDIR "/src/SecondBotEvents"
RUN dotnet build "SecondBotEvents.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "SecondBotEvents.csproj" -c Release -o /app/publish /p:UseAppHost=false

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .

ENV basic_Username = 'SecondbotR5' \
	basic_Password = '' \
	basic_LoginURI = 'secondlife' \ 
	commands_AllowFundsCommands = 'false' \
	commands_AllowIMcontrol = 'false' \
	commands_SharedSecret = 'examplecode' \
	commands_EnableMasterControls = 'true' \
	commands_MastersCSV = 'Madpeter Zond' \
	commands_EnforceTimeWindow = 'false' \
	commands_TimeWindowSecs = 35 \
	commands_Enabled='true' \
	datastore_AutoCleanAvatars = 'true' \
	datastore_AvatarsCleanAfterMins = 10 \
	datastore_LocalChatHistoryLimit = 120 \
	datastore_GroupChatHistoryLimitPerGroup = 50 \
	datastore_ImChatHistoryLimit = 50 \
	datastore_PrefetchGroupMembers = 'true' \
	datastore_PrefetchGroupRoles = 'false' \
	datastore_PrefetchEstateBanlist = 'true' \
	datastore_AutoCleanKeyValueStore = 'true' \
	datastore_CleanKeyValueStoreAfterMins = 10 \
	datastore_CommandHistoryLimit = 30 \
	discord_Enabled = 'false' \
	discord_ServerID = '' \
	discord_ClientToken = '' \
	discord_AllowDiscordCommands = 'false' \
	events_Enabled = 'false' \
	events_GroupMemberJoins = 'false' \
	events_GroupMemberLeaves = 'false' \
	events_GroupMemberEventsGroupUUID = '' \
	events_GuestEntersArea = 'false' \
	events_GuestLeavesArea = 'false' \
	events_GuestTrackingSimname = '' \
	events_GuestTrackingParcelname = '' \
	events_SimAlertMessage = 'false' \
	events_StatusMessage = 'false' \
	events_MoneyEvent = 'false' \
	events_ChangeSim = 'false' \
	events_ChangeParcel = 'false' \
	events_OutputChannel = -1 \
	events_OutputIMuuid = '00000000-0000-0000-0000-000000000000' \
	events_OutputHttpURL = 'none' \
	events_OutputSecret = 'notset' \
	homebound_Enabled = 'false' \
	homebound_HomeSimSlUrl = '' \
	homebound_BackupSimSLUrl = '' \
	homebound_AtHomeSeekLocation = 'false' \
	homebound_AtBackupSeekLocation = 'false' \
	homebound_AtHomeAutoSitUuid = '00000000-0000-0000-0000-000000000000' \
	http_Enabled = 'false' \
	http_Port = 80 \
	interaction_Enabled = 'true' \
	interaction_AcceptTeleports = 'false' \
	interaction_AcceptGroupInvites = 'false' \
	interaction_AcceptInventory = 'false' \
	interaction_AcceptFriendRequests = 'false' \
	interaction_EnableJsonOutputEvents = 'false' \
	interaction_JsonOutputEventsTarget = 'none'

EXPOSE 80
ENV ASPNETCORE_URLS http://+:80

ENTRYPOINT ["dotnet", "SecondBotEvents.dll"]