Trendsic Platform Service

<back to all web services

FactFinderRequest

Requires Authentication
Requires any of the roles:Agent, Administrator, Agent, Administrator
The following routes are available for this service:
POST,PUT,OPTIONS/v1/FactFinder
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';

class Contact implements IConvertible
{
    int? ContactId;
    int? ContactType;
    String? FirstName;
    String? LastName;
    String? Name;
    String? Role;
    String? Title;
    String? EmailWork;
    String? EmailPersonal;
    String? District;
    int? DistrictID;
    String? School;
    int? SchoolID;
    String? State;
    String? StateName;
    int? StateID;
    int? CountyID;
    String? County;
    String? Phone;
    String? Department;
    String? Flow;
    DateTime? LastContact;
    bool? DoNotContact;
    bool? Active;
    int? AgentId;
    String? PhoneAlt;
    int? PeraContactId;
    String? RoomNumber;
    int? SourceTypeId;
    String? SourceTypeDesc;
    String? SourceNote;
    int? ContactStatusId;
    String? ContactStatusDesc;
    String? SSN;
    DateTime? DateOfBirth;
    bool? Deleted;
    bool? IsShared;
    String? address_line1;
    String? address_city;
    String? address_state;
    String? address_zip;
    String? DeletedBy;
    DateTime? DeletedDateTimeUtc;
    bool? HasNBC;
    bool? HasFactFinderSheet;
    String? MiddleInitial;
    String? Tags;
    DateTime? DateCreated;
    String? PhoneLabel;
    String? AltPhoneLabel;
    String? Carriers;
    String? ContactImage;
    String? CompanyAffiliation;
    String? AdditionalInformation;
    bool? HasGiftCard;
    int? ContactCategory;
    int? WritingAgentId;
    String? WritingAgentName;
    String? MaritalStatus;
    double? TotalDebtAmount;
    int? NumberOfDebtAccounts;
    int? FactFinderCodeId;
    String? BusinessName;
    String? DBA;
    String? ContactGUID;
    DateTime? ProjectEndDate;
    int? Rate;
    int? JobID;
    String? JobName;
    int? JobCount;
    bool? Locked;
    int? LockedByAgentId;
    DateTime? LockedTimestamp;
    String? Initials;
    String? ContactCategoryName;
    bool? SMSOptIn;

