This commit is contained in:
Tizian.Breuch
2025-07-22 17:09:38 +02:00
parent 5568574d9c
commit 0cbf088747
16 changed files with 429 additions and 57 deletions

View File

@@ -0,0 +1,22 @@
namespace Webshop.Application.DTOs
{
public class AdminProductDto
{
public Guid Id { get; set; }
public string Name { get; set; } = string.Empty;
public string Description { get; set; } = string.Empty;
public string SKU { get; set; } = string.Empty;
public decimal Price { get; set; }
public decimal? OldPrice { get; set; }
public bool IsActive { get; set; } = true;
public bool IsInStock { get; set; } = true;
public int StockQuantity { get; set; }
public decimal? Weight { get; set; }
public string? ImageUrl { get; set; }
public string Slug { get; set; } = string.Empty;
public DateTimeOffset CreatedDate { get; set; }
public DateTimeOffset? LastModifiedDate { get; set; }
public Guid? SupplierId { get; set; }
public decimal? PurchasePrice { get; set; } // Admin-spezifisches Feld
}
}

View File

@@ -0,0 +1,12 @@
namespace Webshop.Application.DTOs.Auth
{
public class AuthResponseDto
{
public bool IsAuthSuccessful { get; set; }
public string ErrorMessage { get; set; } = string.Empty;
public string Token { get; set; } = string.Empty;
public string UserId { get; set; } = string.Empty;
public string Email { get; set; } = string.Empty;
public List<string> Roles { get; set; } = new List<string>();
}
}

View File

@@ -0,0 +1,14 @@
using System.ComponentModel.DataAnnotations;
namespace Webshop.Application.DTOs.Auth
{
public class LoginRequestDto
{
[Required(ErrorMessage = "E-Mail ist erforderlich.")]
[EmailAddress(ErrorMessage = "Ungültiges E-Mail-Format.")]
public string Email { get; set; } = string.Empty;
[Required(ErrorMessage = "Passwort ist erforderlich.")]
public string Password { get; set; } = string.Empty;
}
}

View File

@@ -0,0 +1,22 @@
using System.ComponentModel.DataAnnotations;
namespace Webshop.Application.DTOs.Auth
{
public class RegisterRequestDto
{
[Required(ErrorMessage = "E-Mail ist erforderlich.")]
[EmailAddress(ErrorMessage = "Ungültiges E-Mail-Format.")]
public string Email { get; set; } = string.Empty;
[Required(ErrorMessage = "Passwort ist erforderlich.")]
[MinLength(6, ErrorMessage = "Passwort muss mindestens 6 Zeichen lang sein.")]
public string Password { get; set; } = string.Empty;
[Required(ErrorMessage = "Passwortbestätigung ist erforderlich.")]
[Compare("Password", ErrorMessage = "Passwörter stimmen nicht überein.")]
public string ConfirmPassword { get; set; } = string.Empty;
public string? FirstName { get; set; }
public string? LastName { get; set; }
}
}

View File

@@ -0,0 +1,12 @@
namespace Webshop.Application.DTOs.Users
{
public class UserDto
{
public string Id { get; set; } = string.Empty;
public string Email { get; set; } = string.Empty;
public string UserName { get; set; } = string.Empty;
public List<string> Roles { get; set; } = new List<string>();
public DateTimeOffset CreatedDate { get; set; } // Placeholder, as IdentityUser doesn't have it directly
public bool EmailConfirmed { get; set; }
}
}

View File

@@ -3,7 +3,7 @@ using Webshop.Application.DTOs;
using Webshop.Domain.Entities;
using Webshop.Domain.Interfaces;
namespace Webshop.Application.Services
namespace Webshop.Application.Services.Public
{
public class ProductService
{

View File

@@ -14,4 +14,10 @@
<ProjectReference Include="..\Webshop.Domain\Webshop.Domain.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="Services\Auth\" />
<Folder Include="Services\Customer\" />
<Folder Include="Services\Admin\" />
</ItemGroup>
</Project>