From 2b23da286e3f457b81c736d85545ff7627eec0f8 Mon Sep 17 00:00:00 2001 From: Damien Ostler Date: Mon, 19 Feb 2024 04:50:48 -0500 Subject: [PATCH] feat: fixed naming --- .../ApplicationDbContext.cs | 10 +- .../Admin/AdminSellerRequestsController.cs | 32 +- .../Admin/AdminSellersController.cs | 38 +- .../Controllers/ArtistController.cs | 291 +++++++++++ .../Controllers/DiscoveryController.cs | 61 ++- .../Controllers/RequestsController.cs | 66 +++ .../Controllers/SellerProfileController.cs | 291 ----------- ...ePageSettings.cs => ArtistPageSettings.cs} | 8 +- .../Entities/ArtistPortfolioPiece.cs | 9 + ...llerProfileRequest.cs => ArtistRequest.cs} | 2 +- src/comissions.app.api/Entities/Request.cs | 20 + .../Entities/SellerProfilePortfolioPiece.cs | 11 - .../Entities/SellerService.cs | 14 - src/comissions.app.api/Entities/User.cs | 4 +- .../Entities/UserSellerProfile.cs | 10 +- .../Middleware/UserMiddleware.cs | 22 +- .../20240212032736_Initial.Designer.cs | 124 ++--- .../Migrations/20240212032736_Initial.cs | 160 +++--- .../20240218121059_page settings.Designer.cs | 146 +++--- .../20240218121059_page settings.cs | 60 +-- .../20240218233434_forgot column.Designer.cs | 146 +++--- .../20240218233434_forgot column.cs | 4 +- .../20240219095038_naming fixes.Designer.cs | 480 ++++++++++++++++++ .../Migrations/20240219095038_naming fixes.cs | 240 +++++++++ .../ApplicationDbContextModelSnapshot.cs | 304 +++-------- .../Models/Discovery/DiscoverySellerModel.cs | 2 +- .../Models/PortfolioModel/PortfolioModel.cs | 1 - .../PortfolioModelExtensions.cs | 5 +- .../Models/Request/RequestModel.cs | 16 + .../Models/Request/RequestModelExtensions.cs | 22 + .../SellerProfile/ArtistOnboardStatusModel.cs | 6 + .../SellerProfile/ArtistOnboardUrlModel.cs | 6 + ...rProfileModel.cs => ArtistProfileModel.cs} | 4 +- ...ons.cs => ArtistProfileModelExtensions.cs} | 36 +- ...l.cs => ArtistProfilePageSettingsModel.cs} | 7 +- ...tistProfilePageSettingsModelExtensions.cs} | 11 +- .../SellerProfile/SellerOnboardStatusModel.cs | 6 - .../SellerProfile/SellerOnboardUrlModel.cs | 6 - .../SellerProfileRequestModel.cs | 4 +- .../SellerProfileRequestModelExtensions.cs | 8 +- .../SellerService/SellerServiceCreateModel.cs | 8 - .../SellerService/SellerServiceModel.cs | 11 - .../SellerServiceModelExtensions.cs | 20 - .../SellerService/SellerServiceUpdateModel.cs | 8 - .../Services/Payment/IPaymentService.cs | 8 +- .../Payment/StripePaymentServiceProvider.cs | 10 +- ...ions.app.database.migrator.AssemblyInfo.cs | 2 +- ...database.migrator.AssemblyInfoInputs.cache | 2 +- 48 files changed, 1701 insertions(+), 1061 deletions(-) create mode 100644 src/comissions.app.api/Controllers/ArtistController.cs create mode 100644 src/comissions.app.api/Controllers/RequestsController.cs delete mode 100644 src/comissions.app.api/Controllers/SellerProfileController.cs rename src/comissions.app.api/Entities/{SellerProfilePageSettings.cs => ArtistPageSettings.cs} (90%) create mode 100644 src/comissions.app.api/Entities/ArtistPortfolioPiece.cs rename src/comissions.app.api/Entities/{SellerProfileRequest.cs => ArtistRequest.cs} (90%) create mode 100644 src/comissions.app.api/Entities/Request.cs delete mode 100644 src/comissions.app.api/Entities/SellerProfilePortfolioPiece.cs delete mode 100644 src/comissions.app.api/Entities/SellerService.cs create mode 100644 src/comissions.app.api/Migrations/20240219095038_naming fixes.Designer.cs create mode 100644 src/comissions.app.api/Migrations/20240219095038_naming fixes.cs create mode 100644 src/comissions.app.api/Models/Request/RequestModel.cs create mode 100644 src/comissions.app.api/Models/Request/RequestModelExtensions.cs create mode 100644 src/comissions.app.api/Models/SellerProfile/ArtistOnboardStatusModel.cs create mode 100644 src/comissions.app.api/Models/SellerProfile/ArtistOnboardUrlModel.cs rename src/comissions.app.api/Models/SellerProfile/{SellerProfileModel.cs => ArtistProfileModel.cs} (83%) rename src/comissions.app.api/Models/SellerProfile/{SellerProfileModelExtensions.cs => ArtistProfileModelExtensions.cs} (57%) rename src/comissions.app.api/Models/SellerProfile/{SellerProfilePageSettingsModel.cs => ArtistProfilePageSettingsModel.cs} (91%) rename src/comissions.app.api/Models/SellerProfile/{SellerProfilePageSettingsModelExtensions.cs => ArtistProfilePageSettingsModelExtensions.cs} (92%) delete mode 100644 src/comissions.app.api/Models/SellerProfile/SellerOnboardStatusModel.cs delete mode 100644 src/comissions.app.api/Models/SellerProfile/SellerOnboardUrlModel.cs delete mode 100644 src/comissions.app.api/Models/SellerService/SellerServiceCreateModel.cs delete mode 100644 src/comissions.app.api/Models/SellerService/SellerServiceModel.cs delete mode 100644 src/comissions.app.api/Models/SellerService/SellerServiceModelExtensions.cs delete mode 100644 src/comissions.app.api/Models/SellerService/SellerServiceUpdateModel.cs diff --git a/src/comissions.app.api/ApplicationDbContext.cs b/src/comissions.app.api/ApplicationDbContext.cs index d74e215..62715af 100644 --- a/src/comissions.app.api/ApplicationDbContext.cs +++ b/src/comissions.app.api/ApplicationDbContext.cs @@ -41,10 +41,10 @@ public class ApplicationDbContext:DbContext #region DB Sets public DbSet Users { get; set; } = null!; - public DbSet SellerProfilePageSettings { get; set; }= null!; - public DbSet UserSellerProfiles { get; set; }= null!; - public DbSet SellerProfileRequests { get; set; }= null!; - public DbSet SellerProfilePortfolioPieces { get; set; }= null!; - public DbSet SellerServices { get; set; }= null!; + public DbSet ArtistPageSettings { get; set; }= null!; + public DbSet UserArtists { get; set; }= null!; + public DbSet ArtistRequests { get; set; }= null!; + public DbSet ArtistPortfolioPieces { get; set; }= null!; + public DbSet Requests { get; set; }= null!; #endregion } \ No newline at end of file diff --git a/src/comissions.app.api/Controllers/Admin/AdminSellerRequestsController.cs b/src/comissions.app.api/Controllers/Admin/AdminSellerRequestsController.cs index dc97785..38f6a89 100644 --- a/src/comissions.app.api/Controllers/Admin/AdminSellerRequestsController.cs +++ b/src/comissions.app.api/Controllers/Admin/AdminSellerRequestsController.cs @@ -1,4 +1,4 @@ -using comissions.app.api.Models.SellerProfileRequest; +using comissions.app.api.Models.ArtistRequest; using comissions.app.api.Services.Payment; using comissions.app.database; using comissions.app.database.Entities; @@ -11,12 +11,12 @@ namespace comissions.app.api.Controllers; [ApiController] [Authorize("admin")] [Route("api/admin/[controller]")] -public class AdminSellerRequestsController : Controller +public class AdminArtistRequestsController : Controller { private readonly ApplicationDbContext _dbContext; private readonly IPaymentService _paymentService; - public AdminSellerRequestsController(ApplicationDbContext dbContext, IPaymentService paymentService) + public AdminArtistRequestsController(ApplicationDbContext dbContext, IPaymentService paymentService) { _paymentService = paymentService; _dbContext = dbContext; @@ -30,9 +30,9 @@ public class AdminSellerRequestsController : Controller /// A list of seller profile requests [HttpGet] [Authorize("read:seller-profile-request")] - public async Task GetSellerRequests(int offset = 0, int pageSize = 10) + public async Task GetArtistRequests(int offset = 0, int pageSize = 10) { - var requests = _dbContext.SellerProfileRequests.Skip(offset).Take(pageSize).ToList(); + var requests = _dbContext.ArtistRequests.Skip(offset).Take(pageSize).ToList(); var result = requests.Select(x=>x.ToModel()).ToList(); return Ok(result); } @@ -44,9 +44,9 @@ public class AdminSellerRequestsController : Controller [HttpGet] [Authorize("read:seller-profile-request")] [Route("Count")] - public async Task GetSellerRequestsCount() + public async Task GetArtistRequestsCount() { - var result = _dbContext.SellerProfileRequests.Count(); + var result = _dbContext.ArtistRequests.Count(); return Ok(result); } @@ -58,9 +58,9 @@ public class AdminSellerRequestsController : Controller [HttpPut] [Authorize("write:seller-profile-request")] [Route("{userId}")] - public async Task AcceptSellerRequest(string userId) + public async Task AcceptArtistRequest(string userId) { - var request = await _dbContext.SellerProfileRequests.FirstOrDefaultAsync(request=>request.UserId==userId); + var request = await _dbContext.ArtistRequests.FirstOrDefaultAsync(request=>request.UserId==userId); if(request==null) return NotFound("No request for that user exists."); @@ -70,8 +70,8 @@ public class AdminSellerRequestsController : Controller request.Accepted = true; request.AcceptedDate = DateTime.UtcNow; - var accountId = _paymentService.CreateSellerAccount(); - var newSellerProfile = new UserSellerProfile() + var accountId = _paymentService.CreateArtistAccount(); + var newArtist = new UserArtist() { UserId = userId, AgeRestricted = false, @@ -84,11 +84,11 @@ public class AdminSellerRequestsController : Controller RequestGuidelines = "", Name = "Default Shop", }; - var dbProfile = _dbContext.UserSellerProfiles.Add(newSellerProfile).Entity; + var dbProfile = _dbContext.UserArtists.Add(newArtist).Entity; await _dbContext.SaveChangesAsync(); - var newSettings = new SellerProfilePageSettings() + var newSettings = new ArtistPageSettings() { - SellerProfileId = dbProfile.Id, + ArtistId = dbProfile.Id, BackgroundColor = "rgb(126, 115, 115)", HeaderColor = "rgb(194, 187, 187)", HeaderTextSize = 5, @@ -123,10 +123,10 @@ public class AdminSellerRequestsController : Controller RequestButtonTextColor = "rgb(194, 187, 187)", RequestButtonHoverBGColor = "rgb(98, 98, 98)" }; - var dbSettings = _dbContext.SellerProfilePageSettings.Add(newSettings).Entity; + var dbSettings = _dbContext.ArtistPageSettings.Add(newSettings).Entity; await _dbContext.SaveChangesAsync(); - request = _dbContext.SellerProfileRequests.Update(request).Entity; + request = _dbContext.ArtistRequests.Update(request).Entity; await _dbContext.SaveChangesAsync(); var result = request.ToModel(); return Ok(result); diff --git a/src/comissions.app.api/Controllers/Admin/AdminSellersController.cs b/src/comissions.app.api/Controllers/Admin/AdminSellersController.cs index 695b908..9fc2dc7 100644 --- a/src/comissions.app.api/Controllers/Admin/AdminSellersController.cs +++ b/src/comissions.app.api/Controllers/Admin/AdminSellersController.cs @@ -10,37 +10,37 @@ namespace comissions.app.api.Controllers; [ApiController] [Authorize("admin")] [Route("api/admin/[controller]")] -public class AdminSellersController:ControllerBase +public class AdminArtistsController:ControllerBase { private readonly ApplicationDbContext _dbContext; - public AdminSellersController(ApplicationDbContext dbContext) + public AdminArtistsController(ApplicationDbContext dbContext) { _dbContext = dbContext; } [HttpGet] - public async Task GetSellers(string search="", int offset = 0, int pageSize = 10) + public async Task GetArtists(string search="", int offset = 0, int pageSize = 10) { - var sellers = await _dbContext.UserSellerProfiles.Include(x=>x.User) + var sellers = await _dbContext.UserArtists.Include(x=>x.User) .Where(x=>x.User.DisplayName.Contains(search) || x.User.Email.Contains(search)) .Skip(offset).Take(pageSize).ToListAsync(); return Ok(sellers); } [HttpGet("Count")] - public async Task GetSellersCount(string search="") + public async Task GetArtistsCount(string search="") { - var result = await _dbContext.UserSellerProfiles.Include(x=>x.User) + var result = await _dbContext.UserArtists.Include(x=>x.User) .Where(x=>x.User.DisplayName.Contains(search) || x.User.Email.Contains(search)) .CountAsync(); return Ok(result); } [HttpGet("{sellerId:int}")] - public async Task GetSeller(int sellerId) + public async Task GetArtist(int sellerId) { - var seller = await _dbContext.UserSellerProfiles.Include(x=>x.User) + var seller = await _dbContext.UserArtists.Include(x=>x.User) .FirstOrDefaultAsync(x=>x.Id==sellerId); if (seller == null) @@ -51,9 +51,9 @@ public class AdminSellersController:ControllerBase [HttpPut("{sellerId:int}/Suspend")] - public async Task SuspendSeller(int sellerId, [FromQuery]string reason, [FromQuery]int days) + public async Task SuspendArtist(int sellerId, [FromQuery]string reason, [FromQuery]int days) { - var seller = _dbContext.UserSellerProfiles.FirstOrDefault(x=>x.Id==sellerId); + var seller = _dbContext.UserArtists.FirstOrDefault(x=>x.Id==sellerId); if (seller == null) return NotFound(); @@ -66,16 +66,16 @@ public class AdminSellersController:ControllerBase seller.UnsuspendDate = DateTime.UtcNow.AddDays(days); seller.SuspendedReason = reason; seller.SuspendAdminId = User.GetUserId(); - _dbContext.UserSellerProfiles.Update(seller); + _dbContext.UserArtists.Update(seller); await _dbContext.SaveChangesAsync(); return Ok(); } [HttpPut("{sellerId:int}/Unsuspend")] - public async Task UnsuspendSeller(int sellerId) + public async Task UnsuspendArtist(int sellerId) { - var seller = _dbContext.UserSellerProfiles.FirstOrDefault(x=>x.Id==sellerId); + var seller = _dbContext.UserArtists.FirstOrDefault(x=>x.Id==sellerId); if (seller == null) return NotFound(); @@ -88,16 +88,16 @@ public class AdminSellersController:ControllerBase seller.UnsuspendDate = null; seller.SuspendedReason = null; seller.SuspendAdminId = null; - _dbContext.UserSellerProfiles.Update(seller); + _dbContext.UserArtists.Update(seller); await _dbContext.SaveChangesAsync(); return Ok(); } [HttpPut("{sellerId:int}/Terminate")] - public async Task TerminateSeller(int sellerId) + public async Task TerminateArtist(int sellerId) { - var seller = _dbContext.UserSellerProfiles.FirstOrDefault(x=>x.Id==sellerId); + var seller = _dbContext.UserArtists.FirstOrDefault(x=>x.Id==sellerId); if (seller == null) return NotFound(); @@ -105,7 +105,7 @@ public class AdminSellersController:ControllerBase if (!seller.Suspended) return BadRequest(); - _dbContext.UserSellerProfiles.Remove(seller); + _dbContext.UserArtists.Remove(seller); await _dbContext.SaveChangesAsync(); return Ok(); } @@ -113,7 +113,7 @@ public class AdminSellersController:ControllerBase [HttpPut("{sellerId:int}/SetBiography")] public async Task SetBiography(int sellerId, [FromBody]string biography) { - var seller = _dbContext.UserSellerProfiles.FirstOrDefault(x=>x.Id==sellerId); + var seller = _dbContext.UserArtists.FirstOrDefault(x=>x.Id==sellerId); if (seller == null) return NotFound(); @@ -122,7 +122,7 @@ public class AdminSellersController:ControllerBase return BadRequest(); seller.Description = biography; - _dbContext.UserSellerProfiles.Update(seller); + _dbContext.UserArtists.Update(seller); await _dbContext.SaveChangesAsync(); return Ok(); } diff --git a/src/comissions.app.api/Controllers/ArtistController.cs b/src/comissions.app.api/Controllers/ArtistController.cs new file mode 100644 index 0000000..11e9cab --- /dev/null +++ b/src/comissions.app.api/Controllers/ArtistController.cs @@ -0,0 +1,291 @@ +using comissions.app.api.Extensions; +using comissions.app.api.Models.PortfolioModel; +using comissions.app.api.Models.Artist; +using comissions.app.api.Models.ArtistRequest; +using comissions.app.api.Services.Payment; +using comissions.app.api.Services.Storage; +using comissions.app.database; +using comissions.app.database.Entities; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using Newtonsoft.Json; + +namespace comissions.app.api.Controllers; + +[ApiController] +[Route("api/[controller]")] +public class ArtistController : Controller +{ + private readonly ApplicationDbContext _dbContext; + private readonly IStorageService _storageService; + private readonly IPaymentService _paymentService; + + + public ArtistController(ApplicationDbContext dbContext, IPaymentService paymentService, IStorageService storageService) + { + _paymentService = paymentService; + _storageService = storageService; + _dbContext = dbContext; + } + + [HttpGet] + [Authorize("read:seller-profile")] + public async Task GetArtist() + { + var userId = User.GetUserId(); + var Artist = await _dbContext.UserArtists.FirstOrDefaultAsync(Artist=>Artist.UserId==userId); + if(Artist==null) + { + var ArtistRequest = await _dbContext.ArtistRequests.FirstOrDefaultAsync(request=>request.UserId==userId && request.Accepted==false); + if(ArtistRequest!=null) + return BadRequest(); + return Unauthorized(); + } + var result = Artist.ToModel(); + return Ok(result); + } + + [HttpPut] + [Authorize("write:seller-profile")] + public async Task UpdateArtist(ArtistModel model) + { + var userId = User.GetUserId(); + var existingArtist = await _dbContext.UserArtists.FirstOrDefaultAsync(Artist=>Artist.UserId==userId); + if (existingArtist == null) + { + var ArtistRequest = await _dbContext.ArtistRequests.FirstOrDefaultAsync(request=>request.UserId==userId && request.Accepted==false); + if(ArtistRequest!=null) + return BadRequest(); + return Unauthorized(); + } + + if (_dbContext.UserArtists.Any(x => x.Name.ToLower() == model.Name.ToLower())) + return BadRequest(); + + var updatedArtist = model.ToModel(existingArtist); + updatedArtist = _dbContext.UserArtists.Update(updatedArtist).Entity; + await _dbContext.SaveChangesAsync(); + var result = updatedArtist.ToModel(); + return Ok(result); + } + + [HttpGet] + [Authorize("read:seller-profile")] + [Route("Request")] + public async Task GetArtistRequest() + { + var userId = User.GetUserId(); + var ArtistRequest = await _dbContext.ArtistRequests.FirstOrDefaultAsync(request=>request.UserId==userId); + if(ArtistRequest==null) + return NotFound(); + var result = ArtistRequest.ToModel(); + return Ok(result); + } + + [HttpGet] + [Authorize("read:seller-profile")] + [Route("Page")] + public async Task GetArtistPage() + { + var userId = User.GetUserId(); + var Artist = await _dbContext.UserArtists.Include(x=>x.ArtistPageSettings).FirstOrDefaultAsync(Artist=>Artist.UserId==userId); + if(Artist==null) + return NotFound(); + var result = Artist.ArtistPageSettings.ToModel(); + return Ok(result); + } + + [HttpPut] + [Authorize("write:seller-profile")] + [Route("Page")] + public async Task UpdateArtistPage([FromBody]ArtistPageSettingsModel model) + { + var userId = User.GetUserId(); + var existingArtist = await _dbContext.UserArtists + .Include(x=>x.ArtistPageSettings).FirstOrDefaultAsync(Artist=>Artist.UserId==userId); + if (existingArtist == null) + { + var ArtistRequest = await _dbContext.ArtistRequests.FirstOrDefaultAsync(request=>request.UserId==userId && request.Accepted==false); + if(ArtistRequest!=null) + return BadRequest(); + return Unauthorized(); + } + var updatedArtist = model.ToModel(existingArtist.ArtistPageSettings); + updatedArtist = _dbContext.ArtistPageSettings.Update(updatedArtist).Entity; + await _dbContext.SaveChangesAsync(); + var result = updatedArtist.ToModel(); + return Ok(result); + } + + [HttpPost] + [Authorize("write:seller-profile")] + public async Task RequestArtist() + { + var userId = User.GetUserId(); + + var existingArtist = await _dbContext.UserArtists.FirstOrDefaultAsync(Artist=>Artist.UserId==userId); + if (existingArtist != null) + { + return Unauthorized(); + } + + var ArtistRequest = await _dbContext.ArtistRequests.FirstOrDefaultAsync(request=>request.UserId==userId); + if (ArtistRequest != null) + return Ok(ArtistRequest.ToModel()); + + ArtistRequest = new ArtistRequest() + { + Accepted = false, + RequestDate = DateTime.UtcNow, + UserId = userId + }; + _dbContext.ArtistRequests.Add(ArtistRequest); + await _dbContext.SaveChangesAsync(); + return Ok(); + } + [HttpGet] + [Authorize("read:seller-profile")] + [Route("{sellerServiceId:int}/Portfolio/{portfolioId:int}")] + public async Task GetPortfolio(int sellerServiceId, int portfolioId) + { + var userId = User.GetUserId(); + var existingArtist = await _dbContext.UserArtists.FirstOrDefaultAsync(Artist=>Artist.UserId==userId); + if (existingArtist == null) + { + var ArtistRequest = await _dbContext.ArtistRequests.FirstOrDefaultAsync(request=>request.UserId==userId && request.Accepted==false); + if(ArtistRequest!=null) + return BadRequest(); + return Unauthorized(); + } + if(existingArtist.Suspended) + return BadRequest(); + + var portfolio = await _dbContext.ArtistPortfolioPieces + .FirstAsync(x => x.ArtistId == existingArtist.Id && x.Id==portfolioId); + var content = await _storageService.DownloadImageAsync(portfolio.FileReference); + return new FileStreamResult(content, "application/octet-stream"); + } + + [HttpGet] + [Route("Portfolio")] + [Authorize("read:seller-profile")] + public async Task GetPortfolio() + { + var userId = User.GetUserId(); + var existingArtist = await _dbContext.UserArtists.FirstOrDefaultAsync(Artist=>Artist.UserId==userId); + if (existingArtist == null) + { + var ArtistRequest = await _dbContext.ArtistRequests.FirstOrDefaultAsync(request=>request.UserId==userId && request.Accepted==false); + if(ArtistRequest!=null) + return BadRequest(); + return Unauthorized(); + } + if(existingArtist.Suspended) + return BadRequest(); + var portfolio = await _dbContext.ArtistPortfolioPieces.Where(x=>x.ArtistId==existingArtist.Id).ToListAsync(); + var result = portfolio.Select(x=>x.ToModel()).ToList(); + return Ok(result); + } + + [HttpPost] + [Route("Portfolio")] + [Authorize("write:seller-profile")] + public async Task AddPortfolio() + { + var userId = User.GetUserId(); + var existingArtist = await _dbContext.UserArtists.FirstOrDefaultAsync(Artist=>Artist.UserId==userId); + if (existingArtist == null) + { + return BadRequest(); + } + + if(existingArtist.Suspended) + return BadRequest(); + var url = await _storageService.UploadImageAsync(HttpContext.Request.Body, Guid.NewGuid().ToString()); + var portfolio = new ArtistPortfolioPiece() + { + ArtistId = existingArtist.Id, + FileReference = url + }; + portfolio.ArtistId = existingArtist.Id; + _dbContext.ArtistPortfolioPieces.Add(portfolio); + await _dbContext.SaveChangesAsync(); + var result = portfolio.ToModel(); + return Ok(result); + } + + [HttpDelete] + [Authorize("write:seller-profile")] + [Route("Portfolio/{portfolioId:int}")] + public async Task DeletePortfolio(int portfolioId) + { + var userId = User.GetUserId(); + var existingArtist = await _dbContext.UserArtists.FirstOrDefaultAsync(Artist=>Artist.UserId==userId); + if (existingArtist == null) + { + var ArtistRequest = await _dbContext.ArtistRequests.FirstOrDefaultAsync(request=>request.UserId==userId && request.Accepted==false); + if(ArtistRequest!=null) + return BadRequest(); + return Unauthorized(); + } + if(existingArtist.Suspended) + return BadRequest(); + var portfolio = await _dbContext.ArtistPortfolioPieces.FirstOrDefaultAsync(x=>x.Id==portfolioId); + if(portfolio==null) + return NotFound(); + if(portfolio.ArtistId!=existingArtist.Id) + return BadRequest(); + _dbContext.ArtistPortfolioPieces.Remove(portfolio); + await _dbContext.SaveChangesAsync(); + return Ok(); + } + + [HttpGet] + [Authorize("write:seller-profile")] + [Route("Onboard")] + public async Task PaymentAccountStatus() + { + var userId = User.GetUserId(); + var existingArtist = await _dbContext.UserArtists.FirstOrDefaultAsync(Artist=>Artist.UserId==userId); + if (existingArtist == null) + { + var ArtistRequest = await _dbContext.ArtistRequests.FirstOrDefaultAsync(request=>request.UserId==userId && request.Accepted==false); + if(ArtistRequest!=null) + return BadRequest(); + return Unauthorized(); + } + + if(existingArtist.Suspended) + return BadRequest(); + var result = _paymentService.ArtistAccountIsOnboarded(existingArtist.StripeAccountId); + return Ok(new ArtistOnboardStatusModel(){ Onboarded= result }); + } + + [HttpGet] + [Authorize("write:seller-profile")] + [Route("Onboard/Url")] + public async Task GetPaymentAccount() + { + var userId = User.GetUserId(); + var existingArtist = await _dbContext.UserArtists.FirstOrDefaultAsync(Artist=>Artist.UserId==userId); + if (existingArtist == null) + { + var ArtistRequest = await _dbContext.ArtistRequests.FirstOrDefaultAsync(request=>request.UserId==userId && request.Accepted==false); + if(ArtistRequest!=null) + return BadRequest(); + return Unauthorized(); + } + if(existingArtist.Suspended) + return BadRequest(); + if(existingArtist.StripeAccountId==null) + return BadRequest(); + + var result = _paymentService.CreateArtistAccountOnboardingUrl(existingArtist.StripeAccountId); + return Ok(new ArtistOnboardUrlModel() + { + OnboardUrl = result + }); + } + +} \ No newline at end of file diff --git a/src/comissions.app.api/Controllers/DiscoveryController.cs b/src/comissions.app.api/Controllers/DiscoveryController.cs index aecef66..dc4fb58 100644 --- a/src/comissions.app.api/Controllers/DiscoveryController.cs +++ b/src/comissions.app.api/Controllers/DiscoveryController.cs @@ -1,6 +1,4 @@ -using comissions.app.api.Models.SellerProfile; -using comissions.app.api.Models.SellerService; -using comissions.app.api.Models.Discovery; +using comissions.app.api.Models.Artist; using comissions.app.api.Models.PortfolioModel; using comissions.app.api.Services.Storage; using comissions.app.database; @@ -24,10 +22,10 @@ public class DiscoveryController : Controller [HttpGet] - [Route("Sellers")] - public async Task GetSellers(string search="",int offset = 0, int pageSize = 10) + [Route("Artists")] + public async Task GetArtists(string search="",int offset = 0, int pageSize = 10) { - var sellers = await _dbContext.UserSellerProfiles + var sellers = await _dbContext.UserArtists .Where(x=>x.User.DisplayName.Contains(search)) .Include(x=>x.User) .Skip(offset).Take(pageSize).ToListAsync(); @@ -36,11 +34,10 @@ public class DiscoveryController : Controller } [HttpGet] - [Route("Sellers/{sellerId:int}")] - public async Task GetSeller(int sellerId) + [Route("Artists/{sellerId:int}")] + public async Task GetArtist(int sellerId) { - var seller = await _dbContext.UserSellerProfiles - .Include(x=>x.SellerServices) + var seller = await _dbContext.UserArtists .FirstOrDefaultAsync(x=>x.Id==sellerId); if(seller==null) return NotFound(); @@ -50,59 +47,59 @@ public class DiscoveryController : Controller [HttpGet] - [Route("Sellers/{sellerName}/Page")] - public async Task GetSellerPage(string sellerName) + [Route("Artists/{sellerName}/Page")] + public async Task GetArtistPage(string sellerName) { - var seller = await _dbContext.UserSellerProfiles - .Include(x=>x.SellerProfilePageSettings) + var seller = await _dbContext.UserArtists + .Include(x=>x.ArtistPageSettings) .FirstOrDefaultAsync(x=>x.Name==sellerName.Replace('-', ' ')); if(seller==null) return NotFound(); - var result = seller.SellerProfilePageSettings; + var result = seller.ArtistPageSettings.ToModel(); return Ok(result); } [HttpGet] - [Route("Sellers/{sellerId:int}/Portfolio")] - public async Task GetSellerPortfolio(int sellerId, int offset = 0, int pageSize = 10) + [Route("Artists/{sellerId:int}/Portfolio")] + public async Task GetArtistPortfolio(int sellerId, int offset = 0, int pageSize = 10) { - var seller = await _dbContext.UserSellerProfiles + var seller = await _dbContext.UserArtists .Include(x=>x.User) .FirstOrDefaultAsync(x=>x.Id==sellerId); if(seller==null) return NotFound(); - var sellerPortfolio = await _dbContext.SellerProfilePortfolioPieces - .Where(x=>x.SellerProfileId==sellerId) + var sellerPortfolio = await _dbContext.ArtistPortfolioPieces + .Where(x=>x.ArtistId==sellerId) .Skip(offset).Take(pageSize).ToListAsync(); var result = sellerPortfolio.Select(x=>x.ToModel()).ToList(); return Ok(result); } [HttpGet] - [Route("Sellers/{sellerId:int}/Portfolio/Count")] - public async Task GetSellerPortfolioCount(int sellerId) + [Route("Artists/{sellerId:int}/Portfolio/Count")] + public async Task GetArtistPortfolioCount(int sellerId) { - var seller = await _dbContext.UserSellerProfiles + var seller = await _dbContext.UserArtists .Include(x=>x.User) .FirstOrDefaultAsync(x=>x.Id==sellerId); if(seller==null) return NotFound(); - var sellerPortfolio = await _dbContext.SellerProfilePortfolioPieces - .Where(x=>x.SellerProfileId==sellerId) + var sellerPortfolio = await _dbContext.ArtistPortfolioPieces + .Where(x=>x.ArtistId==sellerId) .CountAsync(); return Ok(sellerPortfolio); } [HttpGet] - [Route("Sellers/{sellerId:int}/Portfolio/{portfolioId:int}")] - public async Task GetSellerPortfolioPiece(int sellerId, int portfolioId) + [Route("Artists/{sellerId:int}/Portfolio/{portfolioId:int}")] + public async Task GetArtistPortfolioPiece(int sellerId, int portfolioId) { - var seller = await _dbContext.UserSellerProfiles + var seller = await _dbContext.UserArtists .Include(x=>x.User) .FirstOrDefaultAsync(x=>x.Id==sellerId); if(seller==null) return NotFound(); - var sellerPortfolio = await _dbContext.SellerProfilePortfolioPieces + var sellerPortfolio = await _dbContext.ArtistPortfolioPieces .FirstOrDefaultAsync(x=>x.Id==portfolioId); if(sellerPortfolio==null) return NotFound("Portfolio piece not found."); @@ -112,10 +109,10 @@ public class DiscoveryController : Controller } [HttpGet] - [Route("Sellers/Count")] - public async Task GetSellersCount(string search="") + [Route("Artists/Count")] + public async Task GetArtistsCount(string search="") { - var result = await _dbContext.UserSellerProfiles + var result = await _dbContext.UserArtists .Where(x=>x.User.DisplayName.Contains(search)) .Include(x=>x.User) .CountAsync(); diff --git a/src/comissions.app.api/Controllers/RequestsController.cs b/src/comissions.app.api/Controllers/RequestsController.cs new file mode 100644 index 0000000..42120bc --- /dev/null +++ b/src/comissions.app.api/Controllers/RequestsController.cs @@ -0,0 +1,66 @@ +using comissions.app.api.Services.Payment; +using comissions.app.api.Services.Storage; +using comissions.app.database; +using comissions.app.database.Entities; +using comissions.app.database.Models.Request; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; + +namespace comissions.app.api.Controllers; + +[ApiController] +[Route("api/[controller]")] +public class RequestsController : Controller +{ + private readonly ApplicationDbContext _dbContext; + private readonly IStorageService _storageService; + private readonly IPaymentService _paymentService; + + + public RequestsController(ApplicationDbContext dbContext, IPaymentService paymentService, IStorageService storageService) + { + _paymentService = paymentService; + _storageService = storageService; + _dbContext = dbContext; + } + + [HttpGet] + [Route("Requests")] + public async Task GetRequests(string search="",int offset = 0, int pageSize = 10) + { + var requests = await _dbContext.Requests + .Include(x=>x.Artist) + .Where(x=>x.Artist.Name.Contains(search) || x.Message.Contains(search)) + .Skip(offset).Take(pageSize).ToListAsync(); + var result = requests.Select(x=>x.ToModel()).ToList(); + return Ok(result); + } + + [HttpGet] + [Route("Requests/{requestId:int}")] + public async Task GetRequest(int requestId) + { + var request = await _dbContext.Requests + .Include(x=>x.Artist) + .FirstOrDefaultAsync(x=>x.Id==requestId); + if(request==null) + return NotFound(); + var result = request.ToModel(); + return Ok(result); + } + + [HttpPost] + [Route("Requests")] + public async Task CreateRequest([FromBody] RequestModel model) + { + var request = new Request() + { + Amount = model.Amount, + Message = model.Message, + RequestDate = DateTime.Now + }; + _dbContext.Requests.Add(request); + await _dbContext.SaveChangesAsync(); + return Ok(request.ToModel()); + } +} \ No newline at end of file diff --git a/src/comissions.app.api/Controllers/SellerProfileController.cs b/src/comissions.app.api/Controllers/SellerProfileController.cs deleted file mode 100644 index f212a09..0000000 --- a/src/comissions.app.api/Controllers/SellerProfileController.cs +++ /dev/null @@ -1,291 +0,0 @@ -using comissions.app.api.Extensions; -using comissions.app.api.Models.PortfolioModel; -using comissions.app.api.Models.SellerProfile; -using comissions.app.api.Models.SellerProfileRequest; -using comissions.app.api.Services.Payment; -using comissions.app.api.Services.Storage; -using comissions.app.database; -using comissions.app.database.Entities; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Microsoft.EntityFrameworkCore; -using Newtonsoft.Json; - -namespace comissions.app.api.Controllers; - -[ApiController] -[Route("api/[controller]")] -public class SellerProfileController : Controller -{ - private readonly ApplicationDbContext _dbContext; - private readonly IStorageService _storageService; - private readonly IPaymentService _paymentService; - - - public SellerProfileController(ApplicationDbContext dbContext, IPaymentService paymentService, IStorageService storageService) - { - _paymentService = paymentService; - _storageService = storageService; - _dbContext = dbContext; - } - - [HttpGet] - [Authorize("read:seller-profile")] - public async Task GetSellerProfile() - { - var userId = User.GetUserId(); - var sellerProfile = await _dbContext.UserSellerProfiles.FirstOrDefaultAsync(sellerProfile=>sellerProfile.UserId==userId); - if(sellerProfile==null) - { - var sellerProfileRequest = await _dbContext.SellerProfileRequests.FirstOrDefaultAsync(request=>request.UserId==userId && request.Accepted==false); - if(sellerProfileRequest!=null) - return BadRequest(); - return Unauthorized(); - } - var result = sellerProfile.ToModel(); - return Ok(result); - } - - [HttpPut] - [Authorize("write:seller-profile")] - public async Task UpdateSellerProfile(SellerProfileModel model) - { - var userId = User.GetUserId(); - var existingSellerProfile = await _dbContext.UserSellerProfiles.FirstOrDefaultAsync(sellerProfile=>sellerProfile.UserId==userId); - if (existingSellerProfile == null) - { - var sellerProfileRequest = await _dbContext.SellerProfileRequests.FirstOrDefaultAsync(request=>request.UserId==userId && request.Accepted==false); - if(sellerProfileRequest!=null) - return BadRequest(); - return Unauthorized(); - } - - if (_dbContext.UserSellerProfiles.Any(x => x.Name.ToLower() == model.Name.ToLower())) - return BadRequest(); - - var updatedSellerProfile = model.ToModel(existingSellerProfile); - updatedSellerProfile = _dbContext.UserSellerProfiles.Update(updatedSellerProfile).Entity; - await _dbContext.SaveChangesAsync(); - var result = updatedSellerProfile.ToModel(); - return Ok(result); - } - - [HttpGet] - [Authorize("read:seller-profile")] - [Route("Request")] - public async Task GetSellerProfileRequest() - { - var userId = User.GetUserId(); - var sellerProfileRequest = await _dbContext.SellerProfileRequests.FirstOrDefaultAsync(request=>request.UserId==userId); - if(sellerProfileRequest==null) - return NotFound(); - var result = sellerProfileRequest.ToModel(); - return Ok(result); - } - - [HttpGet] - [Authorize("read:seller-profile")] - [Route("Page")] - public async Task GetSellerProfilePage() - { - var userId = User.GetUserId(); - var sellerProfile = await _dbContext.UserSellerProfiles.Include(x=>x.SellerProfilePageSettings).FirstOrDefaultAsync(sellerProfile=>sellerProfile.UserId==userId); - if(sellerProfile==null) - return NotFound(); - var result = sellerProfile.SellerProfilePageSettings.ToModel(); - return Ok(result); - } - - [HttpPut] - [Authorize("write:seller-profile")] - [Route("Page")] - public async Task UpdateSellerProfilePage([FromBody]SellerProfilePageSettingsModel model) - { - var userId = User.GetUserId(); - var existingSellerProfile = await _dbContext.UserSellerProfiles - .Include(x=>x.SellerProfilePageSettings).FirstOrDefaultAsync(sellerProfile=>sellerProfile.UserId==userId); - if (existingSellerProfile == null) - { - var sellerProfileRequest = await _dbContext.SellerProfileRequests.FirstOrDefaultAsync(request=>request.UserId==userId && request.Accepted==false); - if(sellerProfileRequest!=null) - return BadRequest(); - return Unauthorized(); - } - var updatedSellerProfile = model.ToModel(existingSellerProfile.SellerProfilePageSettings); - updatedSellerProfile = _dbContext.SellerProfilePageSettings.Update(updatedSellerProfile).Entity; - await _dbContext.SaveChangesAsync(); - var result = updatedSellerProfile.ToModel(); - return Ok(result); - } - - [HttpPost] - [Authorize("write:seller-profile")] - public async Task RequestSellerProfile() - { - var userId = User.GetUserId(); - - var existingSellerProfile = await _dbContext.UserSellerProfiles.FirstOrDefaultAsync(sellerProfile=>sellerProfile.UserId==userId); - if (existingSellerProfile != null) - { - return Unauthorized(); - } - - var sellerProfileRequest = await _dbContext.SellerProfileRequests.FirstOrDefaultAsync(request=>request.UserId==userId); - if (sellerProfileRequest != null) - return Ok(sellerProfileRequest.ToModel()); - - sellerProfileRequest = new SellerProfileRequest() - { - Accepted = false, - RequestDate = DateTime.UtcNow, - UserId = userId - }; - _dbContext.SellerProfileRequests.Add(sellerProfileRequest); - await _dbContext.SaveChangesAsync(); - return Ok(); - } - [HttpGet] - [Authorize("read:seller-profile")] - [Route("{sellerServiceId:int}/Portfolio/{portfolioId:int}")] - public async Task GetPortfolio(int sellerServiceId, int portfolioId) - { - var userId = User.GetUserId(); - var existingSellerProfile = await _dbContext.UserSellerProfiles.FirstOrDefaultAsync(sellerProfile=>sellerProfile.UserId==userId); - if (existingSellerProfile == null) - { - var sellerProfileRequest = await _dbContext.SellerProfileRequests.FirstOrDefaultAsync(request=>request.UserId==userId && request.Accepted==false); - if(sellerProfileRequest!=null) - return BadRequest(); - return Unauthorized(); - } - if(existingSellerProfile.Suspended) - return BadRequest(); - - var portfolio = await _dbContext.SellerProfilePortfolioPieces - .FirstAsync(x => x.SellerProfileId == existingSellerProfile.Id && x.Id==portfolioId); - var content = await _storageService.DownloadImageAsync(portfolio.FileReference); - return new FileStreamResult(content, "application/octet-stream"); - } - - [HttpGet] - [Route("Portfolio")] - [Authorize("read:seller-profile")] - public async Task GetPortfolio() - { - var userId = User.GetUserId(); - var existingSellerProfile = await _dbContext.UserSellerProfiles.FirstOrDefaultAsync(sellerProfile=>sellerProfile.UserId==userId); - if (existingSellerProfile == null) - { - var sellerProfileRequest = await _dbContext.SellerProfileRequests.FirstOrDefaultAsync(request=>request.UserId==userId && request.Accepted==false); - if(sellerProfileRequest!=null) - return BadRequest(); - return Unauthorized(); - } - if(existingSellerProfile.Suspended) - return BadRequest(); - var portfolio = await _dbContext.SellerProfilePortfolioPieces.Where(x=>x.SellerProfileId==existingSellerProfile.Id).ToListAsync(); - var result = portfolio.Select(x=>x.ToModel()).ToList(); - return Ok(result); - } - - [HttpPost] - [Route("Portfolio")] - [Authorize("write:seller-profile")] - public async Task AddPortfolio() - { - var userId = User.GetUserId(); - var existingSellerProfile = await _dbContext.UserSellerProfiles.FirstOrDefaultAsync(sellerProfile=>sellerProfile.UserId==userId); - if (existingSellerProfile == null) - { - return BadRequest(); - } - - if(existingSellerProfile.Suspended) - return BadRequest(); - var url = await _storageService.UploadImageAsync(HttpContext.Request.Body, Guid.NewGuid().ToString()); - var portfolio = new SellerProfilePortfolioPiece() - { - SellerProfileId = existingSellerProfile.Id, - FileReference = url - }; - portfolio.SellerProfileId = existingSellerProfile.Id; - _dbContext.SellerProfilePortfolioPieces.Add(portfolio); - await _dbContext.SaveChangesAsync(); - var result = portfolio.ToModel(); - return Ok(result); - } - - [HttpDelete] - [Authorize("write:seller-profile")] - [Route("Portfolio/{portfolioId:int}")] - public async Task DeletePortfolio(int portfolioId) - { - var userId = User.GetUserId(); - var existingSellerProfile = await _dbContext.UserSellerProfiles.FirstOrDefaultAsync(sellerProfile=>sellerProfile.UserId==userId); - if (existingSellerProfile == null) - { - var sellerProfileRequest = await _dbContext.SellerProfileRequests.FirstOrDefaultAsync(request=>request.UserId==userId && request.Accepted==false); - if(sellerProfileRequest!=null) - return BadRequest(); - return Unauthorized(); - } - if(existingSellerProfile.Suspended) - return BadRequest(); - var portfolio = await _dbContext.SellerProfilePortfolioPieces.FirstOrDefaultAsync(x=>x.Id==portfolioId); - if(portfolio==null) - return NotFound(); - if(portfolio.SellerProfileId!=existingSellerProfile.Id) - return BadRequest(); - _dbContext.SellerProfilePortfolioPieces.Remove(portfolio); - await _dbContext.SaveChangesAsync(); - return Ok(); - } - - [HttpGet] - [Authorize("write:seller-profile")] - [Route("Onboard")] - public async Task PaymentAccountStatus() - { - var userId = User.GetUserId(); - var existingSellerProfile = await _dbContext.UserSellerProfiles.FirstOrDefaultAsync(sellerProfile=>sellerProfile.UserId==userId); - if (existingSellerProfile == null) - { - var sellerProfileRequest = await _dbContext.SellerProfileRequests.FirstOrDefaultAsync(request=>request.UserId==userId && request.Accepted==false); - if(sellerProfileRequest!=null) - return BadRequest(); - return Unauthorized(); - } - - if(existingSellerProfile.Suspended) - return BadRequest(); - var result = _paymentService.SellerAccountIsOnboarded(existingSellerProfile.StripeAccountId); - return Ok(new SellerOnboardStatusModel(){ Onboarded= result }); - } - - [HttpGet] - [Authorize("write:seller-profile")] - [Route("Onboard/Url")] - public async Task GetPaymentAccount() - { - var userId = User.GetUserId(); - var existingSellerProfile = await _dbContext.UserSellerProfiles.FirstOrDefaultAsync(sellerProfile=>sellerProfile.UserId==userId); - if (existingSellerProfile == null) - { - var sellerProfileRequest = await _dbContext.SellerProfileRequests.FirstOrDefaultAsync(request=>request.UserId==userId && request.Accepted==false); - if(sellerProfileRequest!=null) - return BadRequest(); - return Unauthorized(); - } - if(existingSellerProfile.Suspended) - return BadRequest(); - if(existingSellerProfile.StripeAccountId==null) - return BadRequest(); - - var result = _paymentService.CreateSellerAccountOnboardingUrl(existingSellerProfile.StripeAccountId); - return Ok(new SellerOnboardUrlModel() - { - OnboardUrl = result - }); - } - -} \ No newline at end of file diff --git a/src/comissions.app.api/Entities/SellerProfilePageSettings.cs b/src/comissions.app.api/Entities/ArtistPageSettings.cs similarity index 90% rename from src/comissions.app.api/Entities/SellerProfilePageSettings.cs rename to src/comissions.app.api/Entities/ArtistPageSettings.cs index 79e86fd..fefae49 100644 --- a/src/comissions.app.api/Entities/SellerProfilePageSettings.cs +++ b/src/comissions.app.api/Entities/ArtistPageSettings.cs @@ -2,13 +2,13 @@ using System.ComponentModel.DataAnnotations.Schema; namespace comissions.app.database.Entities; -public class SellerProfilePageSettings +public class ArtistPageSettings { public int Id { get; set; } - [ForeignKey("SellerProfile")] - public int SellerProfileId { get; set; } - public virtual UserSellerProfile SellerProfile { get; set; } = null!; + [ForeignKey("Artist")] + public int ArtistId { get; set; } + public virtual UserArtist Artist { get; set; } = null!; public string RequestButtonHoverBGColor { get; set; } public string RequestButtonHoverTextColor { get; set; } diff --git a/src/comissions.app.api/Entities/ArtistPortfolioPiece.cs b/src/comissions.app.api/Entities/ArtistPortfolioPiece.cs new file mode 100644 index 0000000..a5bcc84 --- /dev/null +++ b/src/comissions.app.api/Entities/ArtistPortfolioPiece.cs @@ -0,0 +1,9 @@ +namespace comissions.app.database.Entities; + +public class ArtistPortfolioPiece +{ + public int Id { get; set; } + public int ArtistId { get; set; } + public string FileReference { get; set; } + public virtual UserArtist Artist { get; set; } = null!; +} \ No newline at end of file diff --git a/src/comissions.app.api/Entities/SellerProfileRequest.cs b/src/comissions.app.api/Entities/ArtistRequest.cs similarity index 90% rename from src/comissions.app.api/Entities/SellerProfileRequest.cs rename to src/comissions.app.api/Entities/ArtistRequest.cs index 9d2df4b..4fb45d5 100644 --- a/src/comissions.app.api/Entities/SellerProfileRequest.cs +++ b/src/comissions.app.api/Entities/ArtistRequest.cs @@ -1,6 +1,6 @@ namespace comissions.app.database.Entities; -public class SellerProfileRequest +public class ArtistRequest { public int Id { get; set; } public string UserId { get; set; } = null!; diff --git a/src/comissions.app.api/Entities/Request.cs b/src/comissions.app.api/Entities/Request.cs new file mode 100644 index 0000000..c4d6e47 --- /dev/null +++ b/src/comissions.app.api/Entities/Request.cs @@ -0,0 +1,20 @@ +namespace comissions.app.database.Entities; + +public class Request +{ + public int Id { get; set; } + public string Message { get; set; } + public decimal Amount { get; set; } + public string UserId { get; set; } + public int ArtistId { get; set; } + public DateTime RequestDate { get; set; } + public bool Accepted { get; set; } = false; + public DateTime? AcceptedDate { get; set; } + public bool Declined { get; set; } = false; + public DateTime? DeclinedDate { get; set; } + public bool Completed { get; set; } = false; + public DateTime? CompletedDate { get; set; } + + public virtual User User { get; set; } = null!; + public virtual UserArtist Artist { get; set; } = null!; +} \ No newline at end of file diff --git a/src/comissions.app.api/Entities/SellerProfilePortfolioPiece.cs b/src/comissions.app.api/Entities/SellerProfilePortfolioPiece.cs deleted file mode 100644 index 0677bec..0000000 --- a/src/comissions.app.api/Entities/SellerProfilePortfolioPiece.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace comissions.app.database.Entities; - -public class SellerProfilePortfolioPiece -{ - public int Id { get; set; } - public int SellerProfileId { get; set; } - public string FileReference { get; set; } - public int? SellerServiceId { get; set; } - public virtual SellerService SellerService { get; set; } = null!; - public virtual UserSellerProfile SellerProfile { get; set; } = null!; -} \ No newline at end of file diff --git a/src/comissions.app.api/Entities/SellerService.cs b/src/comissions.app.api/Entities/SellerService.cs deleted file mode 100644 index 974e5c5..0000000 --- a/src/comissions.app.api/Entities/SellerService.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace comissions.app.database.Entities; - -public class SellerService -{ - public int Id { get; set; } - public int SellerProfileId { get; set; } - public string Name { get; set; } = null!; - public string Description { get; set; } = null!; - public double Price { get; set; } - public bool Archived { get; set; } = false; - - public virtual ICollection PortfolioPieces { get; set; } = new List(); - public virtual UserSellerProfile SellerProfile { get; set; } = null!; -} \ No newline at end of file diff --git a/src/comissions.app.api/Entities/User.cs b/src/comissions.app.api/Entities/User.cs index 43c8752..c0792c4 100644 --- a/src/comissions.app.api/Entities/User.cs +++ b/src/comissions.app.api/Entities/User.cs @@ -10,7 +10,7 @@ public record User public string DisplayName { get; set; } = null!; public string Biography { get; set; } = null!; public string Email { get; set; } = null!; - public int? UserSellerProfileId { get; set; } + public int? UserArtistId { get; set; } public bool Banned { get; set; } = false; public DateTime? BannedDate { get; set; } @@ -24,5 +24,5 @@ public record User public string? SuspendedReason { get; set; } public string? SuspendAdminId { get; set; } - [JsonIgnore] public virtual UserSellerProfile? UserSellerProfile { get; set; } + [JsonIgnore] public virtual UserArtist? UserArtist { get; set; } } \ No newline at end of file diff --git a/src/comissions.app.api/Entities/UserSellerProfile.cs b/src/comissions.app.api/Entities/UserSellerProfile.cs index 2d52cd6..3647592 100644 --- a/src/comissions.app.api/Entities/UserSellerProfile.cs +++ b/src/comissions.app.api/Entities/UserSellerProfile.cs @@ -2,7 +2,7 @@ using System.ComponentModel.DataAnnotations.Schema; namespace comissions.app.database.Entities; -public record UserSellerProfile +public record UserArtist { public int Id { get; set; } [ForeignKey(nameof(User))] @@ -24,9 +24,7 @@ public record UserSellerProfile public string? SuspendAdminId { get; set; } public virtual User User { get; set; } = null!; - public int SellerProfilePageSettingsId { get; set; } - public virtual SellerProfilePageSettings SellerProfilePageSettings { get; set; } = null!; - - public virtual ICollection SellerServices { get; set; } = new List(); - public virtual ICollection PortfolioPieces { get; set; } = new List(); + public int ArtistPageSettingsId { get; set; } + public virtual ArtistPageSettings ArtistPageSettings { get; set; } = null!; + public virtual ICollection PortfolioPieces { get; set; } = new List(); } \ No newline at end of file diff --git a/src/comissions.app.api/Middleware/UserMiddleware.cs b/src/comissions.app.api/Middleware/UserMiddleware.cs index 211ff9b..d473c06 100644 --- a/src/comissions.app.api/Middleware/UserMiddleware.cs +++ b/src/comissions.app.api/Middleware/UserMiddleware.cs @@ -22,7 +22,7 @@ public class UserMiddleware { var userId = context.User.Claims.First(c => c.Type == ClaimTypes.NameIdentifier).Value; - var user = await dbContext.Users.Include(x=>x.UserSellerProfile).FirstOrDefaultAsync(x=>x.Id==userId); + var user = await dbContext.Users.Include(x=>x.UserArtist).FirstOrDefaultAsync(x=>x.Id==userId); if (user == null) { @@ -87,23 +87,23 @@ public class UserMiddleware } } - if (user.UserSellerProfile != null && user.UserSellerProfile.Suspended) + if (user.UserArtist != null && user.UserArtist.Suspended) { - if (user.UserSellerProfile.UnsuspendDate < DateTime.UtcNow) + if (user.UserArtist.UnsuspendDate < DateTime.UtcNow) { - user.UserSellerProfile.Suspended = false; - user.UserSellerProfile.SuspendedDate = null; - user.UserSellerProfile.UnsuspendDate = null; - user.UserSellerProfile.SuspendedReason = null; - user.UserSellerProfile.SuspendAdminId = null; + user.UserArtist.Suspended = false; + user.UserArtist.SuspendedDate = null; + user.UserArtist.UnsuspendDate = null; + user.UserArtist.SuspendedReason = null; + user.UserArtist.SuspendAdminId = null; dbContext.Users.Update(user); await dbContext.SaveChangesAsync(); } else { - var suspendDate = user.UserSellerProfile.SuspendedDate.Value.ToString("MM/dd/yyyy"); - var unsuspendDate = user.UserSellerProfile.UnsuspendDate.Value.ToString("MM/dd/yyyy"); - await context.Response.WriteAsync($"Banned on {suspendDate} until {unsuspendDate} for {user.UserSellerProfile.SuspendedReason} by {user.UserSellerProfile.SuspendAdminId}."); + var suspendDate = user.UserArtist.SuspendedDate.Value.ToString("MM/dd/yyyy"); + var unsuspendDate = user.UserArtist.UnsuspendDate.Value.ToString("MM/dd/yyyy"); + await context.Response.WriteAsync($"Banned on {suspendDate} until {unsuspendDate} for {user.UserArtist.SuspendedReason} by {user.UserArtist.SuspendAdminId}."); context.Response.StatusCode = StatusCodes.Status403Forbidden; return; } diff --git a/src/comissions.app.api/Migrations/20240212032736_Initial.Designer.cs b/src/comissions.app.api/Migrations/20240212032736_Initial.Designer.cs index 4f971b0..d317015 100644 --- a/src/comissions.app.api/Migrations/20240212032736_Initial.Designer.cs +++ b/src/comissions.app.api/Migrations/20240212032736_Initial.Designer.cs @@ -26,7 +26,7 @@ namespace comissions.app.api.Migrations NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); - modelBuilder.Entity("comissions.app.database.Entities.SellerProfilePortfolioPiece", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistPortfolioPiece", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -38,22 +38,22 @@ namespace comissions.app.api.Migrations .IsRequired() .HasColumnType("text"); - b.Property("SellerProfileId") + b.Property("ArtistId") .HasColumnType("integer"); - b.Property("SellerServiceId") + b.Property("ArtistServiceId") .HasColumnType("integer"); b.HasKey("Id"); - b.HasIndex("SellerProfileId"); + b.HasIndex("ArtistId"); - b.HasIndex("SellerServiceId"); + b.HasIndex("ArtistServiceId"); - b.ToTable("SellerProfilePortfolioPieces"); + b.ToTable("ArtistPortfolioPieces"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerProfileRequest", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistRequest", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -78,10 +78,10 @@ namespace comissions.app.api.Migrations b.HasIndex("UserId"); - b.ToTable("SellerProfileRequests"); + b.ToTable("ArtistRequests"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerService", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistService", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -103,17 +103,17 @@ namespace comissions.app.api.Migrations b.Property("Price") .HasColumnType("double precision"); - b.Property("SellerProfileId") + b.Property("ArtistId") .HasColumnType("integer"); b.HasKey("Id"); - b.HasIndex("SellerProfileId"); + b.HasIndex("ArtistId"); - b.ToTable("SellerServices"); + b.ToTable("ArtistServices"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerServiceOrder", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistServiceOrder", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -137,10 +137,10 @@ namespace comissions.app.api.Migrations b.Property("Price") .HasColumnType("double precision"); - b.Property("SellerId") + b.Property("ArtistId") .HasColumnType("integer"); - b.Property("SellerServiceId") + b.Property("ArtistServiceId") .HasColumnType("integer"); b.Property("Status") @@ -153,14 +153,14 @@ namespace comissions.app.api.Migrations b.HasIndex("BuyerId"); - b.HasIndex("SellerId"); + b.HasIndex("ArtistId"); - b.HasIndex("SellerServiceId"); + b.HasIndex("ArtistServiceId"); - b.ToTable("SellerServiceOrders"); + b.ToTable("ArtistServiceOrders"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerServiceOrderReview", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistServiceOrderReview", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -181,21 +181,21 @@ namespace comissions.app.api.Migrations .IsRequired() .HasColumnType("text"); - b.Property("SellerServiceId") + b.Property("ArtistServiceId") .HasColumnType("integer"); - b.Property("SellerServiceOrderId") + b.Property("ArtistServiceOrderId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("ReviewerId"); - b.HasIndex("SellerServiceId"); + b.HasIndex("ArtistServiceId"); - b.HasIndex("SellerServiceOrderId"); + b.HasIndex("ArtistServiceOrderId"); - b.ToTable("SellerServiceOrderReviews"); + b.ToTable("ArtistServiceOrderReviews"); }); modelBuilder.Entity("comissions.app.database.Entities.User", b => @@ -245,7 +245,7 @@ namespace comissions.app.api.Migrations b.Property("UnsuspendDate") .HasColumnType("timestamp with time zone"); - b.Property("UserSellerProfileId") + b.Property("UserArtistId") .HasColumnType("integer"); b.HasKey("Id"); @@ -253,7 +253,7 @@ namespace comissions.app.api.Migrations b.ToTable("Users"); }); - modelBuilder.Entity("comissions.app.database.Entities.UserSellerProfile", b => + modelBuilder.Entity("comissions.app.database.Entities.UserArtist", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -302,27 +302,27 @@ namespace comissions.app.api.Migrations b.HasIndex("UserId") .IsUnique(); - b.ToTable("UserSellerProfiles"); + b.ToTable("UserArtists"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerProfilePortfolioPiece", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistPortfolioPiece", b => { - b.HasOne("comissions.app.database.Entities.UserSellerProfile", "SellerProfile") + b.HasOne("comissions.app.database.Entities.UserArtist", "Artist") .WithMany("PortfolioPieces") - .HasForeignKey("SellerProfileId") + .HasForeignKey("ArtistId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.HasOne("comissions.app.database.Entities.SellerService", "SellerService") + b.HasOne("comissions.app.database.Entities.ArtistService", "ArtistService") .WithMany("PortfolioPieces") - .HasForeignKey("SellerServiceId"); + .HasForeignKey("ArtistServiceId"); - b.Navigation("SellerProfile"); + b.Navigation("Artist"); - b.Navigation("SellerService"); + b.Navigation("ArtistService"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerProfileRequest", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistRequest", b => { b.HasOne("comissions.app.database.Entities.User", "User") .WithMany() @@ -333,18 +333,18 @@ namespace comissions.app.api.Migrations b.Navigation("User"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerService", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistService", b => { - b.HasOne("comissions.app.database.Entities.UserSellerProfile", "SellerProfile") - .WithMany("SellerServices") - .HasForeignKey("SellerProfileId") + b.HasOne("comissions.app.database.Entities.UserArtist", "Artist") + .WithMany("ArtistServices") + .HasForeignKey("ArtistId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SellerProfile"); + b.Navigation("Artist"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerServiceOrder", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistServiceOrder", b => { b.HasOne("comissions.app.database.Entities.User", "Buyer") .WithMany("Orders") @@ -352,26 +352,26 @@ namespace comissions.app.api.Migrations .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.HasOne("comissions.app.database.Entities.UserSellerProfile", "Seller") + b.HasOne("comissions.app.database.Entities.UserArtist", "Artist") .WithMany() - .HasForeignKey("SellerId") + .HasForeignKey("ArtistId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.HasOne("comissions.app.database.Entities.SellerService", "SellerService") + b.HasOne("comissions.app.database.Entities.ArtistService", "ArtistService") .WithMany() - .HasForeignKey("SellerServiceId") + .HasForeignKey("ArtistServiceId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Buyer"); - b.Navigation("Seller"); + b.Navigation("Artist"); - b.Navigation("SellerService"); + b.Navigation("ArtistService"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerServiceOrderReview", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistServiceOrderReview", b => { b.HasOne("comissions.app.database.Entities.User", "Reviewer") .WithMany() @@ -379,44 +379,44 @@ namespace comissions.app.api.Migrations .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.HasOne("comissions.app.database.Entities.SellerService", "SellerService") + b.HasOne("comissions.app.database.Entities.ArtistService", "ArtistService") .WithMany("Reviews") - .HasForeignKey("SellerServiceId") + .HasForeignKey("ArtistServiceId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.HasOne("comissions.app.database.Entities.SellerServiceOrder", "SellerServiceOrder") + b.HasOne("comissions.app.database.Entities.ArtistServiceOrder", "ArtistServiceOrder") .WithMany("Reviews") - .HasForeignKey("SellerServiceOrderId") + .HasForeignKey("ArtistServiceOrderId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Reviewer"); - b.Navigation("SellerService"); + b.Navigation("ArtistService"); - b.Navigation("SellerServiceOrder"); + b.Navigation("ArtistServiceOrder"); }); - modelBuilder.Entity("comissions.app.database.Entities.UserSellerProfile", b => + modelBuilder.Entity("comissions.app.database.Entities.UserArtist", b => { b.HasOne("comissions.app.database.Entities.User", "User") - .WithOne("UserSellerProfile") - .HasForeignKey("comissions.app.database.Entities.UserSellerProfile", "UserId") + .WithOne("UserArtist") + .HasForeignKey("comissions.app.database.Entities.UserArtist", "UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("User"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerService", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistService", b => { b.Navigation("PortfolioPieces"); b.Navigation("Reviews"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerServiceOrder", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistServiceOrder", b => { b.Navigation("Reviews"); }); @@ -425,14 +425,14 @@ namespace comissions.app.api.Migrations { b.Navigation("Orders"); - b.Navigation("UserSellerProfile"); + b.Navigation("UserArtist"); }); - modelBuilder.Entity("comissions.app.database.Entities.UserSellerProfile", b => + modelBuilder.Entity("comissions.app.database.Entities.UserArtist", b => { b.Navigation("PortfolioPieces"); - b.Navigation("SellerServices"); + b.Navigation("ArtistServices"); }); #pragma warning restore 612, 618 } diff --git a/src/comissions.app.api/Migrations/20240212032736_Initial.cs b/src/comissions.app.api/Migrations/20240212032736_Initial.cs index fcf7563..6499fa9 100644 --- a/src/comissions.app.api/Migrations/20240212032736_Initial.cs +++ b/src/comissions.app.api/Migrations/20240212032736_Initial.cs @@ -21,7 +21,7 @@ namespace comissions.app.api.Migrations DisplayName = table.Column(type: "text", nullable: false), Biography = table.Column(type: "text", nullable: false), Email = table.Column(type: "text", nullable: false), - UserSellerProfileId = table.Column(type: "integer", nullable: true), + UserArtistId = table.Column(type: "integer", nullable: true), Banned = table.Column(type: "boolean", nullable: false), BannedDate = table.Column(type: "timestamp with time zone", nullable: true), UnbanDate = table.Column(type: "timestamp with time zone", nullable: true), @@ -39,7 +39,7 @@ namespace comissions.app.api.Migrations }); migrationBuilder.CreateTable( - name: "SellerProfileRequests", + name: "ArtistRequests", columns: table => new { Id = table.Column(type: "integer", nullable: false) @@ -51,9 +51,9 @@ namespace comissions.app.api.Migrations }, constraints: table => { - table.PrimaryKey("PK_SellerProfileRequests", x => x.Id); + table.PrimaryKey("PK_ArtistRequests", x => x.Id); table.ForeignKey( - name: "FK_SellerProfileRequests_Users_UserId", + name: "FK_ArtistRequests_Users_UserId", column: x => x.UserId, principalTable: "Users", principalColumn: "Id", @@ -61,7 +61,7 @@ namespace comissions.app.api.Migrations }); migrationBuilder.CreateTable( - name: "UserSellerProfiles", + name: "UserArtists", columns: table => new { Id = table.Column(type: "integer", nullable: false) @@ -80,9 +80,9 @@ namespace comissions.app.api.Migrations }, constraints: table => { - table.PrimaryKey("PK_UserSellerProfiles", x => x.Id); + table.PrimaryKey("PK_UserArtists", x => x.Id); table.ForeignKey( - name: "FK_UserSellerProfiles_Users_UserId", + name: "FK_UserArtists_Users_UserId", column: x => x.UserId, principalTable: "Users", principalColumn: "Id", @@ -90,12 +90,12 @@ namespace comissions.app.api.Migrations }); migrationBuilder.CreateTable( - name: "SellerServices", + name: "ArtistServices", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - SellerProfileId = table.Column(type: "integer", nullable: false), + ArtistId = table.Column(type: "integer", nullable: false), Name = table.Column(type: "text", nullable: false), Description = table.Column(type: "text", nullable: false), Price = table.Column(type: "double precision", nullable: false), @@ -103,50 +103,50 @@ namespace comissions.app.api.Migrations }, constraints: table => { - table.PrimaryKey("PK_SellerServices", x => x.Id); + table.PrimaryKey("PK_ArtistServices", x => x.Id); table.ForeignKey( - name: "FK_SellerServices_UserSellerProfiles_SellerProfileId", - column: x => x.SellerProfileId, - principalTable: "UserSellerProfiles", + name: "FK_ArtistServices_UserArtists_ArtistId", + column: x => x.ArtistId, + principalTable: "UserArtists", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( - name: "SellerProfilePortfolioPieces", + name: "ArtistPortfolioPieces", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - SellerProfileId = table.Column(type: "integer", nullable: false), + ArtistId = table.Column(type: "integer", nullable: false), FileReference = table.Column(type: "text", nullable: false), - SellerServiceId = table.Column(type: "integer", nullable: true) + ArtistServiceId = table.Column(type: "integer", nullable: true) }, constraints: table => { - table.PrimaryKey("PK_SellerProfilePortfolioPieces", x => x.Id); + table.PrimaryKey("PK_ArtistPortfolioPieces", x => x.Id); table.ForeignKey( - name: "FK_SellerProfilePortfolioPieces_SellerServices_SellerServiceId", - column: x => x.SellerServiceId, - principalTable: "SellerServices", + name: "FK_ArtistPortfolioPieces_ArtistServices_ArtistServiceId", + column: x => x.ArtistServiceId, + principalTable: "ArtistServices", principalColumn: "Id"); table.ForeignKey( - name: "FK_SellerProfilePortfolioPieces_UserSellerProfiles_SellerProfi~", - column: x => x.SellerProfileId, - principalTable: "UserSellerProfiles", + name: "FK_ArtistPortfolioPieces_UserArtists_ArtistProfi~", + column: x => x.ArtistId, + principalTable: "UserArtists", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( - name: "SellerServiceOrders", + name: "ArtistServiceOrders", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), BuyerId = table.Column(type: "text", nullable: false), - SellerServiceId = table.Column(type: "integer", nullable: false), - SellerId = table.Column(type: "integer", nullable: false), + ArtistServiceId = table.Column(type: "integer", nullable: false), + ArtistId = table.Column(type: "integer", nullable: false), Status = table.Column(type: "integer", nullable: false), Price = table.Column(type: "double precision", nullable: false), CreatedDate = table.Column(type: "timestamp with time zone", nullable: false), @@ -156,21 +156,21 @@ namespace comissions.app.api.Migrations }, constraints: table => { - table.PrimaryKey("PK_SellerServiceOrders", x => x.Id); + table.PrimaryKey("PK_ArtistServiceOrders", x => x.Id); table.ForeignKey( - name: "FK_SellerServiceOrders_SellerServices_SellerServiceId", - column: x => x.SellerServiceId, - principalTable: "SellerServices", + name: "FK_ArtistServiceOrders_ArtistServices_ArtistServiceId", + column: x => x.ArtistServiceId, + principalTable: "ArtistServices", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( - name: "FK_SellerServiceOrders_UserSellerProfiles_SellerId", - column: x => x.SellerId, - principalTable: "UserSellerProfiles", + name: "FK_ArtistServiceOrders_UserArtists_ArtistId", + column: x => x.ArtistId, + principalTable: "UserArtists", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( - name: "FK_SellerServiceOrders_Users_BuyerId", + name: "FK_ArtistServiceOrders_Users_BuyerId", column: x => x.BuyerId, principalTable: "Users", principalColumn: "Id", @@ -178,35 +178,35 @@ namespace comissions.app.api.Migrations }); migrationBuilder.CreateTable( - name: "SellerServiceOrderReviews", + name: "ArtistServiceOrderReviews", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), ReviewerId = table.Column(type: "text", nullable: false), - SellerServiceOrderId = table.Column(type: "integer", nullable: false), - SellerServiceId = table.Column(type: "integer", nullable: false), + ArtistServiceOrderId = table.Column(type: "integer", nullable: false), + ArtistServiceId = table.Column(type: "integer", nullable: false), ReviewDate = table.Column(type: "timestamp with time zone", nullable: false), Review = table.Column(type: "text", nullable: true), Rating = table.Column(type: "integer", nullable: false) }, constraints: table => { - table.PrimaryKey("PK_SellerServiceOrderReviews", x => x.Id); + table.PrimaryKey("PK_ArtistServiceOrderReviews", x => x.Id); table.ForeignKey( - name: "FK_SellerServiceOrderReviews_SellerServiceOrders_SellerService~", - column: x => x.SellerServiceOrderId, - principalTable: "SellerServiceOrders", + name: "FK_ArtistServiceOrderReviews_ArtistServiceOrders_ArtistService~", + column: x => x.ArtistServiceOrderId, + principalTable: "ArtistServiceOrders", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( - name: "FK_SellerServiceOrderReviews_SellerServices_SellerServiceId", - column: x => x.SellerServiceId, - principalTable: "SellerServices", + name: "FK_ArtistServiceOrderReviews_ArtistServices_ArtistServiceId", + column: x => x.ArtistServiceId, + principalTable: "ArtistServices", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( - name: "FK_SellerServiceOrderReviews_Users_ReviewerId", + name: "FK_ArtistServiceOrderReviews_Users_ReviewerId", column: x => x.ReviewerId, principalTable: "Users", principalColumn: "Id", @@ -214,58 +214,58 @@ namespace comissions.app.api.Migrations }); migrationBuilder.CreateIndex( - name: "IX_SellerProfilePortfolioPieces_SellerProfileId", - table: "SellerProfilePortfolioPieces", - column: "SellerProfileId"); + name: "IX_ArtistPortfolioPieces_ArtistId", + table: "ArtistPortfolioPieces", + column: "ArtistId"); migrationBuilder.CreateIndex( - name: "IX_SellerProfilePortfolioPieces_SellerServiceId", - table: "SellerProfilePortfolioPieces", - column: "SellerServiceId"); + name: "IX_ArtistPortfolioPieces_ArtistServiceId", + table: "ArtistPortfolioPieces", + column: "ArtistServiceId"); migrationBuilder.CreateIndex( - name: "IX_SellerProfileRequests_UserId", - table: "SellerProfileRequests", + name: "IX_ArtistRequests_UserId", + table: "ArtistRequests", column: "UserId"); migrationBuilder.CreateIndex( - name: "IX_SellerServiceOrderReviews_ReviewerId", - table: "SellerServiceOrderReviews", + name: "IX_ArtistServiceOrderReviews_ReviewerId", + table: "ArtistServiceOrderReviews", column: "ReviewerId"); migrationBuilder.CreateIndex( - name: "IX_SellerServiceOrderReviews_SellerServiceId", - table: "SellerServiceOrderReviews", - column: "SellerServiceId"); + name: "IX_ArtistServiceOrderReviews_ArtistServiceId", + table: "ArtistServiceOrderReviews", + column: "ArtistServiceId"); migrationBuilder.CreateIndex( - name: "IX_SellerServiceOrderReviews_SellerServiceOrderId", - table: "SellerServiceOrderReviews", - column: "SellerServiceOrderId"); + name: "IX_ArtistServiceOrderReviews_ArtistServiceOrderId", + table: "ArtistServiceOrderReviews", + column: "ArtistServiceOrderId"); migrationBuilder.CreateIndex( - name: "IX_SellerServiceOrders_BuyerId", - table: "SellerServiceOrders", + name: "IX_ArtistServiceOrders_BuyerId", + table: "ArtistServiceOrders", column: "BuyerId"); migrationBuilder.CreateIndex( - name: "IX_SellerServiceOrders_SellerId", - table: "SellerServiceOrders", - column: "SellerId"); + name: "IX_ArtistServiceOrders_ArtistId", + table: "ArtistServiceOrders", + column: "ArtistId"); migrationBuilder.CreateIndex( - name: "IX_SellerServiceOrders_SellerServiceId", - table: "SellerServiceOrders", - column: "SellerServiceId"); + name: "IX_ArtistServiceOrders_ArtistServiceId", + table: "ArtistServiceOrders", + column: "ArtistServiceId"); migrationBuilder.CreateIndex( - name: "IX_SellerServices_SellerProfileId", - table: "SellerServices", - column: "SellerProfileId"); + name: "IX_ArtistServices_ArtistId", + table: "ArtistServices", + column: "ArtistId"); migrationBuilder.CreateIndex( - name: "IX_UserSellerProfiles_UserId", - table: "UserSellerProfiles", + name: "IX_UserArtists_UserId", + table: "UserArtists", column: "UserId", unique: true); } @@ -274,22 +274,22 @@ namespace comissions.app.api.Migrations protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( - name: "SellerProfilePortfolioPieces"); + name: "ArtistPortfolioPieces"); migrationBuilder.DropTable( - name: "SellerProfileRequests"); + name: "ArtistRequests"); migrationBuilder.DropTable( - name: "SellerServiceOrderReviews"); + name: "ArtistServiceOrderReviews"); migrationBuilder.DropTable( - name: "SellerServiceOrders"); + name: "ArtistServiceOrders"); migrationBuilder.DropTable( - name: "SellerServices"); + name: "ArtistServices"); migrationBuilder.DropTable( - name: "UserSellerProfiles"); + name: "UserArtists"); migrationBuilder.DropTable( name: "Users"); diff --git a/src/comissions.app.api/Migrations/20240218121059_page settings.Designer.cs b/src/comissions.app.api/Migrations/20240218121059_page settings.Designer.cs index c814011..28d8c61 100644 --- a/src/comissions.app.api/Migrations/20240218121059_page settings.Designer.cs +++ b/src/comissions.app.api/Migrations/20240218121059_page settings.Designer.cs @@ -25,7 +25,7 @@ namespace comissions.app.api.Migrations NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); - modelBuilder.Entity("comissions.app.database.Entities.SellerProfilePageSettings", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistPageSettings", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -152,18 +152,18 @@ namespace comissions.app.api.Migrations .IsRequired() .HasColumnType("text"); - b.Property("SellerProfileId") + b.Property("ArtistId") .HasColumnType("integer"); b.HasKey("Id"); - b.HasIndex("SellerProfileId") + b.HasIndex("ArtistId") .IsUnique(); - b.ToTable("SellerProfilePageSettings"); + b.ToTable("ArtistPageSettings"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerProfilePortfolioPiece", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistPortfolioPiece", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -175,22 +175,22 @@ namespace comissions.app.api.Migrations .IsRequired() .HasColumnType("text"); - b.Property("SellerProfileId") + b.Property("ArtistId") .HasColumnType("integer"); - b.Property("SellerServiceId") + b.Property("ArtistServiceId") .HasColumnType("integer"); b.HasKey("Id"); - b.HasIndex("SellerProfileId"); + b.HasIndex("ArtistId"); - b.HasIndex("SellerServiceId"); + b.HasIndex("ArtistServiceId"); - b.ToTable("SellerProfilePortfolioPieces"); + b.ToTable("ArtistPortfolioPieces"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerProfileRequest", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistRequest", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -215,10 +215,10 @@ namespace comissions.app.api.Migrations b.HasIndex("UserId"); - b.ToTable("SellerProfileRequests"); + b.ToTable("ArtistRequests"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerService", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistService", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -240,17 +240,17 @@ namespace comissions.app.api.Migrations b.Property("Price") .HasColumnType("double precision"); - b.Property("SellerProfileId") + b.Property("ArtistId") .HasColumnType("integer"); b.HasKey("Id"); - b.HasIndex("SellerProfileId"); + b.HasIndex("ArtistId"); - b.ToTable("SellerServices"); + b.ToTable("ArtistServices"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerServiceOrder", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistServiceOrder", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -274,10 +274,10 @@ namespace comissions.app.api.Migrations b.Property("Price") .HasColumnType("double precision"); - b.Property("SellerId") + b.Property("ArtistId") .HasColumnType("integer"); - b.Property("SellerServiceId") + b.Property("ArtistServiceId") .HasColumnType("integer"); b.Property("Status") @@ -290,14 +290,14 @@ namespace comissions.app.api.Migrations b.HasIndex("BuyerId"); - b.HasIndex("SellerId"); + b.HasIndex("ArtistId"); - b.HasIndex("SellerServiceId"); + b.HasIndex("ArtistServiceId"); - b.ToTable("SellerServiceOrders"); + b.ToTable("ArtistServiceOrders"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerServiceOrderReview", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistServiceOrderReview", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -318,21 +318,21 @@ namespace comissions.app.api.Migrations .IsRequired() .HasColumnType("text"); - b.Property("SellerServiceId") + b.Property("ArtistServiceId") .HasColumnType("integer"); - b.Property("SellerServiceOrderId") + b.Property("ArtistServiceOrderId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("ReviewerId"); - b.HasIndex("SellerServiceId"); + b.HasIndex("ArtistServiceId"); - b.HasIndex("SellerServiceOrderId"); + b.HasIndex("ArtistServiceOrderId"); - b.ToTable("SellerServiceOrderReviews"); + b.ToTable("ArtistServiceOrderReviews"); }); modelBuilder.Entity("comissions.app.database.Entities.User", b => @@ -382,7 +382,7 @@ namespace comissions.app.api.Migrations b.Property("UnsuspendDate") .HasColumnType("timestamp with time zone"); - b.Property("UserSellerProfileId") + b.Property("UserArtistId") .HasColumnType("integer"); b.HasKey("Id"); @@ -390,7 +390,7 @@ namespace comissions.app.api.Migrations b.ToTable("Users"); }); - modelBuilder.Entity("comissions.app.database.Entities.UserSellerProfile", b => + modelBuilder.Entity("comissions.app.database.Entities.UserArtist", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -416,7 +416,7 @@ namespace comissions.app.api.Migrations .IsRequired() .HasColumnType("text"); - b.Property("SellerProfilePageSettingsId") + b.Property("ArtistPageSettingsId") .HasColumnType("integer"); b.Property("SocialMediaLink1") @@ -462,38 +462,38 @@ namespace comissions.app.api.Migrations b.HasIndex("UserId") .IsUnique(); - b.ToTable("UserSellerProfiles"); + b.ToTable("UserArtists"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerProfilePageSettings", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistPageSettings", b => { - b.HasOne("comissions.app.database.Entities.UserSellerProfile", "SellerProfile") - .WithOne("SellerProfilePageSettings") - .HasForeignKey("comissions.app.database.Entities.SellerProfilePageSettings", "SellerProfileId") + b.HasOne("comissions.app.database.Entities.UserArtist", "Artist") + .WithOne("ArtistPageSettings") + .HasForeignKey("comissions.app.database.Entities.ArtistPageSettings", "ArtistId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SellerProfile"); + b.Navigation("Artist"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerProfilePortfolioPiece", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistPortfolioPiece", b => { - b.HasOne("comissions.app.database.Entities.UserSellerProfile", "SellerProfile") + b.HasOne("comissions.app.database.Entities.UserArtist", "Artist") .WithMany("PortfolioPieces") - .HasForeignKey("SellerProfileId") + .HasForeignKey("ArtistId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.HasOne("comissions.app.database.Entities.SellerService", "SellerService") + b.HasOne("comissions.app.database.Entities.ArtistService", "ArtistService") .WithMany("PortfolioPieces") - .HasForeignKey("SellerServiceId"); + .HasForeignKey("ArtistServiceId"); - b.Navigation("SellerProfile"); + b.Navigation("Artist"); - b.Navigation("SellerService"); + b.Navigation("ArtistService"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerProfileRequest", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistRequest", b => { b.HasOne("comissions.app.database.Entities.User", "User") .WithMany() @@ -504,18 +504,18 @@ namespace comissions.app.api.Migrations b.Navigation("User"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerService", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistService", b => { - b.HasOne("comissions.app.database.Entities.UserSellerProfile", "SellerProfile") - .WithMany("SellerServices") - .HasForeignKey("SellerProfileId") + b.HasOne("comissions.app.database.Entities.UserArtist", "Artist") + .WithMany("ArtistServices") + .HasForeignKey("ArtistId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SellerProfile"); + b.Navigation("Artist"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerServiceOrder", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistServiceOrder", b => { b.HasOne("comissions.app.database.Entities.User", "Buyer") .WithMany("Orders") @@ -523,26 +523,26 @@ namespace comissions.app.api.Migrations .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.HasOne("comissions.app.database.Entities.UserSellerProfile", "Seller") + b.HasOne("comissions.app.database.Entities.UserArtist", "Artist") .WithMany() - .HasForeignKey("SellerId") + .HasForeignKey("ArtistId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.HasOne("comissions.app.database.Entities.SellerService", "SellerService") + b.HasOne("comissions.app.database.Entities.ArtistService", "ArtistService") .WithMany() - .HasForeignKey("SellerServiceId") + .HasForeignKey("ArtistServiceId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Buyer"); - b.Navigation("Seller"); + b.Navigation("Artist"); - b.Navigation("SellerService"); + b.Navigation("ArtistService"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerServiceOrderReview", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistServiceOrderReview", b => { b.HasOne("comissions.app.database.Entities.User", "Reviewer") .WithMany() @@ -550,44 +550,44 @@ namespace comissions.app.api.Migrations .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.HasOne("comissions.app.database.Entities.SellerService", "SellerService") + b.HasOne("comissions.app.database.Entities.ArtistService", "ArtistService") .WithMany("Reviews") - .HasForeignKey("SellerServiceId") + .HasForeignKey("ArtistServiceId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.HasOne("comissions.app.database.Entities.SellerServiceOrder", "SellerServiceOrder") + b.HasOne("comissions.app.database.Entities.ArtistServiceOrder", "ArtistServiceOrder") .WithMany("Reviews") - .HasForeignKey("SellerServiceOrderId") + .HasForeignKey("ArtistServiceOrderId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Reviewer"); - b.Navigation("SellerService"); + b.Navigation("ArtistService"); - b.Navigation("SellerServiceOrder"); + b.Navigation("ArtistServiceOrder"); }); - modelBuilder.Entity("comissions.app.database.Entities.UserSellerProfile", b => + modelBuilder.Entity("comissions.app.database.Entities.UserArtist", b => { b.HasOne("comissions.app.database.Entities.User", "User") - .WithOne("UserSellerProfile") - .HasForeignKey("comissions.app.database.Entities.UserSellerProfile", "UserId") + .WithOne("UserArtist") + .HasForeignKey("comissions.app.database.Entities.UserArtist", "UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("User"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerService", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistService", b => { b.Navigation("PortfolioPieces"); b.Navigation("Reviews"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerServiceOrder", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistServiceOrder", b => { b.Navigation("Reviews"); }); @@ -596,17 +596,17 @@ namespace comissions.app.api.Migrations { b.Navigation("Orders"); - b.Navigation("UserSellerProfile"); + b.Navigation("UserArtist"); }); - modelBuilder.Entity("comissions.app.database.Entities.UserSellerProfile", b => + modelBuilder.Entity("comissions.app.database.Entities.UserArtist", b => { b.Navigation("PortfolioPieces"); - b.Navigation("SellerProfilePageSettings") + b.Navigation("ArtistPageSettings") .IsRequired(); - b.Navigation("SellerServices"); + b.Navigation("ArtistServices"); }); #pragma warning restore 612, 618 } diff --git a/src/comissions.app.api/Migrations/20240218121059_page settings.cs b/src/comissions.app.api/Migrations/20240218121059_page settings.cs index c8f1501..725a0fe 100644 --- a/src/comissions.app.api/Migrations/20240218121059_page settings.cs +++ b/src/comissions.app.api/Migrations/20240218121059_page settings.cs @@ -14,69 +14,69 @@ namespace comissions.app.api.Migrations { migrationBuilder.DropColumn( name: "SocialMediaLinks", - table: "UserSellerProfiles"); + table: "UserArtists"); migrationBuilder.RenameColumn( name: "Biography", - table: "UserSellerProfiles", + table: "UserArtists", newName: "SocialMediaLink4"); migrationBuilder.AddColumn( name: "Description", - table: "UserSellerProfiles", + table: "UserArtists", type: "text", nullable: false, defaultValue: ""); migrationBuilder.AddColumn( name: "Name", - table: "UserSellerProfiles", + table: "UserArtists", type: "text", nullable: false, defaultValue: ""); migrationBuilder.AddColumn( name: "RequestGuidelines", - table: "UserSellerProfiles", + table: "UserArtists", type: "text", nullable: false, defaultValue: ""); migrationBuilder.AddColumn( - name: "SellerProfilePageSettingsId", - table: "UserSellerProfiles", + name: "ArtistPageSettingsId", + table: "UserArtists", type: "integer", nullable: false, defaultValue: 0); migrationBuilder.AddColumn( name: "SocialMediaLink1", - table: "UserSellerProfiles", + table: "UserArtists", type: "text", nullable: false, defaultValue: ""); migrationBuilder.AddColumn( name: "SocialMediaLink2", - table: "UserSellerProfiles", + table: "UserArtists", type: "text", nullable: false, defaultValue: ""); migrationBuilder.AddColumn( name: "SocialMediaLink3", - table: "UserSellerProfiles", + table: "UserArtists", type: "text", nullable: false, defaultValue: ""); migrationBuilder.CreateTable( - name: "SellerProfilePageSettings", + name: "ArtistPageSettings", columns: table => new { Id = table.Column(type: "integer", nullable: false) .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), - SellerProfileId = table.Column(type: "integer", nullable: false), + ArtistId = table.Column(type: "integer", nullable: false), RequestButtonHoverBGColor = table.Column(type: "text", nullable: false), RequestButtonTextColor = table.Column(type: "text", nullable: false), RequestButtonBGColor = table.Column(type: "text", nullable: false), @@ -113,19 +113,19 @@ namespace comissions.app.api.Migrations }, constraints: table => { - table.PrimaryKey("PK_SellerProfilePageSettings", x => x.Id); + table.PrimaryKey("PK_ArtistPageSettings", x => x.Id); table.ForeignKey( - name: "FK_SellerProfilePageSettings_UserSellerProfiles_SellerProfileId", - column: x => x.SellerProfileId, - principalTable: "UserSellerProfiles", + name: "FK_ArtistPageSettings_UserArtists_ArtistId", + column: x => x.ArtistId, + principalTable: "UserArtists", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateIndex( - name: "IX_SellerProfilePageSettings_SellerProfileId", - table: "SellerProfilePageSettings", - column: "SellerProfileId", + name: "IX_ArtistPageSettings_ArtistId", + table: "ArtistPageSettings", + column: "ArtistId", unique: true); } @@ -133,44 +133,44 @@ namespace comissions.app.api.Migrations protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( - name: "SellerProfilePageSettings"); + name: "ArtistPageSettings"); migrationBuilder.DropColumn( name: "Description", - table: "UserSellerProfiles"); + table: "UserArtists"); migrationBuilder.DropColumn( name: "Name", - table: "UserSellerProfiles"); + table: "UserArtists"); migrationBuilder.DropColumn( name: "RequestGuidelines", - table: "UserSellerProfiles"); + table: "UserArtists"); migrationBuilder.DropColumn( - name: "SellerProfilePageSettingsId", - table: "UserSellerProfiles"); + name: "ArtistPageSettingsId", + table: "UserArtists"); migrationBuilder.DropColumn( name: "SocialMediaLink1", - table: "UserSellerProfiles"); + table: "UserArtists"); migrationBuilder.DropColumn( name: "SocialMediaLink2", - table: "UserSellerProfiles"); + table: "UserArtists"); migrationBuilder.DropColumn( name: "SocialMediaLink3", - table: "UserSellerProfiles"); + table: "UserArtists"); migrationBuilder.RenameColumn( name: "SocialMediaLink4", - table: "UserSellerProfiles", + table: "UserArtists", newName: "Biography"); migrationBuilder.AddColumn>( name: "SocialMediaLinks", - table: "UserSellerProfiles", + table: "UserArtists", type: "text[]", nullable: false); } diff --git a/src/comissions.app.api/Migrations/20240218233434_forgot column.Designer.cs b/src/comissions.app.api/Migrations/20240218233434_forgot column.Designer.cs index 9097588..dad2c70 100644 --- a/src/comissions.app.api/Migrations/20240218233434_forgot column.Designer.cs +++ b/src/comissions.app.api/Migrations/20240218233434_forgot column.Designer.cs @@ -25,7 +25,7 @@ namespace comissions.app.api.Migrations NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); - modelBuilder.Entity("comissions.app.database.Entities.SellerProfilePageSettings", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistPageSettings", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -156,18 +156,18 @@ namespace comissions.app.api.Migrations .IsRequired() .HasColumnType("text"); - b.Property("SellerProfileId") + b.Property("ArtistId") .HasColumnType("integer"); b.HasKey("Id"); - b.HasIndex("SellerProfileId") + b.HasIndex("ArtistId") .IsUnique(); - b.ToTable("SellerProfilePageSettings"); + b.ToTable("ArtistPageSettings"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerProfilePortfolioPiece", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistPortfolioPiece", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -179,22 +179,22 @@ namespace comissions.app.api.Migrations .IsRequired() .HasColumnType("text"); - b.Property("SellerProfileId") + b.Property("ArtistId") .HasColumnType("integer"); - b.Property("SellerServiceId") + b.Property("ArtistServiceId") .HasColumnType("integer"); b.HasKey("Id"); - b.HasIndex("SellerProfileId"); + b.HasIndex("ArtistId"); - b.HasIndex("SellerServiceId"); + b.HasIndex("ArtistServiceId"); - b.ToTable("SellerProfilePortfolioPieces"); + b.ToTable("ArtistPortfolioPieces"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerProfileRequest", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistRequest", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -219,10 +219,10 @@ namespace comissions.app.api.Migrations b.HasIndex("UserId"); - b.ToTable("SellerProfileRequests"); + b.ToTable("ArtistRequests"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerService", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistService", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -244,17 +244,17 @@ namespace comissions.app.api.Migrations b.Property("Price") .HasColumnType("double precision"); - b.Property("SellerProfileId") + b.Property("ArtistId") .HasColumnType("integer"); b.HasKey("Id"); - b.HasIndex("SellerProfileId"); + b.HasIndex("ArtistId"); - b.ToTable("SellerServices"); + b.ToTable("ArtistServices"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerServiceOrder", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistServiceOrder", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -278,10 +278,10 @@ namespace comissions.app.api.Migrations b.Property("Price") .HasColumnType("double precision"); - b.Property("SellerId") + b.Property("ArtistId") .HasColumnType("integer"); - b.Property("SellerServiceId") + b.Property("ArtistServiceId") .HasColumnType("integer"); b.Property("Status") @@ -294,14 +294,14 @@ namespace comissions.app.api.Migrations b.HasIndex("BuyerId"); - b.HasIndex("SellerId"); + b.HasIndex("ArtistId"); - b.HasIndex("SellerServiceId"); + b.HasIndex("ArtistServiceId"); - b.ToTable("SellerServiceOrders"); + b.ToTable("ArtistServiceOrders"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerServiceOrderReview", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistServiceOrderReview", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -322,21 +322,21 @@ namespace comissions.app.api.Migrations .IsRequired() .HasColumnType("text"); - b.Property("SellerServiceId") + b.Property("ArtistServiceId") .HasColumnType("integer"); - b.Property("SellerServiceOrderId") + b.Property("ArtistServiceOrderId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("ReviewerId"); - b.HasIndex("SellerServiceId"); + b.HasIndex("ArtistServiceId"); - b.HasIndex("SellerServiceOrderId"); + b.HasIndex("ArtistServiceOrderId"); - b.ToTable("SellerServiceOrderReviews"); + b.ToTable("ArtistServiceOrderReviews"); }); modelBuilder.Entity("comissions.app.database.Entities.User", b => @@ -386,7 +386,7 @@ namespace comissions.app.api.Migrations b.Property("UnsuspendDate") .HasColumnType("timestamp with time zone"); - b.Property("UserSellerProfileId") + b.Property("UserArtistId") .HasColumnType("integer"); b.HasKey("Id"); @@ -394,7 +394,7 @@ namespace comissions.app.api.Migrations b.ToTable("Users"); }); - modelBuilder.Entity("comissions.app.database.Entities.UserSellerProfile", b => + modelBuilder.Entity("comissions.app.database.Entities.UserArtist", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -420,7 +420,7 @@ namespace comissions.app.api.Migrations .IsRequired() .HasColumnType("text"); - b.Property("SellerProfilePageSettingsId") + b.Property("ArtistPageSettingsId") .HasColumnType("integer"); b.Property("SocialMediaLink1") @@ -466,38 +466,38 @@ namespace comissions.app.api.Migrations b.HasIndex("UserId") .IsUnique(); - b.ToTable("UserSellerProfiles"); + b.ToTable("UserArtists"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerProfilePageSettings", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistPageSettings", b => { - b.HasOne("comissions.app.database.Entities.UserSellerProfile", "SellerProfile") - .WithOne("SellerProfilePageSettings") - .HasForeignKey("comissions.app.database.Entities.SellerProfilePageSettings", "SellerProfileId") + b.HasOne("comissions.app.database.Entities.UserArtist", "Artist") + .WithOne("ArtistPageSettings") + .HasForeignKey("comissions.app.database.Entities.ArtistPageSettings", "ArtistId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SellerProfile"); + b.Navigation("Artist"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerProfilePortfolioPiece", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistPortfolioPiece", b => { - b.HasOne("comissions.app.database.Entities.UserSellerProfile", "SellerProfile") + b.HasOne("comissions.app.database.Entities.UserArtist", "Artist") .WithMany("PortfolioPieces") - .HasForeignKey("SellerProfileId") + .HasForeignKey("ArtistId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.HasOne("comissions.app.database.Entities.SellerService", "SellerService") + b.HasOne("comissions.app.database.Entities.ArtistService", "ArtistService") .WithMany("PortfolioPieces") - .HasForeignKey("SellerServiceId"); + .HasForeignKey("ArtistServiceId"); - b.Navigation("SellerProfile"); + b.Navigation("Artist"); - b.Navigation("SellerService"); + b.Navigation("ArtistService"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerProfileRequest", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistRequest", b => { b.HasOne("comissions.app.database.Entities.User", "User") .WithMany() @@ -508,18 +508,18 @@ namespace comissions.app.api.Migrations b.Navigation("User"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerService", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistService", b => { - b.HasOne("comissions.app.database.Entities.UserSellerProfile", "SellerProfile") - .WithMany("SellerServices") - .HasForeignKey("SellerProfileId") + b.HasOne("comissions.app.database.Entities.UserArtist", "Artist") + .WithMany("ArtistServices") + .HasForeignKey("ArtistId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SellerProfile"); + b.Navigation("Artist"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerServiceOrder", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistServiceOrder", b => { b.HasOne("comissions.app.database.Entities.User", "Buyer") .WithMany("Orders") @@ -527,26 +527,26 @@ namespace comissions.app.api.Migrations .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.HasOne("comissions.app.database.Entities.UserSellerProfile", "Seller") + b.HasOne("comissions.app.database.Entities.UserArtist", "Artist") .WithMany() - .HasForeignKey("SellerId") + .HasForeignKey("ArtistId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.HasOne("comissions.app.database.Entities.SellerService", "SellerService") + b.HasOne("comissions.app.database.Entities.ArtistService", "ArtistService") .WithMany() - .HasForeignKey("SellerServiceId") + .HasForeignKey("ArtistServiceId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Buyer"); - b.Navigation("Seller"); + b.Navigation("Artist"); - b.Navigation("SellerService"); + b.Navigation("ArtistService"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerServiceOrderReview", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistServiceOrderReview", b => { b.HasOne("comissions.app.database.Entities.User", "Reviewer") .WithMany() @@ -554,44 +554,44 @@ namespace comissions.app.api.Migrations .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.HasOne("comissions.app.database.Entities.SellerService", "SellerService") + b.HasOne("comissions.app.database.Entities.ArtistService", "ArtistService") .WithMany("Reviews") - .HasForeignKey("SellerServiceId") + .HasForeignKey("ArtistServiceId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.HasOne("comissions.app.database.Entities.SellerServiceOrder", "SellerServiceOrder") + b.HasOne("comissions.app.database.Entities.ArtistServiceOrder", "ArtistServiceOrder") .WithMany("Reviews") - .HasForeignKey("SellerServiceOrderId") + .HasForeignKey("ArtistServiceOrderId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Reviewer"); - b.Navigation("SellerService"); + b.Navigation("ArtistService"); - b.Navigation("SellerServiceOrder"); + b.Navigation("ArtistServiceOrder"); }); - modelBuilder.Entity("comissions.app.database.Entities.UserSellerProfile", b => + modelBuilder.Entity("comissions.app.database.Entities.UserArtist", b => { b.HasOne("comissions.app.database.Entities.User", "User") - .WithOne("UserSellerProfile") - .HasForeignKey("comissions.app.database.Entities.UserSellerProfile", "UserId") + .WithOne("UserArtist") + .HasForeignKey("comissions.app.database.Entities.UserArtist", "UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("User"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerService", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistService", b => { b.Navigation("PortfolioPieces"); b.Navigation("Reviews"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerServiceOrder", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistServiceOrder", b => { b.Navigation("Reviews"); }); @@ -600,17 +600,17 @@ namespace comissions.app.api.Migrations { b.Navigation("Orders"); - b.Navigation("UserSellerProfile"); + b.Navigation("UserArtist"); }); - modelBuilder.Entity("comissions.app.database.Entities.UserSellerProfile", b => + modelBuilder.Entity("comissions.app.database.Entities.UserArtist", b => { b.Navigation("PortfolioPieces"); - b.Navigation("SellerProfilePageSettings") + b.Navigation("ArtistPageSettings") .IsRequired(); - b.Navigation("SellerServices"); + b.Navigation("ArtistServices"); }); #pragma warning restore 612, 618 } diff --git a/src/comissions.app.api/Migrations/20240218233434_forgot column.cs b/src/comissions.app.api/Migrations/20240218233434_forgot column.cs index 867aa16..5abfb97 100644 --- a/src/comissions.app.api/Migrations/20240218233434_forgot column.cs +++ b/src/comissions.app.api/Migrations/20240218233434_forgot column.cs @@ -12,7 +12,7 @@ namespace comissions.app.api.Migrations { migrationBuilder.AddColumn( name: "RequestButtonHoverTextColor", - table: "SellerProfilePageSettings", + table: "ArtistPageSettings", type: "text", nullable: false, defaultValue: ""); @@ -23,7 +23,7 @@ namespace comissions.app.api.Migrations { migrationBuilder.DropColumn( name: "RequestButtonHoverTextColor", - table: "SellerProfilePageSettings"); + table: "ArtistPageSettings"); } } } diff --git a/src/comissions.app.api/Migrations/20240219095038_naming fixes.Designer.cs b/src/comissions.app.api/Migrations/20240219095038_naming fixes.Designer.cs new file mode 100644 index 0000000..70a706e --- /dev/null +++ b/src/comissions.app.api/Migrations/20240219095038_naming fixes.Designer.cs @@ -0,0 +1,480 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; +using comissions.app.database; + +#nullable disable + +namespace comissions.app.api.Migrations +{ + [DbContext(typeof(ApplicationDbContext))] + [Migration("20240219095038_naming fixes")] + partial class namingfixes + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.1") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("comissions.app.database.Entities.ArtistPageSettings", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ArtistId") + .HasColumnType("integer"); + + b.Property("BackgroundColor") + .IsRequired() + .HasColumnType("text"); + + b.Property("DescriptionBackgroundColor") + .IsRequired() + .HasColumnType("text"); + + b.Property("DescriptionHeaderColor") + .IsRequired() + .HasColumnType("text"); + + b.Property("DescriptionHeaderImageUrl") + .IsRequired() + .HasColumnType("text"); + + b.Property("DescriptionHeaderSize") + .HasColumnType("integer"); + + b.Property("DescriptionHeaderText") + .IsRequired() + .HasColumnType("text"); + + b.Property("DescriptionHeaderUseImage") + .HasColumnType("boolean"); + + b.Property("DescriptionTextColor") + .IsRequired() + .HasColumnType("text"); + + b.Property("DescriptionTextSize") + .HasColumnType("integer"); + + b.Property("HeaderColor") + .IsRequired() + .HasColumnType("text"); + + b.Property("HeaderImageUrl") + .IsRequired() + .HasColumnType("text"); + + b.Property("HeaderTextSize") + .HasColumnType("integer"); + + b.Property("HeaderUseImage") + .HasColumnType("boolean"); + + b.Property("PortfolioBackgroundColor") + .IsRequired() + .HasColumnType("text"); + + b.Property("PortfolioColumns") + .HasColumnType("integer"); + + b.Property("PortfolioEnabledScrolling") + .HasColumnType("boolean"); + + b.Property("PortfolioMasonry") + .HasColumnType("boolean"); + + b.Property("PortfolioMaximumSize") + .HasColumnType("integer"); + + b.Property("PortfolionHeaderColor") + .IsRequired() + .HasColumnType("text"); + + b.Property("PortfolionHeaderImageUrl") + .IsRequired() + .HasColumnType("text"); + + b.Property("PortfolionHeaderSize") + .HasColumnType("integer"); + + b.Property("PortfolionHeaderText") + .IsRequired() + .HasColumnType("text"); + + b.Property("PortfolionHeaderUseImage") + .HasColumnType("boolean"); + + b.Property("RequestBackgroundColor") + .IsRequired() + .HasColumnType("text"); + + b.Property("RequestButtonBGColor") + .IsRequired() + .HasColumnType("text"); + + b.Property("RequestButtonHoverBGColor") + .IsRequired() + .HasColumnType("text"); + + b.Property("RequestButtonHoverTextColor") + .IsRequired() + .HasColumnType("text"); + + b.Property("RequestButtonTextColor") + .IsRequired() + .HasColumnType("text"); + + b.Property("RequestHeaderColor") + .IsRequired() + .HasColumnType("text"); + + b.Property("RequestHeaderImageUrl") + .IsRequired() + .HasColumnType("text"); + + b.Property("RequestHeaderSize") + .HasColumnType("integer"); + + b.Property("RequestHeaderText") + .IsRequired() + .HasColumnType("text"); + + b.Property("RequestHeaderUseImage") + .HasColumnType("boolean"); + + b.Property("RequestTermsColor") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("ArtistId") + .IsUnique(); + + b.ToTable("ArtistPageSettings"); + }); + + modelBuilder.Entity("comissions.app.database.Entities.ArtistPortfolioPiece", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ArtistId") + .HasColumnType("integer"); + + b.Property("FileReference") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("ArtistId"); + + b.ToTable("ArtistPortfolioPieces"); + }); + + modelBuilder.Entity("comissions.app.database.Entities.ArtistRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Accepted") + .HasColumnType("boolean"); + + b.Property("AcceptedDate") + .HasColumnType("timestamp with time zone"); + + b.Property("RequestDate") + .HasColumnType("timestamp with time zone"); + + b.Property("UserId") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("ArtistRequests"); + }); + + modelBuilder.Entity("comissions.app.database.Entities.Request", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Accepted") + .HasColumnType("boolean"); + + b.Property("AcceptedDate") + .HasColumnType("timestamp with time zone"); + + b.Property("Amount") + .HasColumnType("numeric"); + + b.Property("ArtistId") + .HasColumnType("integer"); + + b.Property("Completed") + .HasColumnType("boolean"); + + b.Property("CompletedDate") + .HasColumnType("timestamp with time zone"); + + b.Property("Declined") + .HasColumnType("boolean"); + + b.Property("DeclinedDate") + .HasColumnType("timestamp with time zone"); + + b.Property("Message") + .IsRequired() + .HasColumnType("text"); + + b.Property("RequestDate") + .HasColumnType("timestamp with time zone"); + + b.Property("UserId") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("ArtistId"); + + b.HasIndex("UserId"); + + b.ToTable("Requests"); + }); + + modelBuilder.Entity("comissions.app.database.Entities.User", b => + { + b.Property("Id") + .HasColumnType("text"); + + b.Property("BanAdminId") + .HasColumnType("text"); + + b.Property("Banned") + .HasColumnType("boolean"); + + b.Property("BannedDate") + .HasColumnType("timestamp with time zone"); + + b.Property("BannedReason") + .HasColumnType("text"); + + b.Property("Biography") + .IsRequired() + .HasColumnType("text"); + + b.Property("DisplayName") + .IsRequired() + .HasColumnType("text"); + + b.Property("Email") + .IsRequired() + .HasColumnType("text"); + + b.Property("SuspendAdminId") + .HasColumnType("text"); + + b.Property("Suspended") + .HasColumnType("boolean"); + + b.Property("SuspendedDate") + .HasColumnType("timestamp with time zone"); + + b.Property("SuspendedReason") + .HasColumnType("text"); + + b.Property("UnbanDate") + .HasColumnType("timestamp with time zone"); + + b.Property("UnsuspendDate") + .HasColumnType("timestamp with time zone"); + + b.Property("UserArtistId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.ToTable("Users"); + }); + + modelBuilder.Entity("comissions.app.database.Entities.UserArtist", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AgeRestricted") + .HasColumnType("boolean"); + + b.Property("ArtistPageSettingsId") + .HasColumnType("integer"); + + b.Property("Description") + .IsRequired() + .HasColumnType("text"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("PrepaymentRequired") + .HasColumnType("boolean"); + + b.Property("RequestGuidelines") + .IsRequired() + .HasColumnType("text"); + + b.Property("SocialMediaLink1") + .IsRequired() + .HasColumnType("text"); + + b.Property("SocialMediaLink2") + .IsRequired() + .HasColumnType("text"); + + b.Property("SocialMediaLink3") + .IsRequired() + .HasColumnType("text"); + + b.Property("SocialMediaLink4") + .IsRequired() + .HasColumnType("text"); + + b.Property("StripeAccountId") + .HasColumnType("text"); + + b.Property("SuspendAdminId") + .HasColumnType("text"); + + b.Property("Suspended") + .HasColumnType("boolean"); + + b.Property("SuspendedDate") + .HasColumnType("timestamp with time zone"); + + b.Property("SuspendedReason") + .HasColumnType("text"); + + b.Property("UnsuspendDate") + .HasColumnType("timestamp with time zone"); + + b.Property("UserId") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("UserId") + .IsUnique(); + + b.ToTable("UserArtists"); + }); + + modelBuilder.Entity("comissions.app.database.Entities.ArtistPageSettings", b => + { + b.HasOne("comissions.app.database.Entities.UserArtist", "Artist") + .WithOne("ArtistPageSettings") + .HasForeignKey("comissions.app.database.Entities.ArtistPageSettings", "ArtistId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Artist"); + }); + + modelBuilder.Entity("comissions.app.database.Entities.ArtistPortfolioPiece", b => + { + b.HasOne("comissions.app.database.Entities.UserArtist", "Artist") + .WithMany("PortfolioPieces") + .HasForeignKey("ArtistId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Artist"); + }); + + modelBuilder.Entity("comissions.app.database.Entities.ArtistRequest", b => + { + b.HasOne("comissions.app.database.Entities.User", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + }); + + modelBuilder.Entity("comissions.app.database.Entities.Request", b => + { + b.HasOne("comissions.app.database.Entities.UserArtist", "Artist") + .WithMany() + .HasForeignKey("ArtistId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("comissions.app.database.Entities.User", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Artist"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("comissions.app.database.Entities.UserArtist", b => + { + b.HasOne("comissions.app.database.Entities.User", "User") + .WithOne("UserArtist") + .HasForeignKey("comissions.app.database.Entities.UserArtist", "UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("User"); + }); + + modelBuilder.Entity("comissions.app.database.Entities.User", b => + { + b.Navigation("UserArtist"); + }); + + modelBuilder.Entity("comissions.app.database.Entities.UserArtist", b => + { + b.Navigation("ArtistPageSettings") + .IsRequired(); + + b.Navigation("PortfolioPieces"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/src/comissions.app.api/Migrations/20240219095038_naming fixes.cs b/src/comissions.app.api/Migrations/20240219095038_naming fixes.cs new file mode 100644 index 0000000..b759a10 --- /dev/null +++ b/src/comissions.app.api/Migrations/20240219095038_naming fixes.cs @@ -0,0 +1,240 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace comissions.app.api.Migrations +{ + /// + public partial class namingfixes : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_ArtistPortfolioPieces_ArtistServices_ArtistServiceId", + table: "ArtistPortfolioPieces"); + + migrationBuilder.DropTable( + name: "ArtistServiceOrderReviews"); + + migrationBuilder.DropTable( + name: "ArtistServiceOrders"); + + migrationBuilder.DropTable( + name: "ArtistServices"); + + migrationBuilder.DropIndex( + name: "IX_ArtistPortfolioPieces_ArtistServiceId", + table: "ArtistPortfolioPieces"); + + migrationBuilder.DropColumn( + name: "ArtistServiceId", + table: "ArtistPortfolioPieces"); + + migrationBuilder.CreateTable( + name: "Requests", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + Message = table.Column(type: "text", nullable: false), + Amount = table.Column(type: "numeric", nullable: false), + UserId = table.Column(type: "text", nullable: false), + ArtistId = table.Column(type: "integer", nullable: false), + RequestDate = table.Column(type: "timestamp with time zone", nullable: false), + Accepted = table.Column(type: "boolean", nullable: false), + AcceptedDate = table.Column(type: "timestamp with time zone", nullable: true), + Declined = table.Column(type: "boolean", nullable: false), + DeclinedDate = table.Column(type: "timestamp with time zone", nullable: true), + Completed = table.Column(type: "boolean", nullable: false), + CompletedDate = table.Column(type: "timestamp with time zone", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Requests", x => x.Id); + table.ForeignKey( + name: "FK_Requests_UserArtists_ArtistId", + column: x => x.ArtistId, + principalTable: "UserArtists", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_Requests_Users_UserId", + column: x => x.UserId, + principalTable: "Users", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "IX_Requests_ArtistId", + table: "Requests", + column: "ArtistId"); + + migrationBuilder.CreateIndex( + name: "IX_Requests_UserId", + table: "Requests", + column: "UserId"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "Requests"); + + migrationBuilder.AddColumn( + name: "ArtistServiceId", + table: "ArtistPortfolioPieces", + type: "integer", + nullable: true); + + migrationBuilder.CreateTable( + name: "ArtistServices", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + ArtistId = table.Column(type: "integer", nullable: false), + Archived = table.Column(type: "boolean", nullable: false), + Description = table.Column(type: "text", nullable: false), + Name = table.Column(type: "text", nullable: false), + Price = table.Column(type: "double precision", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_ArtistServices", x => x.Id); + table.ForeignKey( + name: "FK_ArtistServices_UserArtists_ArtistId", + column: x => x.ArtistId, + principalTable: "UserArtists", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "ArtistServiceOrders", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + ArtistId = table.Column(type: "integer", nullable: false), + ArtistServiceId = table.Column(type: "integer", nullable: false), + BuyerId = table.Column(type: "text", nullable: false), + CreatedDate = table.Column(type: "timestamp with time zone", nullable: false), + EndDate = table.Column(type: "timestamp with time zone", nullable: true), + PaymentUrl = table.Column(type: "text", nullable: true), + Price = table.Column(type: "double precision", nullable: false), + Status = table.Column(type: "integer", nullable: false), + TermsAcceptedDate = table.Column(type: "timestamp with time zone", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_ArtistServiceOrders", x => x.Id); + table.ForeignKey( + name: "FK_ArtistServiceOrders_ArtistServices_ArtistServiceId", + column: x => x.ArtistServiceId, + principalTable: "ArtistServices", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_ArtistServiceOrders_UserArtists_ArtistId", + column: x => x.ArtistId, + principalTable: "UserArtists", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_ArtistServiceOrders_Users_BuyerId", + column: x => x.BuyerId, + principalTable: "Users", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "ArtistServiceOrderReviews", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + ArtistServiceId = table.Column(type: "integer", nullable: false), + ArtistServiceOrderId = table.Column(type: "integer", nullable: false), + ReviewerId = table.Column(type: "text", nullable: false), + Rating = table.Column(type: "integer", nullable: false), + Review = table.Column(type: "text", nullable: true), + ReviewDate = table.Column(type: "timestamp with time zone", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_ArtistServiceOrderReviews", x => x.Id); + table.ForeignKey( + name: "FK_ArtistServiceOrderReviews_ArtistServiceOrders_ArtistService~", + column: x => x.ArtistServiceOrderId, + principalTable: "ArtistServiceOrders", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_ArtistServiceOrderReviews_ArtistServices_ArtistServiceId", + column: x => x.ArtistServiceId, + principalTable: "ArtistServices", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_ArtistServiceOrderReviews_Users_ReviewerId", + column: x => x.ReviewerId, + principalTable: "Users", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "IX_ArtistPortfolioPieces_ArtistServiceId", + table: "ArtistPortfolioPieces", + column: "ArtistServiceId"); + + migrationBuilder.CreateIndex( + name: "IX_ArtistServiceOrderReviews_ArtistServiceId", + table: "ArtistServiceOrderReviews", + column: "ArtistServiceId"); + + migrationBuilder.CreateIndex( + name: "IX_ArtistServiceOrderReviews_ArtistServiceOrderId", + table: "ArtistServiceOrderReviews", + column: "ArtistServiceOrderId"); + + migrationBuilder.CreateIndex( + name: "IX_ArtistServiceOrderReviews_ReviewerId", + table: "ArtistServiceOrderReviews", + column: "ReviewerId"); + + migrationBuilder.CreateIndex( + name: "IX_ArtistServiceOrders_ArtistId", + table: "ArtistServiceOrders", + column: "ArtistId"); + + migrationBuilder.CreateIndex( + name: "IX_ArtistServiceOrders_ArtistServiceId", + table: "ArtistServiceOrders", + column: "ArtistServiceId"); + + migrationBuilder.CreateIndex( + name: "IX_ArtistServiceOrders_BuyerId", + table: "ArtistServiceOrders", + column: "BuyerId"); + + migrationBuilder.CreateIndex( + name: "IX_ArtistServices_ArtistId", + table: "ArtistServices", + column: "ArtistId"); + + migrationBuilder.AddForeignKey( + name: "FK_ArtistPortfolioPieces_ArtistServices_ArtistServiceId", + table: "ArtistPortfolioPieces", + column: "ArtistServiceId", + principalTable: "ArtistServices", + principalColumn: "Id"); + } + } +} diff --git a/src/comissions.app.api/Migrations/ApplicationDbContextModelSnapshot.cs b/src/comissions.app.api/Migrations/ApplicationDbContextModelSnapshot.cs index 588221b..2eeaf88 100644 --- a/src/comissions.app.api/Migrations/ApplicationDbContextModelSnapshot.cs +++ b/src/comissions.app.api/Migrations/ApplicationDbContextModelSnapshot.cs @@ -22,7 +22,7 @@ namespace comissions.app.api.Migrations NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); - modelBuilder.Entity("comissions.app.database.Entities.SellerProfilePageSettings", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistPageSettings", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -30,6 +30,9 @@ namespace comissions.app.api.Migrations NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + b.Property("ArtistId") + .HasColumnType("integer"); + b.Property("BackgroundColor") .IsRequired() .HasColumnType("text"); @@ -153,18 +156,15 @@ namespace comissions.app.api.Migrations .IsRequired() .HasColumnType("text"); - b.Property("SellerProfileId") - .HasColumnType("integer"); - b.HasKey("Id"); - b.HasIndex("SellerProfileId") + b.HasIndex("ArtistId") .IsUnique(); - b.ToTable("SellerProfilePageSettings"); + b.ToTable("ArtistPageSettings"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerProfilePortfolioPiece", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistPortfolioPiece", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -172,26 +172,21 @@ namespace comissions.app.api.Migrations NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + b.Property("ArtistId") + .HasColumnType("integer"); + b.Property("FileReference") .IsRequired() .HasColumnType("text"); - b.Property("SellerProfileId") - .HasColumnType("integer"); - - b.Property("SellerServiceId") - .HasColumnType("integer"); - b.HasKey("Id"); - b.HasIndex("SellerProfileId"); + b.HasIndex("ArtistId"); - b.HasIndex("SellerServiceId"); - - b.ToTable("SellerProfilePortfolioPieces"); + b.ToTable("ArtistPortfolioPieces"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerProfileRequest", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistRequest", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -216,10 +211,10 @@ namespace comissions.app.api.Migrations b.HasIndex("UserId"); - b.ToTable("SellerProfileRequests"); + b.ToTable("ArtistRequests"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerService", b => + modelBuilder.Entity("comissions.app.database.Entities.Request", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -227,113 +222,48 @@ namespace comissions.app.api.Migrations NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - b.Property("Archived") + b.Property("Accepted") .HasColumnType("boolean"); - b.Property("Description") - .IsRequired() - .HasColumnType("text"); + b.Property("AcceptedDate") + .HasColumnType("timestamp with time zone"); - b.Property("Name") - .IsRequired() - .HasColumnType("text"); + b.Property("Amount") + .HasColumnType("numeric"); - b.Property("Price") - .HasColumnType("double precision"); - - b.Property("SellerProfileId") + b.Property("ArtistId") .HasColumnType("integer"); + b.Property("Completed") + .HasColumnType("boolean"); + + b.Property("CompletedDate") + .HasColumnType("timestamp with time zone"); + + b.Property("Declined") + .HasColumnType("boolean"); + + b.Property("DeclinedDate") + .HasColumnType("timestamp with time zone"); + + b.Property("Message") + .IsRequired() + .HasColumnType("text"); + + b.Property("RequestDate") + .HasColumnType("timestamp with time zone"); + + b.Property("UserId") + .IsRequired() + .HasColumnType("text"); + b.HasKey("Id"); - b.HasIndex("SellerProfileId"); + b.HasIndex("ArtistId"); - b.ToTable("SellerServices"); - }); + b.HasIndex("UserId"); - modelBuilder.Entity("comissions.app.database.Entities.SellerServiceOrder", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("BuyerId") - .IsRequired() - .HasColumnType("text"); - - b.Property("CreatedDate") - .HasColumnType("timestamp with time zone"); - - b.Property("EndDate") - .HasColumnType("timestamp with time zone"); - - b.Property("PaymentUrl") - .HasColumnType("text"); - - b.Property("Price") - .HasColumnType("double precision"); - - b.Property("SellerId") - .HasColumnType("integer"); - - b.Property("SellerServiceId") - .HasColumnType("integer"); - - b.Property("Status") - .HasColumnType("integer"); - - b.Property("TermsAcceptedDate") - .HasColumnType("timestamp with time zone"); - - b.HasKey("Id"); - - b.HasIndex("BuyerId"); - - b.HasIndex("SellerId"); - - b.HasIndex("SellerServiceId"); - - b.ToTable("SellerServiceOrders"); - }); - - modelBuilder.Entity("comissions.app.database.Entities.SellerServiceOrderReview", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("integer"); - - NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); - - b.Property("Rating") - .HasColumnType("integer"); - - b.Property("Review") - .HasColumnType("text"); - - b.Property("ReviewDate") - .HasColumnType("timestamp with time zone"); - - b.Property("ReviewerId") - .IsRequired() - .HasColumnType("text"); - - b.Property("SellerServiceId") - .HasColumnType("integer"); - - b.Property("SellerServiceOrderId") - .HasColumnType("integer"); - - b.HasKey("Id"); - - b.HasIndex("ReviewerId"); - - b.HasIndex("SellerServiceId"); - - b.HasIndex("SellerServiceOrderId"); - - b.ToTable("SellerServiceOrderReviews"); + b.ToTable("Requests"); }); modelBuilder.Entity("comissions.app.database.Entities.User", b => @@ -383,7 +313,7 @@ namespace comissions.app.api.Migrations b.Property("UnsuspendDate") .HasColumnType("timestamp with time zone"); - b.Property("UserSellerProfileId") + b.Property("UserArtistId") .HasColumnType("integer"); b.HasKey("Id"); @@ -391,7 +321,7 @@ namespace comissions.app.api.Migrations b.ToTable("Users"); }); - modelBuilder.Entity("comissions.app.database.Entities.UserSellerProfile", b => + modelBuilder.Entity("comissions.app.database.Entities.UserArtist", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -402,6 +332,9 @@ namespace comissions.app.api.Migrations b.Property("AgeRestricted") .HasColumnType("boolean"); + b.Property("ArtistPageSettingsId") + .HasColumnType("integer"); + b.Property("Description") .IsRequired() .HasColumnType("text"); @@ -417,9 +350,6 @@ namespace comissions.app.api.Migrations .IsRequired() .HasColumnType("text"); - b.Property("SellerProfilePageSettingsId") - .HasColumnType("integer"); - b.Property("SocialMediaLink1") .IsRequired() .HasColumnType("text"); @@ -463,38 +393,32 @@ namespace comissions.app.api.Migrations b.HasIndex("UserId") .IsUnique(); - b.ToTable("UserSellerProfiles"); + b.ToTable("UserArtists"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerProfilePageSettings", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistPageSettings", b => { - b.HasOne("comissions.app.database.Entities.UserSellerProfile", "SellerProfile") - .WithOne("SellerProfilePageSettings") - .HasForeignKey("comissions.app.database.Entities.SellerProfilePageSettings", "SellerProfileId") + b.HasOne("comissions.app.database.Entities.UserArtist", "Artist") + .WithOne("ArtistPageSettings") + .HasForeignKey("comissions.app.database.Entities.ArtistPageSettings", "ArtistId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SellerProfile"); + b.Navigation("Artist"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerProfilePortfolioPiece", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistPortfolioPiece", b => { - b.HasOne("comissions.app.database.Entities.UserSellerProfile", "SellerProfile") + b.HasOne("comissions.app.database.Entities.UserArtist", "Artist") .WithMany("PortfolioPieces") - .HasForeignKey("SellerProfileId") + .HasForeignKey("ArtistId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.HasOne("comissions.app.database.Entities.SellerService", "SellerService") - .WithMany("PortfolioPieces") - .HasForeignKey("SellerServiceId"); - - b.Navigation("SellerProfile"); - - b.Navigation("SellerService"); + b.Navigation("Artist"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerProfileRequest", b => + modelBuilder.Entity("comissions.app.database.Entities.ArtistRequest", b => { b.HasOne("comissions.app.database.Entities.User", "User") .WithMany() @@ -505,109 +429,47 @@ namespace comissions.app.api.Migrations b.Navigation("User"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerService", b => + modelBuilder.Entity("comissions.app.database.Entities.Request", b => { - b.HasOne("comissions.app.database.Entities.UserSellerProfile", "SellerProfile") - .WithMany("SellerServices") - .HasForeignKey("SellerProfileId") + b.HasOne("comissions.app.database.Entities.UserArtist", "Artist") + .WithMany() + .HasForeignKey("ArtistId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SellerProfile"); + b.HasOne("comissions.app.database.Entities.User", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Artist"); + + b.Navigation("User"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerServiceOrder", b => - { - b.HasOne("comissions.app.database.Entities.User", "Buyer") - .WithMany("Orders") - .HasForeignKey("BuyerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("comissions.app.database.Entities.UserSellerProfile", "Seller") - .WithMany() - .HasForeignKey("SellerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("comissions.app.database.Entities.SellerService", "SellerService") - .WithMany() - .HasForeignKey("SellerServiceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Buyer"); - - b.Navigation("Seller"); - - b.Navigation("SellerService"); - }); - - modelBuilder.Entity("comissions.app.database.Entities.SellerServiceOrderReview", b => - { - b.HasOne("comissions.app.database.Entities.User", "Reviewer") - .WithMany() - .HasForeignKey("ReviewerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("comissions.app.database.Entities.SellerService", "SellerService") - .WithMany("Reviews") - .HasForeignKey("SellerServiceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("comissions.app.database.Entities.SellerServiceOrder", "SellerServiceOrder") - .WithMany("Reviews") - .HasForeignKey("SellerServiceOrderId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Reviewer"); - - b.Navigation("SellerService"); - - b.Navigation("SellerServiceOrder"); - }); - - modelBuilder.Entity("comissions.app.database.Entities.UserSellerProfile", b => + modelBuilder.Entity("comissions.app.database.Entities.UserArtist", b => { b.HasOne("comissions.app.database.Entities.User", "User") - .WithOne("UserSellerProfile") - .HasForeignKey("comissions.app.database.Entities.UserSellerProfile", "UserId") + .WithOne("UserArtist") + .HasForeignKey("comissions.app.database.Entities.UserArtist", "UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("User"); }); - modelBuilder.Entity("comissions.app.database.Entities.SellerService", b => - { - b.Navigation("PortfolioPieces"); - - b.Navigation("Reviews"); - }); - - modelBuilder.Entity("comissions.app.database.Entities.SellerServiceOrder", b => - { - b.Navigation("Reviews"); - }); - modelBuilder.Entity("comissions.app.database.Entities.User", b => { - b.Navigation("Orders"); - - b.Navigation("UserSellerProfile"); + b.Navigation("UserArtist"); }); - modelBuilder.Entity("comissions.app.database.Entities.UserSellerProfile", b => + modelBuilder.Entity("comissions.app.database.Entities.UserArtist", b => { - b.Navigation("PortfolioPieces"); - - b.Navigation("SellerProfilePageSettings") + b.Navigation("ArtistPageSettings") .IsRequired(); - b.Navigation("SellerServices"); + b.Navigation("PortfolioPieces"); }); #pragma warning restore 612, 618 } diff --git a/src/comissions.app.api/Models/Discovery/DiscoverySellerModel.cs b/src/comissions.app.api/Models/Discovery/DiscoverySellerModel.cs index 81e1942..1e1d1dc 100644 --- a/src/comissions.app.api/Models/Discovery/DiscoverySellerModel.cs +++ b/src/comissions.app.api/Models/Discovery/DiscoverySellerModel.cs @@ -1,6 +1,6 @@ namespace comissions.app.api.Models.Discovery; -public class DiscoverySellerModel +public class DiscoveryArtistModel { public int Id { get; set; } public string Name { get; set; } diff --git a/src/comissions.app.api/Models/PortfolioModel/PortfolioModel.cs b/src/comissions.app.api/Models/PortfolioModel/PortfolioModel.cs index b9b2b1f..2602958 100644 --- a/src/comissions.app.api/Models/PortfolioModel/PortfolioModel.cs +++ b/src/comissions.app.api/Models/PortfolioModel/PortfolioModel.cs @@ -3,5 +3,4 @@ namespace comissions.app.api.Models.PortfolioModel; public class PortfolioModel { public int Id { get; set; } - public int? SellerServiceId { get; set; } } \ No newline at end of file diff --git a/src/comissions.app.api/Models/PortfolioModel/PortfolioModelExtensions.cs b/src/comissions.app.api/Models/PortfolioModel/PortfolioModelExtensions.cs index 74c3dfb..0ddfd1c 100644 --- a/src/comissions.app.api/Models/PortfolioModel/PortfolioModelExtensions.cs +++ b/src/comissions.app.api/Models/PortfolioModel/PortfolioModelExtensions.cs @@ -4,12 +4,11 @@ namespace comissions.app.api.Models.PortfolioModel; public static class PortfolioModelExtensions { - public static PortfolioModel ToModel(this SellerProfilePortfolioPiece sellerProfileRequest) + public static PortfolioModel ToModel(this ArtistPortfolioPiece sellerProfileRequest) { return new PortfolioModel() { - Id = sellerProfileRequest.Id, - SellerServiceId = sellerProfileRequest.SellerServiceId + Id = sellerProfileRequest.Id }; } } \ No newline at end of file diff --git a/src/comissions.app.api/Models/Request/RequestModel.cs b/src/comissions.app.api/Models/Request/RequestModel.cs new file mode 100644 index 0000000..f582df0 --- /dev/null +++ b/src/comissions.app.api/Models/Request/RequestModel.cs @@ -0,0 +1,16 @@ +namespace comissions.app.database.Models.Request; + +public class RequestModel +{ + public int Id { get; set; } + public string Message { get; set; } + public decimal Amount { get; set; } + public string UserId { get; set; } + public DateTime RequestDate { get; set; } + public bool Accepted { get; set; } = false; + public DateTime? AcceptedDate { get; set; } + public bool Declined { get; set; } = false; + public DateTime? DeclinedDate { get; set; } + public bool Completed { get; set; } = false; + public DateTime? CompletedDate { get; set; } +} \ No newline at end of file diff --git a/src/comissions.app.api/Models/Request/RequestModelExtensions.cs b/src/comissions.app.api/Models/Request/RequestModelExtensions.cs new file mode 100644 index 0000000..371a2cd --- /dev/null +++ b/src/comissions.app.api/Models/Request/RequestModelExtensions.cs @@ -0,0 +1,22 @@ +namespace comissions.app.database.Models.Request; + +public static class RequestModelExtensions +{ + public static RequestModel ToModel(this Entities.Request sellerProfile) + { + return new RequestModel() + { + Id = sellerProfile.Id, + UserId = sellerProfile.UserId, + RequestDate = sellerProfile.RequestDate, + AcceptedDate = sellerProfile.AcceptedDate, + Accepted = sellerProfile.Accepted, + Amount = sellerProfile.Amount, + Completed = sellerProfile.Completed, + CompletedDate = sellerProfile.CompletedDate, + Declined = sellerProfile.Declined, + DeclinedDate = sellerProfile.DeclinedDate, + Message = sellerProfile.Message + }; + } +} \ No newline at end of file diff --git a/src/comissions.app.api/Models/SellerProfile/ArtistOnboardStatusModel.cs b/src/comissions.app.api/Models/SellerProfile/ArtistOnboardStatusModel.cs new file mode 100644 index 0000000..f5e9413 --- /dev/null +++ b/src/comissions.app.api/Models/SellerProfile/ArtistOnboardStatusModel.cs @@ -0,0 +1,6 @@ +namespace comissions.app.api.Models.Artist; + +public class ArtistOnboardStatusModel +{ + public bool Onboarded { get; set; } +} \ No newline at end of file diff --git a/src/comissions.app.api/Models/SellerProfile/ArtistOnboardUrlModel.cs b/src/comissions.app.api/Models/SellerProfile/ArtistOnboardUrlModel.cs new file mode 100644 index 0000000..787b5d3 --- /dev/null +++ b/src/comissions.app.api/Models/SellerProfile/ArtistOnboardUrlModel.cs @@ -0,0 +1,6 @@ +namespace comissions.app.api.Models.Artist; + +public class ArtistOnboardUrlModel +{ + public string OnboardUrl { get; set; } +} \ No newline at end of file diff --git a/src/comissions.app.api/Models/SellerProfile/SellerProfileModel.cs b/src/comissions.app.api/Models/SellerProfile/ArtistProfileModel.cs similarity index 83% rename from src/comissions.app.api/Models/SellerProfile/SellerProfileModel.cs rename to src/comissions.app.api/Models/SellerProfile/ArtistProfileModel.cs index f6475aa..3fb6523 100644 --- a/src/comissions.app.api/Models/SellerProfile/SellerProfileModel.cs +++ b/src/comissions.app.api/Models/SellerProfile/ArtistProfileModel.cs @@ -1,6 +1,6 @@ -namespace comissions.app.api.Models.SellerProfile; +namespace comissions.app.api.Models.Artist; -public class SellerProfileModel +public class ArtistModel { public int Id { get; set; } public bool PrepaymentRequired { get; set; } diff --git a/src/comissions.app.api/Models/SellerProfile/SellerProfileModelExtensions.cs b/src/comissions.app.api/Models/SellerProfile/ArtistProfileModelExtensions.cs similarity index 57% rename from src/comissions.app.api/Models/SellerProfile/SellerProfileModelExtensions.cs rename to src/comissions.app.api/Models/SellerProfile/ArtistProfileModelExtensions.cs index cb430f7..04db3b6 100644 --- a/src/comissions.app.api/Models/SellerProfile/SellerProfileModelExtensions.cs +++ b/src/comissions.app.api/Models/SellerProfile/ArtistProfileModelExtensions.cs @@ -1,13 +1,13 @@ using comissions.app.api.Models.Discovery; using comissions.app.database.Entities; -namespace comissions.app.api.Models.SellerProfile; +namespace comissions.app.api.Models.Artist; -public static class SellerProfileModelExtensions +public static class ArtistModelExtensions { - public static SellerProfileModel ToModel(this UserSellerProfile sellerProfile) + public static ArtistModel ToModel(this UserArtist sellerProfile) { - return new SellerProfileModel() + return new ArtistModel() { Id = sellerProfile.Id, Name = sellerProfile.Name, @@ -21,9 +21,9 @@ public static class SellerProfileModelExtensions }; } - public static DiscoverySellerModel ToDiscoveryModelWithoutReviews(this UserSellerProfile sellerProfile) + public static DiscoveryArtistModel ToDiscoveryModelWithoutReviews(this UserArtist sellerProfile) { - return new DiscoverySellerModel() + return new DiscoveryArtistModel() { Name = sellerProfile.User.DisplayName, Id = sellerProfile.Id, @@ -36,10 +36,10 @@ public static class SellerProfileModelExtensions PrepaymentRequired = sellerProfile.PrepaymentRequired, }; } - public static DiscoverySellerModel ToDiscoveryModel(this UserSellerProfile sellerProfile) + public static DiscoveryArtistModel ToDiscoveryModel(this UserArtist sellerProfile) { - return new DiscoverySellerModel() + return new DiscoveryArtistModel() { Name = sellerProfile.User.DisplayName, Id = sellerProfile.Id, @@ -52,16 +52,16 @@ public static class SellerProfileModelExtensions PrepaymentRequired = sellerProfile.PrepaymentRequired }; } - public static UserSellerProfile ToModel(this SellerProfileModel sellerProfile, UserSellerProfile existingSellerProfile) + public static UserArtist ToModel(this ArtistModel sellerProfile, UserArtist existingArtist) { - existingSellerProfile.Name = sellerProfile.Name; - existingSellerProfile.SocialMediaLink1 = sellerProfile.SocialMeidaLink1; - existingSellerProfile.SocialMediaLink2 = sellerProfile.SocialMeidaLink2; - existingSellerProfile.SocialMediaLink3 = sellerProfile.SocialMeidaLink3; - existingSellerProfile.SocialMediaLink4 = sellerProfile.SocialMeidaLink4; - existingSellerProfile.Description = sellerProfile.Description; - existingSellerProfile.RequestGuidelines = sellerProfile.RequestGuidelines; - existingSellerProfile.PrepaymentRequired = sellerProfile.PrepaymentRequired; - return existingSellerProfile; + existingArtist.Name = sellerProfile.Name; + existingArtist.SocialMediaLink1 = sellerProfile.SocialMeidaLink1; + existingArtist.SocialMediaLink2 = sellerProfile.SocialMeidaLink2; + existingArtist.SocialMediaLink3 = sellerProfile.SocialMeidaLink3; + existingArtist.SocialMediaLink4 = sellerProfile.SocialMeidaLink4; + existingArtist.Description = sellerProfile.Description; + existingArtist.RequestGuidelines = sellerProfile.RequestGuidelines; + existingArtist.PrepaymentRequired = sellerProfile.PrepaymentRequired; + return existingArtist; } } \ No newline at end of file diff --git a/src/comissions.app.api/Models/SellerProfile/SellerProfilePageSettingsModel.cs b/src/comissions.app.api/Models/SellerProfile/ArtistProfilePageSettingsModel.cs similarity index 91% rename from src/comissions.app.api/Models/SellerProfile/SellerProfilePageSettingsModel.cs rename to src/comissions.app.api/Models/SellerProfile/ArtistProfilePageSettingsModel.cs index 9aabeca..194ee59 100644 --- a/src/comissions.app.api/Models/SellerProfile/SellerProfilePageSettingsModel.cs +++ b/src/comissions.app.api/Models/SellerProfile/ArtistProfilePageSettingsModel.cs @@ -1,6 +1,8 @@ -namespace comissions.app.api.Models.SellerProfile; +using comissions.app.database.Entities; -public class SellerProfilePageSettingsModel +namespace comissions.app.api.Models.Artist; + +public class ArtistPageSettingsModel { public string RequestButtonHoverBGColor { get; set; } @@ -37,4 +39,5 @@ public class SellerProfilePageSettingsModel public string HeaderColor { get; set; } public string BackgroundColor { get; set; } public string RequestButtonHoverTextColor { get; set; } + public ArtistModel Artist { get; set; } } \ No newline at end of file diff --git a/src/comissions.app.api/Models/SellerProfile/SellerProfilePageSettingsModelExtensions.cs b/src/comissions.app.api/Models/SellerProfile/ArtistProfilePageSettingsModelExtensions.cs similarity index 92% rename from src/comissions.app.api/Models/SellerProfile/SellerProfilePageSettingsModelExtensions.cs rename to src/comissions.app.api/Models/SellerProfile/ArtistProfilePageSettingsModelExtensions.cs index 2641d8f..8359d5d 100644 --- a/src/comissions.app.api/Models/SellerProfile/SellerProfilePageSettingsModelExtensions.cs +++ b/src/comissions.app.api/Models/SellerProfile/ArtistProfilePageSettingsModelExtensions.cs @@ -1,14 +1,15 @@ using comissions.app.database.Entities; -namespace comissions.app.api.Models.SellerProfile; +namespace comissions.app.api.Models.Artist; -public static class SellerProfilePageSettingsModelExtensions +public static class ArtistPageSettingsModelExtensions { - public static SellerProfilePageSettingsModel ToModel(this SellerProfilePageSettings sellerProfile) + public static ArtistPageSettingsModel ToModel(this ArtistPageSettings sellerProfile) { - return new SellerProfilePageSettingsModel() + return new ArtistPageSettingsModel() { + Artist = sellerProfile.Artist.ToModel(), BackgroundColor = sellerProfile.BackgroundColor, HeaderColor = sellerProfile.HeaderColor, HeaderTextSize = sellerProfile.HeaderTextSize, @@ -45,7 +46,7 @@ public static class SellerProfilePageSettingsModelExtensions RequestButtonHoverTextColor = sellerProfile.RequestButtonHoverTextColor }; } - public static SellerProfilePageSettings ToModel(this SellerProfilePageSettingsModel sellerProfile, SellerProfilePageSettings existing) + public static ArtistPageSettings ToModel(this ArtistPageSettingsModel sellerProfile, ArtistPageSettings existing) { existing.BackgroundColor = sellerProfile.BackgroundColor; existing.HeaderColor = sellerProfile.HeaderColor; diff --git a/src/comissions.app.api/Models/SellerProfile/SellerOnboardStatusModel.cs b/src/comissions.app.api/Models/SellerProfile/SellerOnboardStatusModel.cs deleted file mode 100644 index 253a2d9..0000000 --- a/src/comissions.app.api/Models/SellerProfile/SellerOnboardStatusModel.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace comissions.app.api.Models.SellerProfile; - -public class SellerOnboardStatusModel -{ - public bool Onboarded { get; set; } -} \ No newline at end of file diff --git a/src/comissions.app.api/Models/SellerProfile/SellerOnboardUrlModel.cs b/src/comissions.app.api/Models/SellerProfile/SellerOnboardUrlModel.cs deleted file mode 100644 index d5cd011..0000000 --- a/src/comissions.app.api/Models/SellerProfile/SellerOnboardUrlModel.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace comissions.app.api.Models.SellerProfile; - -public class SellerOnboardUrlModel -{ - public string OnboardUrl { get; set; } -} \ No newline at end of file diff --git a/src/comissions.app.api/Models/SellerProfileRequest/SellerProfileRequestModel.cs b/src/comissions.app.api/Models/SellerProfileRequest/SellerProfileRequestModel.cs index dd42ca4..2bba243 100644 --- a/src/comissions.app.api/Models/SellerProfileRequest/SellerProfileRequestModel.cs +++ b/src/comissions.app.api/Models/SellerProfileRequest/SellerProfileRequestModel.cs @@ -1,6 +1,6 @@ -namespace comissions.app.api.Models.SellerProfileRequest; +namespace comissions.app.api.Models.ArtistRequest; -public class SellerProfileRequestModel +public class ArtistRequestModel { public int Id { get; set; } public DateTime RequestDate { get; set; } diff --git a/src/comissions.app.api/Models/SellerProfileRequest/SellerProfileRequestModelExtensions.cs b/src/comissions.app.api/Models/SellerProfileRequest/SellerProfileRequestModelExtensions.cs index b1e9f9b..9655a2e 100644 --- a/src/comissions.app.api/Models/SellerProfileRequest/SellerProfileRequestModelExtensions.cs +++ b/src/comissions.app.api/Models/SellerProfileRequest/SellerProfileRequestModelExtensions.cs @@ -1,10 +1,10 @@ -namespace comissions.app.api.Models.SellerProfileRequest; +namespace comissions.app.api.Models.ArtistRequest; -public static class SellerProfileRequestModelExtensions +public static class ArtistRequestModelExtensions { - public static SellerProfileRequestModel ToModel(this database.Entities.SellerProfileRequest sellerProfileRequest) + public static ArtistRequestModel ToModel(this database.Entities.ArtistRequest sellerProfileRequest) { - return new SellerProfileRequestModel() + return new ArtistRequestModel() { Id = sellerProfileRequest.Id, UserId = sellerProfileRequest.UserId, diff --git a/src/comissions.app.api/Models/SellerService/SellerServiceCreateModel.cs b/src/comissions.app.api/Models/SellerService/SellerServiceCreateModel.cs deleted file mode 100644 index f3b66c1..0000000 --- a/src/comissions.app.api/Models/SellerService/SellerServiceCreateModel.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace comissions.app.api.Models.SellerService; - -public class SellerServiceCreateModel -{ - public string Name { get; set; } - public string Description { get; set; } - public double Price { get; set; } -} \ No newline at end of file diff --git a/src/comissions.app.api/Models/SellerService/SellerServiceModel.cs b/src/comissions.app.api/Models/SellerService/SellerServiceModel.cs deleted file mode 100644 index e89a857..0000000 --- a/src/comissions.app.api/Models/SellerService/SellerServiceModel.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace comissions.app.api.Models.SellerService; - -public class SellerServiceModel -{ - public int Id { get; set; } - public string Name { get; set; } = null!; - public string Description { get; set; } = null!; - public double Price { get; set; } - public double AverageRating { get; set; } - public int NumberOfRatings { get; set; } -} \ No newline at end of file diff --git a/src/comissions.app.api/Models/SellerService/SellerServiceModelExtensions.cs b/src/comissions.app.api/Models/SellerService/SellerServiceModelExtensions.cs deleted file mode 100644 index c61b10d..0000000 --- a/src/comissions.app.api/Models/SellerService/SellerServiceModelExtensions.cs +++ /dev/null @@ -1,20 +0,0 @@ -namespace comissions.app.api.Models.SellerService; - -public static class SellerServiceModelExtensions -{ - - public static SellerServiceModel ToModel(this database.Entities.SellerService sellerProfileRequest) - { - double avgRating = 0; - int reviewCount = 0; - return new SellerServiceModel() - { - Id = sellerProfileRequest.Id, - Name = sellerProfileRequest.Name, - Description = sellerProfileRequest.Description, - Price = sellerProfileRequest.Price, - AverageRating = avgRating, - NumberOfRatings = reviewCount - }; - } -} \ No newline at end of file diff --git a/src/comissions.app.api/Models/SellerService/SellerServiceUpdateModel.cs b/src/comissions.app.api/Models/SellerService/SellerServiceUpdateModel.cs deleted file mode 100644 index 8b46e7b..0000000 --- a/src/comissions.app.api/Models/SellerService/SellerServiceUpdateModel.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace comissions.app.api.Models.SellerService; - -public class SellerServiceUpdateModel -{ - public string Name { get; set; } - public string Description { get; set; } - public double Price { get; set; } -} \ No newline at end of file diff --git a/src/comissions.app.api/Services/Payment/IPaymentService.cs b/src/comissions.app.api/Services/Payment/IPaymentService.cs index 29a3dd7..3854f35 100644 --- a/src/comissions.app.api/Services/Payment/IPaymentService.cs +++ b/src/comissions.app.api/Services/Payment/IPaymentService.cs @@ -4,8 +4,8 @@ namespace comissions.app.api.Services.Payment; public interface IPaymentService { public string CreateCustomer(); - string CreateSellerAccount(); - string CreateSellerAccountOnboardingUrl(string accountId); - bool SellerAccountIsOnboarded(string accountId); - string ChargeForService(int orderSellerServiceId, string? sellerStripeAccountId, double orderPrice); + string CreateArtistAccount(); + string CreateArtistAccountOnboardingUrl(string accountId); + bool ArtistAccountIsOnboarded(string accountId); + string ChargeForService(int orderArtistServiceId, string? sellerStripeAccountId, double orderPrice); } \ No newline at end of file diff --git a/src/comissions.app.api/Services/Payment/StripePaymentServiceProvider.cs b/src/comissions.app.api/Services/Payment/StripePaymentServiceProvider.cs index e137f60..8983736 100644 --- a/src/comissions.app.api/Services/Payment/StripePaymentServiceProvider.cs +++ b/src/comissions.app.api/Services/Payment/StripePaymentServiceProvider.cs @@ -48,7 +48,7 @@ public class StripePaymentServiceProvider:IPaymentService // var intent = service.Create(options, requestOptions); // throw new NotImplementedException(); // } - public string CreateSellerAccount() + public string CreateArtistAccount() { var accountCreateOptions = new AccountCreateOptions { Type = "express", Capabilities @@ -66,7 +66,7 @@ public class StripePaymentServiceProvider:IPaymentService return account.Id; } - public string CreateSellerAccountOnboardingUrl(string accountId) + public string CreateArtistAccountOnboardingUrl(string accountId) { var options = new AccountLinkCreateOptions { @@ -80,14 +80,14 @@ public class StripePaymentServiceProvider:IPaymentService return url.Url; } - public bool SellerAccountIsOnboarded(string accountId) + public bool ArtistAccountIsOnboarded(string accountId) { var service = new AccountService(); var account = service.Get(accountId); return account.Requirements.CurrentlyDue.Count == 0 && account.ChargesEnabled==true && account.DetailsSubmitted==true; } - public string ChargeForService(int orderSellerServiceOrderId, string? sellerStripeAccountId, + public string ChargeForService(int orderArtistServiceOrderId, string? sellerStripeAccountId, double orderPrice) { var feeAmount = (long)Math.Round((orderPrice*0.05) * 100); @@ -117,7 +117,7 @@ public class StripePaymentServiceProvider:IPaymentService CancelUrl = "https://example.com/failure", Metadata = new Dictionary() { - ["orderId"] = orderSellerServiceOrderId.ToString() + ["orderId"] = orderArtistServiceOrderId.ToString() } }; var requestOptions = new RequestOptions diff --git a/src/comissions.app.database.migrator/obj/Debug/net8.0/comissions.app.database.migrator.AssemblyInfo.cs b/src/comissions.app.database.migrator/obj/Debug/net8.0/comissions.app.database.migrator.AssemblyInfo.cs index 8ef9f45..fe870e0 100644 --- a/src/comissions.app.database.migrator/obj/Debug/net8.0/comissions.app.database.migrator.AssemblyInfo.cs +++ b/src/comissions.app.database.migrator/obj/Debug/net8.0/comissions.app.database.migrator.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("comissions.app.database.migrator")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+0d63aae1311642c2e8c803966369f5da0ea18ce2")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+1dc7ecdc8f45a8e7eebb50091a558ad010f54dc5")] [assembly: System.Reflection.AssemblyProductAttribute("comissions.app.database.migrator")] [assembly: System.Reflection.AssemblyTitleAttribute("comissions.app.database.migrator")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/src/comissions.app.database.migrator/obj/Debug/net8.0/comissions.app.database.migrator.AssemblyInfoInputs.cache b/src/comissions.app.database.migrator/obj/Debug/net8.0/comissions.app.database.migrator.AssemblyInfoInputs.cache index a95778e..189088e 100644 --- a/src/comissions.app.database.migrator/obj/Debug/net8.0/comissions.app.database.migrator.AssemblyInfoInputs.cache +++ b/src/comissions.app.database.migrator/obj/Debug/net8.0/comissions.app.database.migrator.AssemblyInfoInputs.cache @@ -1 +1 @@ -a4159fd41a43dc7f19501c196bc7d0764162eaaba63418d3ac373794c8e4237f +7ecd7fd3ed0865bcfbf8e22720cbe9d2bfd825c1ff3b4a43eca6d079e64d08a0