    Contact({this.ContactId,this.ContactType,this.FirstName,this.LastName,this.Name,this.Role,this.Title,this.EmailWork,this.EmailPersonal,this.District,this.DistrictID,this.School,this.SchoolID,this.State,this.StateName,this.StateID,this.CountyID,this.County,this.Phone,this.Department,this.Flow,this.LastContact,this.DoNotContact,this.Active,this.AgentId,this.PhoneAlt,this.PeraContactId,this.RoomNumber,this.SourceTypeId,this.SourceTypeDesc,this.SourceNote,this.ContactStatusId,this.ContactStatusDesc,this.SSN,this.DateOfBirth,this.Deleted,this.IsShared,this.address_line1,this.address_city,this.address_state,this.address_zip,this.DeletedBy,this.DeletedDateTimeUtc,this.HasNBC,this.HasFactFinderSheet,this.MiddleInitial,this.Tags,this.DateCreated,this.PhoneLabel,this.AltPhoneLabel,this.Carriers,this.ContactImage,this.CompanyAffiliation,this.AdditionalInformation,this.HasGiftCard,this.ContactCategory,this.WritingAgentId,this.WritingAgentName,this.MaritalStatus,this.TotalDebtAmount,this.NumberOfDebtAccounts,this.FactFinderCodeId,this.BusinessName,this.DBA,this.ContactGUID,this.ProjectEndDate,this.Rate,this.JobID,this.JobName,this.JobCount,this.Locked,this.LockedByAgentId,this.LockedTimestamp,this.Initials,this.ContactCategoryName,this.SMSOptIn});
    Contact.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ContactId = json['ContactId'];
        ContactType = json['ContactType'];
        FirstName = json['FirstName'];
        LastName = json['LastName'];
        Name = json['Name'];
        Role = json['Role'];
        Title = json['Title'];
        EmailWork = json['EmailWork'];
        EmailPersonal = json['EmailPersonal'];
        District = json['District'];
        DistrictID = json['DistrictID'];
        School = json['School'];
        SchoolID = json['SchoolID'];
        State = json['State'];
        StateName = json['StateName'];
        StateID = json['StateID'];
        CountyID = json['CountyID'];
        County = json['County'];
        Phone = json['Phone'];
        Department = json['Department'];
        Flow = json['Flow'];
        LastContact = JsonConverters.fromJson(json['LastContact'],'DateTime',context!);
        DoNotContact = json['DoNotContact'];
        Active = json['Active'];
        AgentId = json['AgentId'];
        PhoneAlt = json['PhoneAlt'];
        PeraContactId = json['PeraContactId'];
        RoomNumber = json['RoomNumber'];
        SourceTypeId = json['SourceTypeId'];
        SourceTypeDesc = json['SourceTypeDesc'];
        SourceNote = json['SourceNote'];
        ContactStatusId = json['ContactStatusId'];
        ContactStatusDesc = json['ContactStatusDesc'];
        SSN = json['SSN'];
        DateOfBirth = JsonConverters.fromJson(json['DateOfBirth'],'DateTime',context!);
        Deleted = json['Deleted'];
        IsShared = json['IsShared'];
        address_line1 = json['address_line1'];
        address_city = json['address_city'];
        address_state = json['address_state'];
        address_zip = json['address_zip'];
        DeletedBy = json['DeletedBy'];
        DeletedDateTimeUtc = JsonConverters.fromJson(json['DeletedDateTimeUtc'],'DateTime',context!);
        HasNBC = json['HasNBC'];
        HasFactFinderSheet = json['HasFactFinderSheet'];
        MiddleInitial = json['MiddleInitial'];
        Tags = json['Tags'];
        DateCreated = JsonConverters.fromJson(json['DateCreated'],'DateTime',context!);
        PhoneLabel = json['PhoneLabel'];
        AltPhoneLabel = json['AltPhoneLabel'];
        Carriers = json['Carriers'];
        ContactImage = json['ContactImage'];
        CompanyAffiliation = json['CompanyAffiliation'];
        AdditionalInformation = json['AdditionalInformation'];
        HasGiftCard = json['HasGiftCard'];
        ContactCategory = json['ContactCategory'];
        WritingAgentId = json['WritingAgentId'];
        WritingAgentName = json['WritingAgentName'];
        MaritalStatus = json['MaritalStatus'];
        TotalDebtAmount = JsonConverters.toDouble(json['TotalDebtAmount']);
        NumberOfDebtAccounts = json['NumberOfDebtAccounts'];
        FactFinderCodeId = json['FactFinderCodeId'];
        BusinessName = json['BusinessName'];
        DBA = json['DBA'];
        ContactGUID = json['ContactGUID'];
        ProjectEndDate = JsonConverters.fromJson(json['ProjectEndDate'],'DateTime',context!);
        Rate = json['Rate'];
        JobID = json['JobID'];
        JobName = json['JobName'];
        JobCount = json['JobCount'];
        Locked = json['Locked'];
        LockedByAgentId = json['LockedByAgentId'];
        LockedTimestamp = JsonConverters.fromJson(json['LockedTimestamp'],'DateTime',context!);
        Initials = json['Initials'];
        ContactCategoryName = json['ContactCategoryName'];
        SMSOptIn = json['SMSOptIn'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ContactId': ContactId,
        'ContactType': ContactType,
        'FirstName': FirstName,
        'LastName': LastName,
        'Name': Name,
        'Role': Role,
        'Title': Title,
        'EmailWork': EmailWork,
        'EmailPersonal': EmailPersonal,
        'District': District,
        'DistrictID': DistrictID,
        'School': School,
        'SchoolID': SchoolID,
        'State': State,
        'StateName': StateName,
        'StateID': StateID,
        'CountyID': CountyID,
        'County': County,
        'Phone': Phone,
        'Department': Department,
        'Flow': Flow,
        'LastContact': JsonConverters.toJson(LastContact,'DateTime',context!),
        'DoNotContact': DoNotContact,
        'Active': Active,
        'AgentId': AgentId,
        'PhoneAlt': PhoneAlt,
        'PeraContactId': PeraContactId,
        'RoomNumber': RoomNumber,
        'SourceTypeId': SourceTypeId,
        'SourceTypeDesc': SourceTypeDesc,
        'SourceNote': SourceNote,
        'ContactStatusId': ContactStatusId,
        'ContactStatusDesc': ContactStatusDesc,
        'SSN': SSN,
        'DateOfBirth': JsonConverters.toJson(DateOfBirth,'DateTime',context!),
        'Deleted': Deleted,
        'IsShared': IsShared,
        'address_line1': address_line1,
        'address_city': address_city,
        'address_state': address_state,
        'address_zip': address_zip,
        'DeletedBy': DeletedBy,
        'DeletedDateTimeUtc': JsonConverters.toJson(DeletedDateTimeUtc,'DateTime',context!),
        'HasNBC': HasNBC,
        'HasFactFinderSheet': HasFactFinderSheet,
        'MiddleInitial': MiddleInitial,
        'Tags': Tags,
        'DateCreated': JsonConverters.toJson(DateCreated,'DateTime',context!),
        'PhoneLabel': PhoneLabel,
        'AltPhoneLabel': AltPhoneLabel,
        'Carriers': Carriers,
        'ContactImage': ContactImage,
        'CompanyAffiliation': CompanyAffiliation,
        'AdditionalInformation': AdditionalInformation,
        'HasGiftCard': HasGiftCard,
        'ContactCategory': ContactCategory,
        'WritingAgentId': WritingAgentId,
        'WritingAgentName': WritingAgentName,
        'MaritalStatus': MaritalStatus,
        'TotalDebtAmount': TotalDebtAmount,
        'NumberOfDebtAccounts': NumberOfDebtAccounts,
        'FactFinderCodeId': FactFinderCodeId,
        'BusinessName': BusinessName,
        'DBA': DBA,
        'ContactGUID': ContactGUID,
        'ProjectEndDate': JsonConverters.toJson(ProjectEndDate,'DateTime',context!),
        'Rate': Rate,
        'JobID': JobID,
        'JobName': JobName,
        'JobCount': JobCount,
        'Locked': Locked,
        'LockedByAgentId': LockedByAgentId,
        'LockedTimestamp': JsonConverters.toJson(LockedTimestamp,'DateTime',context!),
        'Initials': Initials,
        'ContactCategoryName': ContactCategoryName,
        'SMSOptIn': SMSOptIn
    };

    getTypeName() => "Contact";
    TypeContext? context = _ctx;
}

