diff --git a/src/Yavsc.Server/Models/EMailing/MailingTemplate.cs b/src/Yavsc.Server/Models/EMailing/MailingTemplate.cs
index b5ca0767..c4d86ce0 100644
--- a/src/Yavsc.Server/Models/EMailing/MailingTemplate.cs
+++ b/src/Yavsc.Server/Models/EMailing/MailingTemplate.cs
@@ -23,17 +23,17 @@ namespace Yavsc.Server.Models.EMailing
set;
}
- [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)]
- public long Id { get; set; }
+ [Key][MaxLength(256),MinLength(3)]
+ public string Id { get; set; }
- [MaxLengthAttribute(128),MinLength(3)]
+ [MaxLength(256),MinLength(3)]
public string Topic { get; set; }
///
/// Markdown template to process
///
///
- [MaxLengthAttribute(64*1024)]
+ [MaxLength(64*1024)]
public string Body { get; set; }
[EmailAddress()]
diff --git a/src/Yavsc.Server/Templates/UserOrientedTemplate.cs b/src/Yavsc.Server/Templates/UserOrientedTemplate.cs
index edefe0ee..bcc4a784 100644
--- a/src/Yavsc.Server/Templates/UserOrientedTemplate.cs
+++ b/src/Yavsc.Server/Templates/UserOrientedTemplate.cs
@@ -1,8 +1,20 @@
+using System;
+using System.Collections.Generic;
using Yavsc.Abstract.Templates;
using Yavsc.Models;
namespace Yavsc.Templates
{
+ public static class TemplateConstants
+ {
+ public static readonly Dictionary> Criterias =
+ new Dictionary>
+ {
+ { "allow-monthly", u => u.AllowMonthlyEmail },
+ { "email-not-confirmed", u => !u.EmailConfirmed && u.DateCreated < DateTime.Now.AddDays(-7) }
+ };
+ }
+
public abstract class UserOrientedTemplate: Template
{
public ApplicationUser User { get; set; }
diff --git a/src/Yavsc/ApiControllers/MailingTemplateApiController.cs b/src/Yavsc/ApiControllers/MailingTemplateApiController.cs
index 510afc19..366796b9 100644
--- a/src/Yavsc/ApiControllers/MailingTemplateApiController.cs
+++ b/src/Yavsc/ApiControllers/MailingTemplateApiController.cs
@@ -32,7 +32,7 @@ namespace Yavsc.Controllers
// GET: api/MailingTemplateApi/5
[HttpGet("{id}", Name = "GetMailingTemplate")]
- public async Task GetMailingTemplate([FromRoute] long id)
+ public async Task GetMailingTemplate([FromRoute] string id)
{
if (!ModelState.IsValid)
{
@@ -51,7 +51,7 @@ namespace Yavsc.Controllers
// PUT: api/MailingTemplateApi/5
[HttpPut("{id}")]
- public async Task PutMailingTemplate([FromRoute] long id, [FromBody] MailingTemplate mailingTemplate)
+ public async Task PutMailingTemplate([FromRoute] string id, [FromBody] MailingTemplate mailingTemplate)
{
if (!ModelState.IsValid)
{
@@ -117,7 +117,7 @@ namespace Yavsc.Controllers
// DELETE: api/MailingTemplateApi/5
[HttpDelete("{id}")]
- public async Task DeleteMailingTemplate([FromRoute] long id)
+ public async Task DeleteMailingTemplate([FromRoute] string id)
{
if (!ModelState.IsValid)
{
@@ -145,7 +145,7 @@ namespace Yavsc.Controllers
base.Dispose(disposing);
}
- private bool MailingTemplateExists(long id)
+ private bool MailingTemplateExists(string id)
{
return _context.MailingTemplate.Count(e => e.Id == id) > 0;
}
diff --git a/src/Yavsc/Controllers/Administration/MailingTemplateController.cs b/src/Yavsc/Controllers/Administration/MailingTemplateController.cs
index d1e7cb65..991c5186 100644
--- a/src/Yavsc/Controllers/Administration/MailingTemplateController.cs
+++ b/src/Yavsc/Controllers/Administration/MailingTemplateController.cs
@@ -9,7 +9,8 @@ using Yavsc.Models;
using Yavsc.Models.Calendar;
using Yavsc.Server.Models.EMailing;
using Microsoft.AspNet.Authorization;
-
+using Yavsc.Templates;
+using System.Linq;
namespace Yavsc.Controllers
{
@@ -31,7 +32,7 @@ namespace Yavsc.Controllers
}
// GET: MailingTemplate/Details/5
- public async Task Details(long? id)
+ public async Task Details(string id)
{
if (id == null)
{
@@ -47,8 +48,7 @@ namespace Yavsc.Controllers
return View(mailingTemplate);
}
-
- List GetSelectFromEnum(Type enumType )
+ List GetSelectFromEnum(Type enumType)
{
var list = new List();
@@ -60,12 +60,15 @@ namespace Yavsc.Controllers
}
-
// GET: MailingTemplate/Create
public IActionResult Create()
{
ViewBag.ManagerId = new SelectList(_context.ApplicationUser, "Id", "UserName");
ViewBag.ToSend = GetSelectFromEnum(typeof(Periodicity));
+ ViewBag.Id = new SelectList(
+ TemplateConstants.Criterias.Select(
+ c => new SelectListItem{ Text = c.Key, Value = c.Key })
+ );
return View();
}
@@ -82,11 +85,15 @@ namespace Yavsc.Controllers
}
ViewBag.ManagerId = new SelectList(_context.ApplicationUser, "Id", "UserName");
ViewBag.ToSend = GetSelectFromEnum(typeof(Periodicity));
+ ViewBag.Id = new SelectList(
+ TemplateConstants.Criterias.Select(
+ c => new SelectListItem{ Text = c.Key, Value = c.Key })
+ );
return View(mailingTemplate);
}
// GET: MailingTemplate/Edit/5
- public async Task Edit(long? id)
+ public async Task Edit(string id)
{
if (id == null)
{
@@ -100,6 +107,10 @@ namespace Yavsc.Controllers
}
ViewBag.ManagerId = new SelectList(_context.ApplicationUser, "Id", "UserName");
ViewBag.ToSend = GetSelectFromEnum(typeof(Periodicity));
+ ViewBag.Id = new SelectList(
+ TemplateConstants.Criterias.Select(
+ c => new SelectListItem{ Text = c.Key, Value = c.Key })
+ );
return View(mailingTemplate);
}
@@ -116,12 +127,16 @@ namespace Yavsc.Controllers
}
ViewBag.ManagerId = new SelectList(_context.ApplicationUser, "Id", "UserName");
ViewBag.ToSend = GetSelectFromEnum(typeof(Periodicity));
+ ViewBag.Id = new SelectList(
+ TemplateConstants.Criterias.Select(
+ c => new SelectListItem{ Text = c.Key, Value = c.Key })
+ );
return View(mailingTemplate);
}
// GET: MailingTemplate/Delete/5
[ActionName("Delete")]
- public async Task Delete(long? id)
+ public async Task Delete(string id)
{
if (id == null)
{
@@ -140,7 +155,7 @@ namespace Yavsc.Controllers
// POST: MailingTemplate/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
- public async Task DeleteConfirmed(long id)
+ public async Task DeleteConfirmed(string id)
{
MailingTemplate mailingTemplate = await _context.MailingTemplate.SingleAsync(m => m.Id == id);
_context.MailingTemplate.Remove(mailingTemplate);
diff --git a/src/Yavsc/Migrations/20210530122042_template-key.Designer.cs b/src/Yavsc/Migrations/20210530122042_template-key.Designer.cs
new file mode 100644
index 00000000..9eb6701a
--- /dev/null
+++ b/src/Yavsc/Migrations/20210530122042_template-key.Designer.cs
@@ -0,0 +1,2070 @@
+using System;
+using Microsoft.Data.Entity;
+using Microsoft.Data.Entity.Infrastructure;
+using Microsoft.Data.Entity.Metadata;
+using Microsoft.Data.Entity.Migrations;
+using Yavsc.Models;
+
+namespace Yavsc.Migrations
+{
+ [DbContext(typeof(ApplicationDbContext))]
+ [Migration("20210530122042_template-key")]
+ partial class templatekey
+ {
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+ modelBuilder
+ .HasAnnotation("ProductVersion", "7.0.0-rc1-16348");
+
+ modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRole", b =>
+ {
+ b.Property("Id");
+
+ b.Property("ConcurrencyStamp")
+ .IsConcurrencyToken();
+
+ b.Property("Name")
+ .HasAnnotation("MaxLength", 256);
+
+ b.Property("NormalizedName")
+ .HasAnnotation("MaxLength", 256);
+
+ b.HasKey("Id");
+
+ b.HasIndex("NormalizedName")
+ .HasAnnotation("Relational:Name", "RoleNameIndex");
+
+ b.HasAnnotation("Relational:TableName", "AspNetRoles");
+ });
+
+ modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityRoleClaim", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("ClaimType");
+
+ b.Property("ClaimValue");
+
+ b.Property("RoleId")
+ .IsRequired();
+
+ b.HasKey("Id");
+
+ b.HasAnnotation("Relational:TableName", "AspNetRoleClaims");
+ });
+
+ modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserClaim", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("ClaimType");
+
+ b.Property("ClaimValue");
+
+ b.Property("UserId")
+ .IsRequired();
+
+ b.HasKey("Id");
+
+ b.HasAnnotation("Relational:TableName", "AspNetUserClaims");
+ });
+
+ modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin", b =>
+ {
+ b.Property("LoginProvider");
+
+ b.Property("ProviderKey");
+
+ b.Property("ProviderDisplayName");
+
+ b.Property("UserId")
+ .IsRequired();
+
+ b.HasKey("LoginProvider", "ProviderKey");
+
+ b.HasAnnotation("Relational:TableName", "AspNetUserLogins");
+ });
+
+ modelBuilder.Entity("Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole", b =>
+ {
+ b.Property("UserId");
+
+ b.Property("RoleId");
+
+ b.HasKey("UserId", "RoleId");
+
+ b.HasAnnotation("Relational:TableName", "AspNetUserRoles");
+ });
+
+ modelBuilder.Entity("Yavsc.Abstract.Identity.ClientProviderInfo", b =>
+ {
+ b.Property("UserId");
+
+ b.Property("Avatar");
+
+ b.Property("BillingAddressId");
+
+ b.Property("EMail");
+
+ b.Property("Phone");
+
+ b.Property("UserName");
+
+ b.HasKey("UserId");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.Access.Ban", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("DateCreated");
+
+ b.Property("DateModified");
+
+ b.Property("Reason")
+ .IsRequired();
+
+ b.Property("TargetId")
+ .IsRequired();
+
+ b.Property("UserCreated");
+
+ b.Property("UserModified");
+
+ b.HasKey("Id");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.Access.BlackListed", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("OwnerId")
+ .IsRequired();
+
+ b.Property("UserId")
+ .IsRequired();
+
+ b.HasKey("Id");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.Access.CircleAuthorizationToBlogPost", b =>
+ {
+ b.Property("CircleId");
+
+ b.Property("BlogPostId");
+
+ b.HasKey("CircleId", "BlogPostId");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.AccountBalance", b =>
+ {
+ b.Property("UserId");
+
+ b.Property("ContactCredits");
+
+ b.Property("Credits");
+
+ b.HasKey("UserId");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.ApplicationUser", b =>
+ {
+ b.Property("Id");
+
+ b.Property("AccessFailedCount");
+
+ b.Property("AllowMonthlyEmail");
+
+ b.Property("Avatar")
+ .HasAnnotation("MaxLength", 512)
+ .HasAnnotation("Relational:DefaultValue", "/images/Users/icon_user.png")
+ .HasAnnotation("Relational:DefaultValueType", "System.String");
+
+ b.Property("BankInfoId");
+
+ b.Property("ConcurrencyStamp")
+ .IsConcurrencyToken();
+
+ b.Property("DateCreated");
+
+ b.Property("DateModified");
+
+ b.Property("DedicatedGoogleCalendar")
+ .HasAnnotation("MaxLength", 512);
+
+ b.Property("DiskQuota")
+ .HasAnnotation("Relational:DefaultValue", "524288000")
+ .HasAnnotation("Relational:DefaultValueType", "System.Int64");
+
+ b.Property("DiskUsage");
+
+ b.Property("Email")
+ .HasAnnotation("MaxLength", 256);
+
+ b.Property("EmailConfirmed");
+
+ b.Property("FullName")
+ .HasAnnotation("MaxLength", 512);
+
+ b.Property("LockoutEnabled");
+
+ b.Property("LockoutEnd");
+
+ b.Property("MaxFileSize");
+
+ b.Property("NormalizedEmail")
+ .HasAnnotation("MaxLength", 256);
+
+ b.Property("NormalizedUserName")
+ .HasAnnotation("MaxLength", 256);
+
+ b.Property("PasswordHash");
+
+ b.Property("PhoneNumber");
+
+ b.Property("PhoneNumberConfirmed");
+
+ b.Property("PostalAddressId");
+
+ b.Property("SecurityStamp");
+
+ b.Property("TwoFactorEnabled");
+
+ b.Property("UserCreated");
+
+ b.Property("UserModified");
+
+ b.Property("UserName")
+ .HasAnnotation("MaxLength", 256);
+
+ b.HasKey("Id");
+
+ b.HasIndex("NormalizedEmail")
+ .HasAnnotation("Relational:Name", "EmailIndex");
+
+ b.HasIndex("NormalizedUserName")
+ .HasAnnotation("Relational:Name", "UserNameIndex");
+
+ b.HasAnnotation("Relational:TableName", "AspNetUsers");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.Auth.Client", b =>
+ {
+ b.Property("Id");
+
+ b.Property("Active");
+
+ b.Property("DisplayName");
+
+ b.Property("LogoutRedirectUri")
+ .HasAnnotation("MaxLength", 100);
+
+ b.Property("RedirectUri");
+
+ b.Property("RefreshTokenLifeTime");
+
+ b.Property("Secret");
+
+ b.Property("Type");
+
+ b.HasKey("Id");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.Auth.OAuth2Tokens", b =>
+ {
+ b.Property("UserId");
+
+ b.Property("AccessToken");
+
+ b.Property("Expiration");
+
+ b.Property("ExpiresIn");
+
+ b.Property("RefreshToken");
+
+ b.Property("TokenType");
+
+ b.HasKey("UserId");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.Auth.RefreshToken", b =>
+ {
+ b.Property("Id");
+
+ b.Property("ClientId")
+ .IsRequired()
+ .HasAnnotation("MaxLength", 50);
+
+ b.Property("ExpiresUtc");
+
+ b.Property("IssuedUtc");
+
+ b.Property("ProtectedTicket")
+ .IsRequired();
+
+ b.Property("Subject")
+ .IsRequired()
+ .HasAnnotation("MaxLength", 50);
+
+ b.HasKey("Id");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.BalanceImpact", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("BalanceId")
+ .IsRequired();
+
+ b.Property("ExecDate");
+
+ b.Property("Impact");
+
+ b.Property("Reason")
+ .IsRequired();
+
+ b.HasKey("Id");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.Bank.BankIdentity", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("AccountNumber");
+
+ b.Property("BIC");
+
+ b.Property("BankCode");
+
+ b.Property("BankedKey");
+
+ b.Property("IBAN");
+
+ b.Property("WicketCode");
+
+ b.HasKey("Id");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.Billing.CommandLine", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("Count");
+
+ b.Property("Currency");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasAnnotation("MaxLength", 512);
+
+ b.Property("EstimateId");
+
+ b.Property("EstimateTemplateId");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasAnnotation("MaxLength", 256);
+
+ b.Property("UnitaryCost");
+
+ b.HasKey("Id");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.Billing.Estimate", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("AttachedFilesString");
+
+ b.Property("AttachedGraphicsString");
+
+ b.Property("ClientId")
+ .IsRequired();
+
+ b.Property("ClientValidationDate");
+
+ b.Property("CommandId");
+
+ b.Property("CommandType")
+ .IsRequired();
+
+ b.Property("Description");
+
+ b.Property("OwnerId");
+
+ b.Property("ProviderValidationDate");
+
+ b.Property("Title");
+
+ b.HasKey("Id");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.Billing.EstimateTemplate", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("Description");
+
+ b.Property("OwnerId")
+ .IsRequired();
+
+ b.Property("Title");
+
+ b.HasKey("Id");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.Billing.ExceptionSIREN", b =>
+ {
+ b.Property("SIREN");
+
+ b.HasKey("SIREN");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.Blog.BlogPost", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("AuthorId");
+
+ b.Property("Content");
+
+ b.Property("DateCreated");
+
+ b.Property("DateModified");
+
+ b.Property("Lang");
+
+ b.Property("Photo");
+
+ b.Property("Rate");
+
+ b.Property("Title");
+
+ b.Property("UserCreated");
+
+ b.Property("UserModified");
+
+ b.Property("Visible");
+
+ b.HasKey("Id");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.Blog.BlogTag", b =>
+ {
+ b.Property("PostId");
+
+ b.Property("TagId");
+
+ b.HasKey("PostId", "TagId");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.Blog.Comment", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("AuthorId")
+ .IsRequired();
+
+ b.Property("Content");
+
+ b.Property("DateCreated");
+
+ b.Property("DateModified");
+
+ b.Property("ParentId");
+
+ b.Property("PostId");
+
+ b.Property("UserCreated");
+
+ b.Property("UserModified");
+
+ b.Property("Visible");
+
+ b.HasKey("Id");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.Calendar.Period", b =>
+ {
+ b.Property("Start");
+
+ b.Property("End");
+
+ b.HasKey("Start", "End");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.Calendar.Schedule", b =>
+ {
+ b.Property("OwnerId");
+
+ b.HasKey("OwnerId");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.Calendar.ScheduledEvent", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("PeriodEnd");
+
+ b.Property("PeriodStart");
+
+ b.Property("Reccurence");
+
+ b.Property("ScheduleOwnerId");
+
+ b.HasKey("Id");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.Chat.ChatConnection", b =>
+ {
+ b.Property("ConnectionId");
+
+ b.Property("ApplicationUserId")
+ .IsRequired();
+
+ b.Property("Connected");
+
+ b.Property("UserAgent");
+
+ b.HasKey("ConnectionId");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.Chat.ChatRoom", b =>
+ {
+ b.Property("Name");
+
+ b.Property("DateCreated");
+
+ b.Property("DateModified");
+
+ b.Property("LatestJoinPart");
+
+ b.Property("OwnerId");
+
+ b.Property("Topic");
+
+ b.Property("UserCreated");
+
+ b.Property("UserModified");
+
+ b.HasKey("Name");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.Chat.ChatRoomAccess", b =>
+ {
+ b.Property("ChannelName");
+
+ b.Property("UserId");
+
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("Level");
+
+ b.HasKey("ChannelName", "UserId");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.Cratie.Option", b =>
+ {
+ b.Property("Code");
+
+ b.Property("CodeScrutin");
+
+ b.Property("DateCreated");
+
+ b.Property("DateModified");
+
+ b.Property("Description");
+
+ b.Property("UserCreated");
+
+ b.Property("UserModified");
+
+ b.HasKey("Code", "CodeScrutin");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.Drawing.Color", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("Blue");
+
+ b.Property("Green");
+
+ b.Property("Name");
+
+ b.Property("Red");
+
+ b.HasKey("Id");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.Forms.Form", b =>
+ {
+ b.Property("Id");
+
+ b.Property("Summary");
+
+ b.HasKey("Id");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.Haircut.BrusherProfile", b =>
+ {
+ b.Property("UserId");
+
+ b.Property("ActionDistance");
+
+ b.Property("CarePrice");
+
+ b.Property("FlatFeeDiscount");
+
+ b.Property("HalfBalayagePrice");
+
+ b.Property("HalfBrushingPrice");
+
+ b.Property("HalfColorPrice");
+
+ b.Property("HalfDefrisPrice");
+
+ b.Property("HalfFoldingPrice");
+
+ b.Property("HalfMechPrice");
+
+ b.Property("HalfMultiColorPrice");
+
+ b.Property("HalfPermanentPrice");
+
+ b.Property("KidCutPrice");
+
+ b.Property("LongBalayagePrice");
+
+ b.Property("LongBrushingPrice");
+
+ b.Property("LongColorPrice");
+
+ b.Property("LongDefrisPrice");
+
+ b.Property("LongFoldingPrice");
+
+ b.Property("LongMechPrice");
+
+ b.Property("LongMultiColorPrice");
+
+ b.Property("LongPermanentPrice");
+
+ b.Property("ManBrushPrice");
+
+ b.Property("ManCutPrice");
+
+ b.Property("ScheduleOwnerId");
+
+ b.Property("ShampooPrice");
+
+ b.Property("ShortBalayagePrice");
+
+ b.Property("ShortBrushingPrice");
+
+ b.Property("ShortColorPrice");
+
+ b.Property("ShortDefrisPrice");
+
+ b.Property("ShortFoldingPrice");
+
+ b.Property("ShortMechPrice");
+
+ b.Property("ShortMultiColorPrice");
+
+ b.Property("ShortPermanentPrice");
+
+ b.Property("WomenHalfCutPrice");
+
+ b.Property("WomenLongCutPrice");
+
+ b.Property("WomenShortCutPrice");
+
+ b.HasKey("UserId");
+ });
+
+ modelBuilder.Entity("Yavsc.Models.Haircut.HairCutQuery", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd();
+
+ b.Property("ActivityCode")
+ .IsRequired();
+
+ b.Property("AdditionalInfo");
+
+ b.Property("ClientId")
+ .IsRequired();
+
+ b.Property("Consent");
+
+ b.Property("DateCreated");
+
+ b.Property("DateModified");
+
+ b.Property("Description");
+
+ b.Property("EventDate");
+
+ b.Property("LocationId");
+
+ b.Property