#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

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

FROM mcr.microsoft.com/dotnet/runtime:7.0
WORKDIR /app
COPY --from=publish /app/publish .
# --- Update your settings ---

ENV 
	#-- basic
	basic_Username = '' \
	basic_Password = '' \
	basic_LoginURI = 'secondlife' \ 
	#-- commands
	commands_AllowFundsCommands = 'false' \
	commands_AllowIMcontrol = 'false' \
	commands_SharedSecret = 'examplecode' \
	commands_EnableMasterControls = 'true' \
	commands_MastersCSV = 'Madpeter Zond' \
	commands_EnforceTimeWindow = 'false' \
	commands_TimeWindowSecs = 35 \
	#-- datastore
	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
	discord_Enabled = 'false' \
	discord_ServerID = '' \
	discord_ClientToken = '' \
	discord_AllowDiscordCommands = 'false' \
	#-- events
	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
	homebound_Enabled = 'false' \
	homebound_HomeSimSlUrl = '' \
	homebound_BackupSimSLUrl = '' \
	homebound_AtHomeSeekLocation = 'false' \
	homebound_AtBackupSeekLocation = 'false' \
	homebound_AtHomeAutoSitUuid = '00000000-0000-0000-0000-000000000000' \
	#-- http
	http_Enabled = 'false' \
	http_Port = 80 \
	#-- interactions
	Enabled = 'true' \
	AcceptTeleports = 'false' \
	AcceptGroupInvites = 'false' \
	AcceptInventory = 'false' \
	AcceptFriendRequests = 'false' \
	EnableJsonOutputEvents = 'false' \
	JsonOutputEventsTarget = 'none'

	

EXPOSE 80
ENV ASPNETCORE_URLS http://+:80

# --- End of settings ---

ENTRYPOINT ["/app/BetterSecondbot"]