Files
PowderCoatingLogix/src/PowderCoating.Core/Entities/CustomerContact.cs
T
spouliot 94a89ee175 Add CRM features: Additional Contacts, Lead Source, Ship-To Address; update Help docs
- New CustomerContact entity + migration (AddCustomerContactsAndCrmFields)
- Customer.LeadSource + ShipToAddress/City/State/ZipCode/Country fields
- Additional Contacts card on Customer Details with AJAX add/edit/delete
- Lead Source dropdown on Create/Edit; Ship-To section on Create/Edit
- Customer Details: side-by-side billing/ship-to when ship-to is set
- Help docs: Customers (contacts, ship-to, lead source, preferred powders, outstanding pickups)
- Help docs: Jobs (clone job, project name), Quotes (project name), Invoices (project name), Inventory (low stock clickable filter)
- HelpKnowledgeBase.cs updated for all features above

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-10 12:46:08 -04:00

43 lines
1.2 KiB
C#

using System.ComponentModel.DataAnnotations;
namespace PowderCoating.Core.Entities;
/// <summary>
/// An additional contact person associated with a customer account.
/// Commercial customers frequently have separate billing, operations, and drop-off contacts.
/// The primary contact remains on the Customer entity; these are supplementary.
/// </summary>
public class CustomerContact : BaseEntity
{
public int CustomerId { get; set; }
[Required]
[StringLength(100)]
public string FirstName { get; set; } = string.Empty;
[StringLength(100)]
public string? LastName { get; set; }
/// <summary>Job title / role at the company, e.g. "Purchasing Manager".</summary>
[StringLength(100)]
public string? Title { get; set; }
/// <summary>Functional role: Billing, Operations, Drop-off, Sales, General, etc.</summary>
[StringLength(50)]
public string? ContactRole { get; set; }
[StringLength(200)]
public string? Email { get; set; }
[StringLength(20)]
public string? Phone { get; set; }
[StringLength(20)]
public string? MobilePhone { get; set; }
[StringLength(500)]
public string? Notes { get; set; }
public virtual Customer? Customer { get; set; }
}