diff --git a/.github/workflows/pr-winui-build.yml b/.github/workflows/pr-winui-build.yml
index 7d054727..93be3bc4 100644
--- a/.github/workflows/pr-winui-build.yml
+++ b/.github/workflows/pr-winui-build.yml
@@ -8,6 +8,10 @@ on:
- reopened
- ready_for_review
+permissions:
+ contents: read
+ packages: read
+
jobs:
build-winui:
name: Build project (${{ matrix.platform }})
@@ -33,6 +37,9 @@ jobs:
uses: actions/setup-dotnet@v4
with:
dotnet-version: 10.0.x
+ source-url: https://nuget.pkg.github.com/bkaankose/index.json
+ env:
+ NUGET_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Restore WinUI project dependencies
run: dotnet restore Wino.Mail.WinUI/Wino.Mail.WinUI.csproj --configfile nuget.config -p:Platform=${{ matrix.platform }} -p:RuntimeIdentifier=${{ matrix.rid }}
@@ -54,6 +61,9 @@ jobs:
uses: actions/setup-dotnet@v4
with:
dotnet-version: 10.0.x
+ source-url: https://nuget.pkg.github.com/bkaankose/index.json
+ env:
+ NUGET_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Restore Core test projects
shell: pwsh
diff --git a/Directory.Packages.props b/Directory.Packages.props
index ba77f6c7..59629884 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -33,6 +33,7 @@
+
diff --git a/Wino.Core.Domain/Wino.Core.Domain.csproj b/Wino.Core.Domain/Wino.Core.Domain.csproj
index b44190a8..c17ec515 100644
--- a/Wino.Core.Domain/Wino.Core.Domain.csproj
+++ b/Wino.Core.Domain/Wino.Core.Domain.csproj
@@ -60,9 +60,7 @@
-
-
-
+
diff --git a/Wino.Mail.Contracts/Admin/AdminContracts.cs b/Wino.Mail.Contracts/Admin/AdminContracts.cs
deleted file mode 100644
index 82cb8c4d..00000000
--- a/Wino.Mail.Contracts/Admin/AdminContracts.cs
+++ /dev/null
@@ -1,5 +0,0 @@
-namespace Wino.Mail.Api.Contracts.Admin;
-
-public sealed record ModerateUserRequest(string ReasonCode, string? ReasonNote);
-public sealed record AdminUserResultDto(Guid UserId, string Email, string AccountStatus, DateTimeOffset CreatedUtc);
-public sealed record ModerationActionResultDto(string Action, string ReasonCode, string? ReasonNote, Guid? ActorUserId, DateTimeOffset CreatedUtc);
diff --git a/Wino.Mail.Contracts/Ai/AiContracts.cs b/Wino.Mail.Contracts/Ai/AiContracts.cs
deleted file mode 100644
index db9b825f..00000000
--- a/Wino.Mail.Contracts/Ai/AiContracts.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace Wino.Mail.Api.Contracts.Ai;
-
-public sealed record SummarizeRequest(string Html);
-public sealed record TranslateRequest(string Html, string TargetLanguage);
-public sealed record RewriteRequest(string Html, string Instruction);
-public sealed record AiTextResultDto(string Text);
-public sealed record AiStatusResultDto(bool HasAiPack, string EntitlementStatus, DateTimeOffset? CurrentPeriodStartUtc, DateTimeOffset? CurrentPeriodEndUtc, int? MonthlyLimit, int? Used, int? Remaining);
diff --git a/Wino.Mail.Contracts/Auth/AuthContracts.cs b/Wino.Mail.Contracts/Auth/AuthContracts.cs
deleted file mode 100644
index 5335ae93..00000000
--- a/Wino.Mail.Contracts/Auth/AuthContracts.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-namespace Wino.Mail.Api.Contracts.Auth;
-
-public sealed record RegisterRequest(string Email, string Password);
-public sealed record LoginRequest(string Email, string Password);
-public sealed record CompleteExternalAuthRequest(string Code);
-public sealed record RefreshRequest(string RefreshToken);
-public sealed record LogoutRequest(string RefreshToken);
-public sealed record ForgotPasswordRequest(string Email);
-public sealed record ResetPasswordRequest(string Email, string ResetToken, string NewPassword);
-public sealed record AuthUserDto(Guid UserId, string Email, string AccountStatus, bool HasPassword, bool HasGoogleLogin, bool HasFacebookLogin);
-public sealed record AuthResultDto(AuthUserDto User, string AccessToken, DateTimeOffset AccessTokenExpiresAtUtc, string RefreshToken, DateTimeOffset RefreshTokenExpiresAtUtc);
diff --git a/Wino.Mail.Contracts/Billing/BillingContracts.cs b/Wino.Mail.Contracts/Billing/BillingContracts.cs
deleted file mode 100644
index e2f18d7d..00000000
--- a/Wino.Mail.Contracts/Billing/BillingContracts.cs
+++ /dev/null
@@ -1,4 +0,0 @@
-namespace Wino.Mail.Api.Contracts.Billing;
-
-public sealed record CheckoutSessionResultDto(string Url);
-public sealed record CustomerPortalResultDto(string Url);
diff --git a/Wino.Mail.Contracts/Common/ApiEnvelope.cs b/Wino.Mail.Contracts/Common/ApiEnvelope.cs
deleted file mode 100644
index 7a3f34d2..00000000
--- a/Wino.Mail.Contracts/Common/ApiEnvelope.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-namespace Wino.Mail.Api.Contracts.Common;
-
-public sealed class ApiEnvelope
-{
- public bool IsSuccess { get; init; }
- public string? ErrorCode { get; init; }
- public T? Result { get; init; }
- public QuotaInfoDto? Quota { get; init; }
-
- public static ApiEnvelope Success(T result, QuotaInfoDto? quota = null)
- => new()
- {
- IsSuccess = true,
- Result = result,
- Quota = quota,
- };
-
- public static ApiEnvelope Failure(string errorCode, QuotaInfoDto? quota = null)
- => new()
- {
- IsSuccess = false,
- ErrorCode = errorCode,
- Quota = quota,
- };
-}
diff --git a/Wino.Mail.Contracts/Common/ApiErrorCodes.cs b/Wino.Mail.Contracts/Common/ApiErrorCodes.cs
deleted file mode 100644
index 967869f0..00000000
--- a/Wino.Mail.Contracts/Common/ApiErrorCodes.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-namespace Wino.Mail.Api.Contracts.Common;
-
-public static class ApiErrorCodes
-{
- public const string InvalidCredentials = "INVALID_CREDENTIALS";
- public const string AccountLocked = "ACCOUNT_LOCKED";
- public const string AccountBanned = "ACCOUNT_BANNED";
- public const string AccountSuspended = "ACCOUNT_SUSPENDED";
- public const string RefreshTokenInvalid = "REFRESH_TOKEN_INVALID";
- public const string EmailAlreadyRegistered = "EMAIL_ALREADY_REGISTERED";
- public const string ExternalLoginEmailRequired = "EXTERNAL_LOGIN_EMAIL_REQUIRED";
- public const string ExternalLoginInvalid = "EXTERNAL_LOGIN_INVALID";
- public const string ExternalAuthStateInvalid = "EXTERNAL_AUTH_STATE_INVALID";
- public const string ExternalAuthCodeInvalid = "EXTERNAL_AUTH_CODE_INVALID";
- public const string AiPackRequired = "AI_PACK_REQUIRED";
- public const string AiQuotaExceeded = "AI_QUOTA_EXCEEDED";
- public const string AiHtmlEmpty = "AI_HTML_EMPTY";
- public const string AiHtmlTooLarge = "AI_HTML_TOO_LARGE";
- public const string AiUnsupportedLanguage = "AI_UNSUPPORTED_LANGUAGE";
- public const string AiSanitizationFailed = "AI_SANITIZATION_FAILED";
- public const string AiProviderUnavailable = "AI_PROVIDER_UNAVAILABLE";
- public const string AiRequestBlocked = "AI_REQUEST_BLOCKED";
- public const string AiInternalError = "AI_INTERNAL_ERROR";
- public const string PaddleWebhookInvalid = "PADDLE_WEBHOOK_INVALID";
- public const string Forbidden = "FORBIDDEN";
- public const string ValidationFailed = "VALIDATION_FAILED";
-}
diff --git a/Wino.Mail.Contracts/Common/QuotaInfoDto.cs b/Wino.Mail.Contracts/Common/QuotaInfoDto.cs
deleted file mode 100644
index 87936114..00000000
--- a/Wino.Mail.Contracts/Common/QuotaInfoDto.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-namespace Wino.Mail.Api.Contracts.Common;
-
-public sealed record QuotaInfoDto(
- bool HasAiPack,
- string EntitlementStatus,
- DateTimeOffset? CurrentPeriodStartUtc,
- DateTimeOffset? CurrentPeriodEndUtc,
- int? MonthlyLimit,
- int? Used,
- int? Remaining);
diff --git a/Wino.Mail.Contracts/Wino.Mail.Contracts.csproj b/Wino.Mail.Contracts/Wino.Mail.Contracts.csproj
deleted file mode 100644
index 1a578629..00000000
--- a/Wino.Mail.Contracts/Wino.Mail.Contracts.csproj
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
- net10.0
- enable
- enable
-
-
diff --git a/Wino.Mail.WinUI/Wino.Mail.WinUI.csproj b/Wino.Mail.WinUI/Wino.Mail.WinUI.csproj
index 5abc726b..0c9f5af4 100644
--- a/Wino.Mail.WinUI/Wino.Mail.WinUI.csproj
+++ b/Wino.Mail.WinUI/Wino.Mail.WinUI.csproj
@@ -223,10 +223,10 @@
+
-
diff --git a/Wino.Services/Wino.Services.csproj b/Wino.Services/Wino.Services.csproj
index 628ce966..025f3778 100644
--- a/Wino.Services/Wino.Services.csproj
+++ b/Wino.Services/Wino.Services.csproj
@@ -22,10 +22,10 @@
+
-
diff --git a/WinoMail.slnx b/WinoMail.slnx
index 6137bb94..9a2893e3 100644
--- a/WinoMail.slnx
+++ b/WinoMail.slnx
@@ -44,11 +44,6 @@
-
-
-
-
-
diff --git a/nuget.config b/nuget.config
index fa3400f0..d3e45c0d 100644
--- a/nuget.config
+++ b/nuget.config
@@ -3,6 +3,7 @@
+
@@ -12,6 +13,9 @@
everything else from nuget.org. -->
+
+
+