class FactFinderSheet implements IConvertible
{
    int? FactFinderSheetId;
    int? ContactId;
    String? EmploymentYears;
    String? PastOccupations;
    double? ClientGrossMthlyIncome;
    double? ClientNetMthlyIncome;
    double? HouseholdGrossMthlyIncome;
    double? HouseholdNetMthlyIncome;
    double? EstimatedExpenses;
    double? DiscretionaryIncome;
    double? DesiredRetirementIncome;
    String? RetirementGoals;
    double? EmergencyFundMthlyContrib;
    double? EmergencyFundBalance;
    bool? EmergencyFundComplete;
    String? WorkStatus;
    double? UnusedSickDays;
    double? UnusedSickHours;
    double? ContractBaseServPerYrDays;
    double? ContractBaseServPerYrHours;
    double? DaysPerWeek;
    double? HoursPerWeek;
    double? MonthsPerYear;
    int? NumPreTaxChecksPerYr;
    double? YearsWithOtherDistricts;
    bool? PrimaryLifeInsurance;
    String? PLICarrier;
    double? PLIFaceAmount;
    DateTime? PLIIssueDate;
    double? PLIPremium;
    String? PLIType;
    String? PLITypeOf;
    double? PLICashValue;
    bool? SpouseLifeInsurance;
    String? SLICarrier;
    double? SLIFaceAmount;
    DateTime? SLIIssueDate;
    double? SLIPremium;
    String? SLIType;
    String? SLITypeOf;
    double? SLICashValue;
    bool? PrimaryLTCInsurance;
    double? PLTCPremium;
    bool? PrimaryDisabilityInsurance;
    double? PDIPremium;
    bool? SpouseLTCInsurance;
    double? SLTCPremium;
    bool? SpouseDisabilityInsurance;
    double? SDIPremium;
    bool? HasRetirementSavings;
    bool? HasPriorEmploymentRetirementSavings;
    bool? HasDistributionPlan;

