first commit

This commit is contained in:
Zeeshaun
2026-03-11 11:18:25 -05:00
commit f3cb730f3b
472 changed files with 53651 additions and 0 deletions
@@ -0,0 +1,11 @@
namespace Landmark.OLA.Models.Assets.Enums
{
public enum LienPositionType
{
First,
Second,
Third,
Fourth,
Fifth
}
}
@@ -0,0 +1,10 @@
namespace Landmark.OLA.Models.Assets.Enums
{
public enum ManufacturedHomeType
{
Single,
Double,
Triple,
Quad,
}
}
@@ -0,0 +1,8 @@
namespace Landmark.OLA.Models.Assets.Enums
{
public enum NewUsed
{
New,
Used,
}
}
@@ -0,0 +1,14 @@
namespace Landmark.OLA.Models.Assets.Enums
{
/// <summary>
/// OwnerOccupiedTypeEnum in CRIF's commonSchema.xsd
/// </summary>
public enum PropertyUse
{
OwnerOccupied,
SecondHome,
Rental,
VacationHome,
Vacant
}
}
@@ -0,0 +1,19 @@
namespace Landmark.OLA.Models.Assets.Enums
{
/// <summary>
/// Derived from PropertySubTypeEnum in CRIF's commonSchema.xsd
/// </summary>
public enum RealEstateType
{
Family2_4, //1-4 Family
OneUnit,
TwoUnit,
ThreeUnit,
FourUnit,
Condo,
CoOp,
Other,
SingleFamily,
Townhouse
}
}
@@ -0,0 +1,8 @@
namespace Landmark.OLA.Models.Assets.Enums
{
public enum UsageType
{
Personal,
Business,
}
}
@@ -0,0 +1,8 @@
namespace Landmark.OLA.Models.Assets.Enums
{
public enum VehicleSeller
{
Dealer,
Private_Party,
}
}
@@ -0,0 +1,14 @@
namespace Landmark.OLA.Models.Assets.Enums
{
public enum VehicleType
{
Automobile,
Motorcycle,
Boat,
ATV,
PWC,
RecreationalVehicle, //This is *not* a motorhome/camper, but is instead things like golf carts.
Snowmobile,
TrailerMotorHome, //This *does* include a traditional RV motorohome.
}
}
@@ -0,0 +1,14 @@
namespace Landmark.OLA.Models.Assets.Enums
{
//CRIF's ValueTypeEnum from commonSchema.xsd
public enum VehicleValuationType
{
Invoice,
Loan,
MSRP,
Retail,
TradeIn,
Wholesale,
Manual,
}
}
@@ -0,0 +1,14 @@
namespace Landmark.OLA.Models.Assets
{
public class LienPosition : OlaModel
{
public bool HasFirstMortgage { get; set; }
public bool HasSecondMortgage { get; set; }
public bool PayoffFirstMortgage { get; set; }
public bool PayoffSecondMortgage { get; set; }
}
}
@@ -0,0 +1,29 @@
using System.ComponentModel.DataAnnotations;
using Landmark.OLA.Models.Addresses;
using Landmark.OLA.Models.Assets.Enums;
namespace Landmark.OLA.Models.Assets
{
public class ManufacturedHome : RealEstateBase
{
[Required]
public ManufacturedHomeType? Type { get; set; }
[Required]
public PropertyLot Lot { get; set; }
//Slightly arbitrary values that should be safe
[Range(0, 1000000000)]
public decimal? EstimatedLandValuation { get; set; }
[Required]
[Range(minimum: 0, maximum: 1000000000)]
public decimal EstimatedHomeValuation { get; set; }
public ManufacturedHome(Guid? manufacturedHomeId = null)
:base(manufacturedHomeId)
{
}
}
}
@@ -0,0 +1,20 @@
using System.ComponentModel.DataAnnotations;
using Landmark.OLA.Models.Addresses;
using Landmark.OLA.Models.Assets.Enums;
namespace Landmark.OLA.Models.Assets
{
public class RealEstate : RealEstateBase
{
public Address RealEstateAddress { get; set; }
[Required]
public RealEstateType? Type { get; set; }
public RealEstate(Guid? realEstateId = null)
: base(realEstateBaseId: realEstateId)
{
}
}
}
@@ -0,0 +1,48 @@
using System.ComponentModel.DataAnnotations;
using Landmark.OLA.Models.Assets.Enums;
namespace Landmark.OLA.Models.Assets
{
public class RealEstateBase : OlaModel
{
//Slightly arbitrary values that should be safe
[Range(0, 1000000000)]
public decimal InitialEstimatedValue { get; set; }
[Required]
public PropertyUse? Use { get; set; }
public bool? HasSpa { get; set; }
public bool? HasPool { get; set; }
public bool? HasBasement { get; set; }
public bool? HasCentralAir { get; set; }
public bool? HasGarage { get; set; }
public bool? InFloodZone { get; set; }
public bool? InEquity { get; set; }
public bool? IsPropertyHeldInTrust { get; set; }
public bool IsCollateral { get; set; } = true;
public bool IsTradeIn { get; set; }
public LienPosition LienPosition { get; set; }
[Required]
public bool? CurrentlyListedForSale { get; set; }
[Required]
public bool? CurrentlyBeingRemodeledOrImproved { get; set; }
public RealEstateBase(Guid? realEstateBaseId = null)
{
Id = realEstateBaseId.HasValue ? realEstateBaseId.Value.ToString() : null;
}
}
}
@@ -0,0 +1,123 @@
using System.ComponentModel.DataAnnotations;
using Landmark.OLA.Models.Addresses;
using Landmark.OLA.Models.Assets.Enums;
namespace Landmark.OLA.Models.Assets
{
public class Vehicle : OlaModel
{
//This will either hold an ToString'ed int or a 36-char long GUID
[StringLength(36)]
public string ValuationId { get; private set; }
[Required]
public VehicleValuationType? ValuationType { get; set; }
[Required]
public NewUsed? Condition { get; set; }
public VehicleSeller? Seller { get; set; }
[Required]
public VehicleType? Type { get; set; }
public UsageType? Usage { get; set; }
public bool? HasClearTitle { get; set; }
[Required]
[Range(minimum: 0, maximum: 1000000000)]
public decimal? InitialEstimatedValue { get; set; }
public bool? IsForBusinessUse { get; set; }
public bool? IsOwnerOperator { get; set; }
[Required]
//Slightly arbitrary values that should be safe
[Range(1900, 3000)]
public int? Year { get; set; }
//Slightly arbitrary values that should be safe
[Range(0, 1000000000)]
public int? Mileage { get; set; }
[Required]
[StringLength(100)]
public string Make { get; set; }
[Required]
[StringLength(100)]
public string Model { get; set; }
[StringLength(20)]
public string Color { get; set; }
[StringLength(400)]
public string Body { get; set; }
[StringLength(100)]
public string Series { get; set; }
[StringLength(100)]
public string Style { get; set; }
[StringLength(400)]
public string Trim { get; set; }
[StringLength(60)]
public string VIN { get; set; }
[StringLength(8)]
public string LicensePlateNumber { get; set; }
public string StateTitled { get; set; }
[StringLength(20)]
public string CountyTitled { get; set; }
[StringLength(120)]
public string MunicipalityType { get; set; }
[StringLength(120)]
public string MunicipalityWhereKept { get; set; }
public string Lien { get; set; }
[StringLength(120)]
public string DealerName { get; set; }
[StringLength(180)]
public string DealerPhone { get; set; }
public Address BoatAddress { get; set; }
[Range(0, 1000000000000000)]
public decimal? BoatLength { get; set; }
[Range(1900, 3000)]
public int? TrailerYear { get; set; }
[StringLength(60)]
public string TrailerMake { get; set; }
public string TrailerType { get; set; }
[Range(1900, 3000)]
public int? MotorYear { get; set; }
[StringLength(60)]
public string MotorMake { get; set; }
[StringLength(200)]
public string MotorModel { get; set; }
public int? MotorType { get; set; }
public Vehicle(Guid? valuationId = null, Guid? vehicleId = null, Guid? sellerId = null)
{
ValuationId = valuationId.HasValue ? valuationId.ToString() : Guid.NewGuid().ToString();
Id = vehicleId.HasValue ? vehicleId.ToString() : null;
}
}
}