97 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| // ***********************************************************************
 | ||
| // <copyright file="TenantRequest.cs">
 | ||
| //     AgileWebs
 | ||
| // </copyright>
 | ||
| // ***********************************************************************
 | ||
| using MongoDB.Bson.Serialization.Attributes;
 | ||
| 
 | ||
| namespace Core.Thalos.Domain.Contexts.Onboarding.Request
 | ||
| {
 | ||
|     /// <summary>
 | ||
|     /// Represents a tenant creation request with business and contact details.
 | ||
|     /// </summary>
 | ||
|     public class TenantRequest
 | ||
|     {
 | ||
|         /// <summary>
 | ||
|         /// The legal or commercial name of the tenant.
 | ||
|         /// </summary>
 | ||
|         [BsonElement("name")]
 | ||
|         public string Name { get; set; } = null!;
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// The tax identification number of the tenant (e.g., RFC, VAT).
 | ||
|         /// </summary>
 | ||
|         [BsonElement("taxIdentifier")]
 | ||
|         public string TaxIdentifier { get; set; } = null!;
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// The primary address line (street, number, etc.).
 | ||
|         /// </summary>
 | ||
|         [BsonElement("addressLine1")]
 | ||
|         public string AddressLine1 { get; set; } = null!;
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// An optional second address line (apartment, suite, etc.).
 | ||
|         /// </summary>
 | ||
|         [BsonElement("addressLine2")]
 | ||
|         [BsonIgnoreIfNull]
 | ||
|         public string? AddressLine2 { get; set; }
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// The city where the tenant is located.
 | ||
|         /// </summary>
 | ||
|         [BsonElement("city")]
 | ||
|         public string City { get; set; } = null!;
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// The state, province, or region of the tenant.
 | ||
|         /// </summary>
 | ||
|         [BsonElement("state")]
 | ||
|         public string State { get; set; } = null!;
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// The country of the tenant.
 | ||
|         /// </summary>
 | ||
|         [BsonElement("country")]
 | ||
|         public string Country { get; set; } = null!;
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// The postal or ZIP code of the tenant’s location.
 | ||
|         /// </summary>
 | ||
|         [BsonElement("postalCode")]
 | ||
|         public string PostalCode { get; set; } = null!;
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// The main email address for contacting the tenant.
 | ||
|         /// </summary>
 | ||
|         [BsonElement("contactEmail")]
 | ||
|         public string ContactEmail { get; set; } = null!;
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// The main phone number for contacting the tenant.
 | ||
|         /// </summary>
 | ||
|         [BsonElement("contactPhone")]
 | ||
|         public string ContactPhone { get; set; } = null!;
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// The tenant’s website URL, if available.
 | ||
|         /// </summary>
 | ||
|         [BsonElement("website")]
 | ||
|         [BsonIgnoreIfNull]
 | ||
|         public string? Website { get; set; }
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// The database connection string for the tenant, if applicable.
 | ||
|         /// </summary>
 | ||
|         [BsonElement("connectionString")]
 | ||
|         [BsonIgnoreIfNull]
 | ||
|         public string? ConnectionString { get; set; }
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// Indicates whether the tenant uses an isolated database.
 | ||
|         /// </summary>
 | ||
|         [BsonElement("isolated")]
 | ||
|         public bool Isolated { get; set; }
 | ||
|     }
 | ||
| }
 |