    FactFinderSheet({this.FactFinderSheetId,this.ContactId,this.EmploymentYears,this.PastOccupations,this.ClientGrossMthlyIncome,this.ClientNetMthlyIncome,this.HouseholdGrossMthlyIncome,this.HouseholdNetMthlyIncome,this.EstimatedExpenses,this.DiscretionaryIncome,this.DesiredRetirementIncome,this.RetirementGoals,this.EmergencyFundMthlyContrib,this.EmergencyFundBalance,this.EmergencyFundComplete,this.WorkStatus,this.UnusedSickDays,this.UnusedSickHours,this.ContractBaseServPerYrDays,this.ContractBaseServPerYrHours,this.DaysPerWeek,this.HoursPerWeek,this.MonthsPerYear,this.NumPreTaxChecksPerYr,this.YearsWithOtherDistricts,this.PrimaryLifeInsurance,this.PLICarrier,this.PLIFaceAmount,this.PLIIssueDate,this.PLIPremium,this.PLIType,this.PLITypeOf,this.PLICashValue,this.SpouseLifeInsurance,this.SLICarrier,this.SLIFaceAmount,this.SLIIssueDate,this.SLIPremium,this.SLIType,this.SLITypeOf,this.SLICashValue,this.PrimaryLTCInsurance,this.PLTCPremium,this.PrimaryDisabilityInsurance,this.PDIPremium,this.SpouseLTCInsurance,this.SLTCPremium,this.SpouseDisabilityInsurance,this.SDIPremium,this.HasRetirementSavings,this.HasPriorEmploymentRetirementSavings,this.HasDistributionPlan});
    FactFinderSheet.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        FactFinderSheetId = json['FactFinderSheetId'];
        ContactId = json['ContactId'];
        EmploymentYears = json['EmploymentYears'];
        PastOccupations = json['PastOccupations'];
        ClientGrossMthlyIncome = JsonConverters.toDouble(json['ClientGrossMthlyIncome']);
        ClientNetMthlyIncome = JsonConverters.toDouble(json['ClientNetMthlyIncome']);
        HouseholdGrossMthlyIncome = JsonConverters.toDouble(json['HouseholdGrossMthlyIncome']);
        HouseholdNetMthlyIncome = JsonConverters.toDouble(json['HouseholdNetMthlyIncome']);
        EstimatedExpenses = JsonConverters.toDouble(json['EstimatedExpenses']);
        DiscretionaryIncome = JsonConverters.toDouble(json['DiscretionaryIncome']);
        DesiredRetirementIncome = JsonConverters.toDouble(json['DesiredRetirementIncome']);
        RetirementGoals = json['RetirementGoals'];
        EmergencyFundMthlyContrib = JsonConverters.toDouble(json['EmergencyFundMthlyContrib']);
        EmergencyFundBalance = JsonConverters.toDouble(json['EmergencyFundBalance']);
        EmergencyFundComplete = json['EmergencyFundComplete'];
        WorkStatus = json['WorkStatus'];
        UnusedSickDays = JsonConverters.toDouble(json['UnusedSickDays']);
        UnusedSickHours = JsonConverters.toDouble(json['UnusedSickHours']);
        ContractBaseServPerYrDays = JsonConverters.toDouble(json['ContractBaseServPerYrDays']);
        ContractBaseServPerYrHours = JsonConverters.toDouble(json['ContractBaseServPerYrHours']);
        DaysPerWeek = JsonConverters.toDouble(json['DaysPerWeek']);
        HoursPerWeek = JsonConverters.toDouble(json['HoursPerWeek']);
        MonthsPerYear = JsonConverters.toDouble(json['MonthsPerYear']);
        NumPreTaxChecksPerYr = json['NumPreTaxChecksPerYr'];
        YearsWithOtherDistricts = JsonConverters.toDouble(json['YearsWithOtherDistricts']);
        PrimaryLifeInsurance = json['PrimaryLifeInsurance'];
        PLICarrier = json['PLICarrier'];
        PLIFaceAmount = JsonConverters.toDouble(json['PLIFaceAmount']);
        PLIIssueDate = JsonConverters.fromJson(json['PLIIssueDate'],'DateTime',context!);
        PLIPremium = JsonConverters.toDouble(json['PLIPremium']);
        PLIType = json['PLIType'];
        PLITypeOf = json['PLITypeOf'];
        PLICashValue = JsonConverters.toDouble(json['PLICashValue']);
        SpouseLifeInsurance = json['SpouseLifeInsurance'];
        SLICarrier = json['SLICarrier'];
        SLIFaceAmount = JsonConverters.toDouble(json['SLIFaceAmount']);
        SLIIssueDate = JsonConverters.fromJson(json['SLIIssueDate'],'DateTime',context!);
        SLIPremium = JsonConverters.toDouble(json['SLIPremium']);
        SLIType = json['SLIType'];
        SLITypeOf = json['SLITypeOf'];
        SLICashValue = JsonConverters.toDouble(json['SLICashValue']);
        PrimaryLTCInsurance = json['PrimaryLTCInsurance'];
        PLTCPremium = JsonConverters.toDouble(json['PLTCPremium']);
        PrimaryDisabilityInsurance = json['PrimaryDisabilityInsurance'];
        PDIPremium = JsonConverters.toDouble(json['PDIPremium']);
        SpouseLTCInsurance = json['SpouseLTCInsurance'];
        SLTCPremium = JsonConverters.toDouble(json['SLTCPremium']);
        SpouseDisabilityInsurance = json['SpouseDisabilityInsurance'];
        SDIPremium = JsonConverters.toDouble(json['SDIPremium']);
        HasRetirementSavings = json['HasRetirementSavings'];
        HasPriorEmploymentRetirementSavings = json['HasPriorEmploymentRetirementSavings'];
        HasDistributionPlan = json['HasDistributionPlan'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'FactFinderSheetId': FactFinderSheetId,
        'ContactId': ContactId,
        'EmploymentYears': EmploymentYears,
        'PastOccupations': PastOccupations,
        'ClientGrossMthlyIncome': ClientGrossMthlyIncome,
        'ClientNetMthlyIncome': ClientNetMthlyIncome,
        'HouseholdGrossMthlyIncome': HouseholdGrossMthlyIncome,
        'HouseholdNetMthlyIncome': HouseholdNetMthlyIncome,
        'EstimatedExpenses': EstimatedExpenses,
        'DiscretionaryIncome': DiscretionaryIncome,
        'DesiredRetirementIncome': DesiredRetirementIncome,
        'RetirementGoals': RetirementGoals,
        'EmergencyFundMthlyContrib': EmergencyFundMthlyContrib,
        'EmergencyFundBalance': EmergencyFundBalance,
        'EmergencyFundComplete': EmergencyFundComplete,
        'WorkStatus': WorkStatus,
        'UnusedSickDays': UnusedSickDays,
        'UnusedSickHours': UnusedSickHours,
        'ContractBaseServPerYrDays': ContractBaseServPerYrDays,
        'ContractBaseServPerYrHours': ContractBaseServPerYrHours,
        'DaysPerWeek': DaysPerWeek,
        'HoursPerWeek': HoursPerWeek,
        'MonthsPerYear': MonthsPerYear,
        'NumPreTaxChecksPerYr': NumPreTaxChecksPerYr,
        'YearsWithOtherDistricts': YearsWithOtherDistricts,
        'PrimaryLifeInsurance': PrimaryLifeInsurance,
        'PLICarrier': PLICarrier,
        'PLIFaceAmount': PLIFaceAmount,
        'PLIIssueDate': JsonConverters.toJson(PLIIssueDate,'DateTime',context!),
        'PLIPremium': PLIPremium,
        'PLIType': PLIType,
        'PLITypeOf': PLITypeOf,
        'PLICashValue': PLICashValue,
        'SpouseLifeInsurance': SpouseLifeInsurance,
        'SLICarrier': SLICarrier,
        'SLIFaceAmount': SLIFaceAmount,
        'SLIIssueDate': JsonConverters.toJson(SLIIssueDate,'DateTime',context!),
        'SLIPremium': SLIPremium,
        'SLIType': SLIType,
        'SLITypeOf': SLITypeOf,
        'SLICashValue': SLICashValue,
        'PrimaryLTCInsurance': PrimaryLTCInsurance,
        'PLTCPremium': PLTCPremium,
        'PrimaryDisabilityInsurance': PrimaryDisabilityInsurance,
        'PDIPremium': PDIPremium,
        'SpouseLTCInsurance': SpouseLTCInsurance,
        'SLTCPremium': SLTCPremium,
        'SpouseDisabilityInsurance': SpouseDisabilityInsurance,
        'SDIPremium': SDIPremium,
        'HasRetirementSavings': HasRetirementSavings,
        'HasPriorEmploymentRetirementSavings': HasPriorEmploymentRetirementSavings,
        'HasDistributionPlan': HasDistributionPlan
    };

    getTypeName() => "FactFinderSheet";
    TypeContext? context = _ctx;
}

class ContactSpouse implements IConvertible
{
    int? ContactSpouseId;
    int? ContactId;
    String? Name;
    DateTime? DOB;
    String? Cell;
    String? Employer;
    double? Years;
    String? Position;
    String? Email;
    String? PastOccupations;

    ContactSpouse({this.ContactSpouseId,this.ContactId,this.Name,this.DOB,this.Cell,this.Employer,this.Years,this.Position,this.Email,this.PastOccupations});
    ContactSpouse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ContactSpouseId = json['ContactSpouseId'];
        ContactId = json['ContactId'];
        Name = json['Name'];
        DOB = JsonConverters.fromJson(json['DOB'],'DateTime',context!);
        Cell = json['Cell'];
        Employer = json['Employer'];
        Years = JsonConverters.toDouble(json['Years']);
        Position = json['Position'];
        Email = json['Email'];
        PastOccupations = json['PastOccupations'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ContactSpouseId': ContactSpouseId,
        'ContactId': ContactId,
        'Name': Name,
        'DOB': JsonConverters.toJson(DOB,'DateTime',context!),
        'Cell': Cell,
        'Employer': Employer,
        'Years': Years,
        'Position': Position,
        'Email': Email,
        'PastOccupations': PastOccupations
    };

    getTypeName() => "ContactSpouse";
    TypeContext? context = _ctx;
}

class ContactChild implements IConvertible
{
    int? ContactChildId;
    int? ContactId;
    String? Name;
    DateTime? DOB;
    String? Fund;
    double? Contribution;
    double? Balance;

    ContactChild({this.ContactChildId,this.ContactId,this.Name,this.DOB,this.Fund,this.Contribution,this.Balance});
    ContactChild.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ContactChildId = json['ContactChildId'];
        ContactId = json['ContactId'];
        Name = json['Name'];
        DOB = JsonConverters.fromJson(json['DOB'],'DateTime',context!);
        Fund = json['Fund'];
        Contribution = JsonConverters.toDouble(json['Contribution']);
        Balance = JsonConverters.toDouble(json['Balance']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ContactChildId': ContactChildId,
        'ContactId': ContactId,
        'Name': Name,
        'DOB': JsonConverters.toJson(DOB,'DateTime',context!),
        'Fund': Fund,
        'Contribution': Contribution,
        'Balance': Balance
    };

    getTypeName() => "ContactChild";
    TypeContext? context = _ctx;
}

class ContactRetirementIncome implements IConvertible
{
    int? ContactRetirementIncomeId;
    int? ContactId;
    String? AccountOwner;
    String? AccountType;
    String? Carrier;
    double? TotalValue;
    double? SurrValue;
    DateTime? DateOfIssue;
    double? Fees;
    String? PolicyNum;
    double? Contrib;
    String? EmpNotes;
    String? TaxCode;
    double? SurrCharge;
    bool? ThirdPrtyPprwrkOK;
    bool? AddlFormsReqd;
    bool? OriginalFormsReqd;
    bool? SignatureGuarReqd;
    bool? FaxAccepted;
    String? FaxNumber;
    String? MailingAddr;
    String? MailingCity;
    String? MailingState;
    String? MailingZip;
    bool? HasOutstandingLoans;

    ContactRetirementIncome({this.ContactRetirementIncomeId,this.ContactId,this.AccountOwner,this.AccountType,this.Carrier,this.TotalValue,this.SurrValue,this.DateOfIssue,this.Fees,this.PolicyNum,this.Contrib,this.EmpNotes,this.TaxCode,this.SurrCharge,this.ThirdPrtyPprwrkOK,this.AddlFormsReqd,this.OriginalFormsReqd,this.SignatureGuarReqd,this.FaxAccepted,this.FaxNumber,this.MailingAddr,this.MailingCity,this.MailingState,this.MailingZip,this.HasOutstandingLoans});
    ContactRetirementIncome.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ContactRetirementIncomeId = json['ContactRetirementIncomeId'];
        ContactId = json['ContactId'];
        AccountOwner = json['AccountOwner'];
        AccountType = json['AccountType'];
        Carrier = json['Carrier'];
        TotalValue = JsonConverters.toDouble(json['TotalValue']);
        SurrValue = JsonConverters.toDouble(json['SurrValue']);
        DateOfIssue = JsonConverters.fromJson(json['DateOfIssue'],'DateTime',context!);
        Fees = JsonConverters.toDouble(json['Fees']);
        PolicyNum = json['PolicyNum'];
        Contrib = JsonConverters.toDouble(json['Contrib']);
        EmpNotes = json['EmpNotes'];
        TaxCode = json['TaxCode'];
        SurrCharge = JsonConverters.toDouble(json['SurrCharge']);
        ThirdPrtyPprwrkOK = json['ThirdPrtyPprwrkOK'];
        AddlFormsReqd = json['AddlFormsReqd'];
        OriginalFormsReqd = json['OriginalFormsReqd'];
        SignatureGuarReqd = json['SignatureGuarReqd'];
        FaxAccepted = json['FaxAccepted'];
        FaxNumber = json['FaxNumber'];
        MailingAddr = json['MailingAddr'];
        MailingCity = json['MailingCity'];
        MailingState = json['MailingState'];
        MailingZip = json['MailingZip'];
        HasOutstandingLoans = json['HasOutstandingLoans'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ContactRetirementIncomeId': ContactRetirementIncomeId,
        'ContactId': ContactId,
        'AccountOwner': AccountOwner,
        'AccountType': AccountType,
        'Carrier': Carrier,
        'TotalValue': TotalValue,
        'SurrValue': SurrValue,
        'DateOfIssue': JsonConverters.toJson(DateOfIssue,'DateTime',context!),
        'Fees': Fees,
        'PolicyNum': PolicyNum,
        'Contrib': Contrib,
        'EmpNotes': EmpNotes,
        'TaxCode': TaxCode,
        'SurrCharge': SurrCharge,
        'ThirdPrtyPprwrkOK': ThirdPrtyPprwrkOK,
        'AddlFormsReqd': AddlFormsReqd,
        'OriginalFormsReqd': OriginalFormsReqd,
        'SignatureGuarReqd': SignatureGuarReqd,
        'FaxAccepted': FaxAccepted,
        'FaxNumber': FaxNumber,
        'MailingAddr': MailingAddr,
        'MailingCity': MailingCity,
        'MailingState': MailingState,
        'MailingZip': MailingZip,
        'HasOutstandingLoans': HasOutstandingLoans
    };

    getTypeName() => "ContactRetirementIncome";
    TypeContext? context = _ctx;
}

class ContactExpense implements IConvertible
{
    int? ContactExpenseId;
    int? ContactId;
    String? ExpenseType;
    String? Description;
    double? Balance;
    double? InterestRate;
    double? MinimumPayment;
    double? MonthlyPayment;

    ContactExpense({this.ContactExpenseId,this.ContactId,this.ExpenseType,this.Description,this.Balance,this.InterestRate,this.MinimumPayment,this.MonthlyPayment});
    ContactExpense.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ContactExpenseId = json['ContactExpenseId'];
        ContactId = json['ContactId'];
        ExpenseType = json['ExpenseType'];
        Description = json['Description'];
        Balance = JsonConverters.toDouble(json['Balance']);
        InterestRate = JsonConverters.toDouble(json['InterestRate']);
        MinimumPayment = JsonConverters.toDouble(json['MinimumPayment']);
        MonthlyPayment = JsonConverters.toDouble(json['MonthlyPayment']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ContactExpenseId': ContactExpenseId,
        'ContactId': ContactId,
        'ExpenseType': ExpenseType,
        'Description': Description,
        'Balance': Balance,
        'InterestRate': InterestRate,
        'MinimumPayment': MinimumPayment,
        'MonthlyPayment': MonthlyPayment
    };

    getTypeName() => "ContactExpense";
    TypeContext? context = _ctx;
}

class ContactClientReferral implements IConvertible
{
    int? ContactClientReferralId;
    int? ContactId;
    String? Name;
    String? Campus;
    String? Room;
    String? Phone;

    ContactClientReferral({this.ContactClientReferralId,this.ContactId,this.Name,this.Campus,this.Room,this.Phone});
    ContactClientReferral.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ContactClientReferralId = json['ContactClientReferralId'];
        ContactId = json['ContactId'];
        Name = json['Name'];
        Campus = json['Campus'];
        Room = json['Room'];
        Phone = json['Phone'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ContactClientReferralId': ContactClientReferralId,
        'ContactId': ContactId,
        'Name': Name,
        'Campus': Campus,
        'Room': Room,
        'Phone': Phone
    };

    getTypeName() => "ContactClientReferral";
    TypeContext? context = _ctx;
}

class ContactLTAInfo implements IConvertible
{
    int? ContactLTAInfoId;
    int? ContactId;
    String? PlanType;
    String? Company;
    double? Contribution;
    double? Balance;

    ContactLTAInfo({this.ContactLTAInfoId,this.ContactId,this.PlanType,this.Company,this.Contribution,this.Balance});
    ContactLTAInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ContactLTAInfoId = json['ContactLTAInfoId'];
        ContactId = json['ContactId'];
        PlanType = json['PlanType'];
        Company = json['Company'];
        Contribution = JsonConverters.toDouble(json['Contribution']);
        Balance = JsonConverters.toDouble(json['Balance']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ContactLTAInfoId': ContactLTAInfoId,
        'ContactId': ContactId,
        'PlanType': PlanType,
        'Company': Company,
        'Contribution': Contribution,
        'Balance': Balance
    };

    getTypeName() => "ContactLTAInfo";
    TypeContext? context = _ctx;
}

class ContactPension implements IConvertible
{
    int? ContactPensionId;
    int? ContactId;
    String? PensionSystem;
    DateTime? PensionStartDate;
    double? ServiceCredit;
    DateTime? ServiceCreditAsOfDate;
    DateTime? DesiredRetirementDate;
    int? DesiredRetirementAge;
    bool? SpousalBenefitDesired;
    double? FormulaPercent;
    double? FormulaAt;
    double? DefinedBenefitBalance;
    double? DefinedBenefitSpouseBalance;

    ContactPension({this.ContactPensionId,this.ContactId,this.PensionSystem,this.PensionStartDate,this.ServiceCredit,this.ServiceCreditAsOfDate,this.DesiredRetirementDate,this.DesiredRetirementAge,this.SpousalBenefitDesired,this.FormulaPercent,this.FormulaAt,this.DefinedBenefitBalance,this.DefinedBenefitSpouseBalance});
    ContactPension.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ContactPensionId = json['ContactPensionId'];
        ContactId = json['ContactId'];
        PensionSystem = json['PensionSystem'];
        PensionStartDate = JsonConverters.fromJson(json['PensionStartDate'],'DateTime',context!);
        ServiceCredit = JsonConverters.toDouble(json['ServiceCredit']);
        ServiceCreditAsOfDate = JsonConverters.fromJson(json['ServiceCreditAsOfDate'],'DateTime',context!);
        DesiredRetirementDate = JsonConverters.fromJson(json['DesiredRetirementDate'],'DateTime',context!);
        DesiredRetirementAge = json['DesiredRetirementAge'];
        SpousalBenefitDesired = json['SpousalBenefitDesired'];
        FormulaPercent = JsonConverters.toDouble(json['FormulaPercent']);
        FormulaAt = JsonConverters.toDouble(json['FormulaAt']);
        DefinedBenefitBalance = JsonConverters.toDouble(json['DefinedBenefitBalance']);
        DefinedBenefitSpouseBalance = JsonConverters.toDouble(json['DefinedBenefitSpouseBalance']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ContactPensionId': ContactPensionId,
        'ContactId': ContactId,
        'PensionSystem': PensionSystem,
        'PensionStartDate': JsonConverters.toJson(PensionStartDate,'DateTime',context!),
        'ServiceCredit': ServiceCredit,
        'ServiceCreditAsOfDate': JsonConverters.toJson(ServiceCreditAsOfDate,'DateTime',context!),
        'DesiredRetirementDate': JsonConverters.toJson(DesiredRetirementDate,'DateTime',context!),
        'DesiredRetirementAge': DesiredRetirementAge,
        'SpousalBenefitDesired': SpousalBenefitDesired,
        'FormulaPercent': FormulaPercent,
        'FormulaAt': FormulaAt,
        'DefinedBenefitBalance': DefinedBenefitBalance,
        'DefinedBenefitSpouseBalance': DefinedBenefitSpouseBalance
    };

    getTypeName() => "ContactPension";
    TypeContext? context = _ctx;
}

class FactFinderSheetExtended implements IConvertible
{
    Contact? Contact;
    FactFinderSheet? FactFinderSheet;
    ContactSpouse? Spouse;
    List<ContactChild>? Children = [];
    List<ContactRetirementIncome>? IncomeSources = [];
    String? AdditionalNotes;
    List<ContactExpense>? Expenses = [];
    List<ContactClientReferral>? Referrals = [];
    List<ContactLTAInfo>? LTAInfo = [];
    List<ContactPension>? Pensions = [];

    FactFinderSheetExtended({this.Contact,this.FactFinderSheet,this.Spouse,this.Children,this.IncomeSources,this.AdditionalNotes,this.Expenses,this.Referrals,this.LTAInfo,this.Pensions});
    FactFinderSheetExtended.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Contact = JsonConverters.fromJson(json['Contact'],'Contact',context!);
        FactFinderSheet = JsonConverters.fromJson(json['FactFinderSheet'],'FactFinderSheet',context!);
        Spouse = JsonConverters.fromJson(json['Spouse'],'ContactSpouse',context!);
        Children = JsonConverters.fromJson(json['Children'],'List<ContactChild>',context!);
        IncomeSources = JsonConverters.fromJson(json['IncomeSources'],'List<ContactRetirementIncome>',context!);
        AdditionalNotes = json['AdditionalNotes'];
        Expenses = JsonConverters.fromJson(json['Expenses'],'List<ContactExpense>',context!);
        Referrals = JsonConverters.fromJson(json['Referrals'],'List<ContactClientReferral>',context!);
        LTAInfo = JsonConverters.fromJson(json['LTAInfo'],'List<ContactLTAInfo>',context!);
        Pensions = JsonConverters.fromJson(json['Pensions'],'List<ContactPension>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Contact': JsonConverters.toJson(Contact,'Contact',context!),
        'FactFinderSheet': JsonConverters.toJson(FactFinderSheet,'FactFinderSheet',context!),
        'Spouse': JsonConverters.toJson(Spouse,'ContactSpouse',context!),
        'Children': JsonConverters.toJson(Children,'List<ContactChild>',context!),
        'IncomeSources': JsonConverters.toJson(IncomeSources,'List<ContactRetirementIncome>',context!),
        'AdditionalNotes': AdditionalNotes,
        'Expenses': JsonConverters.toJson(Expenses,'List<ContactExpense>',context!),
        'Referrals': JsonConverters.toJson(Referrals,'List<ContactClientReferral>',context!),
        'LTAInfo': JsonConverters.toJson(LTAInfo,'List<ContactLTAInfo>',context!),
        'Pensions': JsonConverters.toJson(Pensions,'List<ContactPension>',context!)
    };

    getTypeName() => "FactFinderSheetExtended";
    TypeContext? context = _ctx;
}

class FactFinderRequest implements IConvertible
{
    FactFinderSheetExtended? FactFinderSheet;
    bool? DataEntry;

    FactFinderRequest({this.FactFinderSheet,this.DataEntry});
    FactFinderRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        FactFinderSheet = JsonConverters.fromJson(json['FactFinderSheet'],'FactFinderSheetExtended',context!);
        DataEntry = json['DataEntry'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'FactFinderSheet': JsonConverters.toJson(FactFinderSheet,'FactFinderSheetExtended',context!),
        'DataEntry': DataEntry
    };

    getTypeName() => "FactFinderRequest";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
    'Contact': TypeInfo(TypeOf.Class, create:() => Contact()),
    'FactFinderSheet': TypeInfo(TypeOf.Class, create:() => FactFinderSheet()),
    'ContactSpouse': TypeInfo(TypeOf.Class, create:() => ContactSpouse()),
    'ContactChild': TypeInfo(TypeOf.Class, create:() => ContactChild()),
    'ContactRetirementIncome': TypeInfo(TypeOf.Class, create:() => ContactRetirementIncome()),
    'ContactExpense': TypeInfo(TypeOf.Class, create:() => ContactExpense()),
    'ContactClientReferral': TypeInfo(TypeOf.Class, create:() => ContactClientReferral()),
    'ContactLTAInfo': TypeInfo(TypeOf.Class, create:() => ContactLTAInfo()),
    'ContactPension': TypeInfo(TypeOf.Class, create:() => ContactPension()),
    'FactFinderSheetExtended': TypeInfo(TypeOf.Class, create:() => FactFinderSheetExtended()),
    'List<ContactChild>': TypeInfo(TypeOf.Class, create:() => <ContactChild>[]),
    'List<ContactRetirementIncome>': TypeInfo(TypeOf.Class, create:() => <ContactRetirementIncome>[]),
    'List<ContactExpense>': TypeInfo(TypeOf.Class, create:() => <ContactExpense>[]),
    'List<ContactClientReferral>': TypeInfo(TypeOf.Class, create:() => <ContactClientReferral>[]),
    'List<ContactLTAInfo>': TypeInfo(TypeOf.Class, create:() => <ContactLTAInfo>[]),
    'List<ContactPension>': TypeInfo(TypeOf.Class, create:() => <ContactPension>[]),
    'FactFinderRequest': TypeInfo(TypeOf.Class, create:() => FactFinderRequest()),
});

Dart FactFinderRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other

HTTP + OTHER

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /v1/FactFinder HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"FactFinderSheet":{"Contact":{"ContactId":0,"ContactType":0,"FirstName":"String","LastName":"String","Name":"String","Role":"String","Title":"String","EmailWork":"String","EmailPersonal":"String","District":"String","DistrictID":0,"School":"String","SchoolID":0,"State":"String","StateName":"String","StateID":0,"CountyID":0,"County":"String","Phone":"String","Department":"String","Flow":"String","LastContact":"0001-01-01T00:00:00.0000000","DoNotContact":false,"Active":false,"AgentId":0,"PhoneAlt":"String","PeraContactId":0,"RoomNumber":"String","SourceTypeId":0,"SourceTypeDesc":"String","SourceNote":"String","ContactStatusId":0,"ContactStatusDesc":"String","SSN":"String","DateOfBirth":"0001-01-01T00:00:00.0000000","Deleted":false,"IsShared":false,"address_line1":"String","address_city":"String","address_state":"String","address_zip":"String","DeletedBy":"String","DeletedDateTimeUtc":"0001-01-01T00:00:00.0000000","HasNBC":false,"HasFactFinderSheet":false,"MiddleInitial":"String","Tags":"String","DateCreated":"0001-01-01T00:00:00.0000000","PhoneLabel":"String","AltPhoneLabel":"String","Carriers":"String","ContactImage":"String","CompanyAffiliation":"String","AdditionalInformation":"String","HasGiftCard":false,"ContactCategory":0,"WritingAgentId":0,"WritingAgentName":"String","MaritalStatus":"String","TotalDebtAmount":0,"NumberOfDebtAccounts":0,"FactFinderCodeId":0,"BusinessName":"String","DBA":"String","ContactGUID":"00000000000000000000000000000000","ProjectEndDate":"0001-01-01T00:00:00.0000000","Rate":0,"JobID":0,"JobName":"String","JobCount":0,"Locked":false,"LockedByAgentId":0,"LockedTimestamp":"0001-01-01T00:00:00.0000000","Initials":"String","ContactCategoryName":"String","SMSOptIn":false},"FactFinderSheet":{"FactFinderSheetId":0,"ContactId":0,"EmploymentYears":"String","PastOccupations":"String","ClientGrossMthlyIncome":0,"ClientNetMthlyIncome":0,"HouseholdGrossMthlyIncome":0,"HouseholdNetMthlyIncome":0,"EstimatedExpenses":0,"DiscretionaryIncome":0,"DesiredRetirementIncome":0,"RetirementGoals":"String","EmergencyFundMthlyContrib":0,"EmergencyFundBalance":0,"EmergencyFundComplete":false,"WorkStatus":"String","UnusedSickDays":0,"UnusedSickHours":0,"ContractBaseServPerYrDays":0,"ContractBaseServPerYrHours":0,"DaysPerWeek":0,"HoursPerWeek":0,"MonthsPerYear":0,"NumPreTaxChecksPerYr":0,"YearsWithOtherDistricts":0,"PrimaryLifeInsurance":false,"PLICarrier":"String","PLIFaceAmount":0,"PLIIssueDate":"0001-01-01T00:00:00.0000000","PLIPremium":0,"PLIType":"String","PLITypeOf":"String","PLICashValue":0,"SpouseLifeInsurance":false,"SLICarrier":"String","SLIFaceAmount":0,"SLIIssueDate":"0001-01-01T00:00:00.0000000","SLIPremium":0,"SLIType":"String","SLITypeOf":"String","SLICashValue":0,"PrimaryLTCInsurance":false,"PLTCPremium":0,"PrimaryDisabilityInsurance":false,"PDIPremium":0,"SpouseLTCInsurance":false,"SLTCPremium":0,"SpouseDisabilityInsurance":false,"SDIPremium":0,"HasRetirementSavings":false,"HasPriorEmploymentRetirementSavings":false,"HasDistributionPlan":false},"Spouse":{"ContactSpouseId":0,"ContactId":0,"Name":"String","DOB":"0001-01-01T00:00:00.0000000","Cell":"String","Employer":"String","Years":0,"Position":"String","Email":"String","PastOccupations":"String"},"Children":[{"ContactChildId":0,"ContactId":0,"Name":"String","DOB":"0001-01-01T00:00:00.0000000","Fund":"String","Contribution":0,"Balance":0}],"IncomeSources":[{"ContactRetirementIncomeId":0,"ContactId":0,"AccountOwner":"String","AccountType":"String","Carrier":"String","TotalValue":0,"SurrValue":0,"DateOfIssue":"0001-01-01T00:00:00.0000000","Fees":0,"PolicyNum":"String","Contrib":0,"EmpNotes":"String","TaxCode":"String","SurrCharge":0,"ThirdPrtyPprwrkOK":false,"AddlFormsReqd":false,"OriginalFormsReqd":false,"SignatureGuarReqd":false,"FaxAccepted":false,"FaxNumber":"String","MailingAddr":"String","MailingCity":"String","MailingState":"String","MailingZip":"String","HasOutstandingLoans":false}],"AdditionalNotes":"String","Expenses":[{"ContactExpenseId":0,"ContactId":0,"ExpenseType":"String","Description":"String","Balance":0,"InterestRate":0,"MinimumPayment":0,"MonthlyPayment":0}],"Referrals":[{"ContactClientReferralId":0,"ContactId":0,"Name":"String","Campus":"String","Room":"String","Phone":"String"}],"LTAInfo":[{"ContactLTAInfoId":0,"ContactId":0,"PlanType":"String","Company":"String","Contribution":0,"Balance":0}],"Pensions":[{"ContactPensionId":0,"ContactId":0,"PensionSystem":"String","PensionStartDate":"0001-01-01T00:00:00.0000000","ServiceCredit":0,"ServiceCreditAsOfDate":"0001-01-01T00:00:00.0000000","DesiredRetirementDate":"0001-01-01T00:00:00.0000000","DesiredRetirementAge":0,"SpousalBenefitDesired":false,"FormulaPercent":0,"FormulaAt":0,"DefinedBenefitBalance":0,"DefinedBenefitSpouseBalance":0}]},"DataEntry":false}