@mj-biz-apps/sales-server 6.16.0 → 6.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -676,7 +676,7 @@ __decorate([
676
676
  ], mjBizAppsSalesDealContactRole_.prototype, "Deal", void 0);
677
677
  __decorate([
678
678
  Field({ nullable: true }),
679
- MaxLength(704),
679
+ MaxLength(753),
680
680
  __metadata("design:type", String)
681
681
  ], mjBizAppsSalesDealContactRole_.prototype, "SalesContact", void 0);
682
682
  __decorate([
@@ -689,7 +689,7 @@ __decorate([
689
689
  __metadata("design:type", Array)
690
690
  ], mjBizAppsSalesDealContactRole_.prototype, "ReadableFields___", void 0);
691
691
  mjBizAppsSalesDealContactRole_ = __decorate([
692
- ObjectType({ description: `The buying committee on the CUSTOMER side: which contact plays which role on this deal. A junction rather than a field on SalesContact because one contact holds different roles on different deals.` })
692
+ ObjectType({ description: "The buying committee on the CUSTOMER side: which contact plays which role on this deal. A junction rather than a field on SalesContact because one contact holds different roles on different deals." })
693
693
  ], mjBizAppsSalesDealContactRole_);
694
694
  export { mjBizAppsSalesDealContactRole_ };
695
695
  //****************************************************************************
@@ -931,7 +931,7 @@ __decorate([
931
931
  __metadata("design:type", Date)
932
932
  ], mjBizAppsSalesDealPaymentSchedule_.prototype, "PaymentDate", void 0);
933
933
  __decorate([
934
- Field(() => Float, { nullable: true, description: `The instalment amount as agreed. Unconstrained in sign: a refund or credit instalment is legitimately negative, and this table records what was agreed rather than asserting a shape for it.` }),
934
+ Field(() => Float, { nullable: true, description: "The instalment amount as agreed. Unconstrained in sign: a refund or credit instalment is legitimately negative, and this table records what was agreed rather than asserting a shape for it." }),
935
935
  __metadata("design:type", Number)
936
936
  ], mjBizAppsSalesDealPaymentSchedule_.prototype, "Amount", void 0);
937
937
  __decorate([
@@ -940,7 +940,7 @@ __decorate([
940
940
  __metadata("design:type", String)
941
941
  ], mjBizAppsSalesDealPaymentSchedule_.prototype, "Description", void 0);
942
942
  __decorate([
943
- Field(() => Int, { nullable: true, description: `Explicit ordering, because instalment order is not always date order — "on execution" and "on signature of SOW 2" can share a date or have none yet. Server-maintained and re-sequenced on every save, mirroring how accounting re-sequences JournalEntryLine.LineNumber.` }),
943
+ Field(() => Int, { nullable: true, description: "Explicit ordering, because instalment order is not always date order — \"on execution\" and \"on signature of SOW 2\" can share a date or have none yet. Server-maintained and re-sequenced on every save, mirroring how accounting re-sequences JournalEntryLine.LineNumber." }),
944
944
  __metadata("design:type", Number)
945
945
  ], mjBizAppsSalesDealPaymentSchedule_.prototype, "DisplayOrder", void 0);
946
946
  __decorate([
@@ -961,7 +961,7 @@ __decorate([
961
961
  __metadata("design:type", Array)
962
962
  ], mjBizAppsSalesDealPaymentSchedule_.prototype, "ReadableFields___", void 0);
963
963
  mjBizAppsSalesDealPaymentSchedule_ = __decorate([
964
- ObjectType({ description: `The EXCEPTION payment schedule for a deal. THE ABSENCE OF ROWS IS THE COMMON CASE and that is the design: the standard term is 100% payable on execution, so a deal on standard terms carries no rows here and rows exist only where something else was negotiated. Storing the default on every deal would let a later change to "default" silently rewrite history, and would turn "did this deal negotiate payment terms?" into arithmetic instead of a row count. This app does NOT check that the schedule sums to the deal amount — that is computing money, and the authoritative total lives in orders.` })
964
+ ObjectType({ description: "The EXCEPTION payment schedule for a deal. THE ABSENCE OF ROWS IS THE COMMON CASE and that is the design: the standard term is 100% payable on execution, so a deal on standard terms carries no rows here and rows exist only where something else was negotiated. Storing the default on every deal would let a later change to \"default\" silently rewrite history, and would turn \"did this deal negotiate payment terms?\" into arithmetic instead of a row count. This app does NOT check that the schedule sums to the deal amount — that is computing money, and the authoritative total lives in orders." })
965
965
  ], mjBizAppsSalesDealPaymentSchedule_);
966
966
  export { mjBizAppsSalesDealPaymentSchedule_ };
967
967
  //****************************************************************************
@@ -1208,11 +1208,11 @@ __decorate([
1208
1208
  __metadata("design:type", String)
1209
1209
  ], mjBizAppsSalesDealRole_.prototype, "Description", void 0);
1210
1210
  __decorate([
1211
- Field(() => Boolean, { nullable: true, description: `Identifies the role that DEFINES ownership. Exactly one team member per deal may hold a role with this flag, enforced server-side, and Deal.OwnerEmployeeID is the denormalized stamp of whoever does.` }),
1211
+ Field(() => Boolean, { nullable: true, description: "Identifies the role that DEFINES ownership. Exactly one team member per deal may hold a role with this flag, enforced server-side, and Deal.OwnerEmployeeID is the denormalized stamp of whoever does." }),
1212
1212
  __metadata("design:type", Boolean)
1213
1213
  ], mjBizAppsSalesDealRole_.prototype, "IsOwnerRole", void 0);
1214
1214
  __decorate([
1215
- Field(() => Boolean, { nullable: true, description: `Whether two people may hold this role on one deal. Two sales engineers, yes; two owners, no. Enforced server-side FROM THIS FLAG, never hardcoded against a role name.` }),
1215
+ Field(() => Boolean, { nullable: true, description: "Whether two people may hold this role on one deal. Two sales engineers, yes; two owners, no. Enforced server-side FROM THIS FLAG, never hardcoded against a role name." }),
1216
1216
  __metadata("design:type", Boolean)
1217
1217
  ], mjBizAppsSalesDealRole_.prototype, "AllowsMultiplePerDeal", void 0);
1218
1218
  __decorate([
@@ -1244,7 +1244,7 @@ __decorate([
1244
1244
  __metadata("design:type", Array)
1245
1245
  ], mjBizAppsSalesDealRole_.prototype, "ReadableFields___", void 0);
1246
1246
  mjBizAppsSalesDealRole_ = __decorate([
1247
- ObjectType({ description: `The roles internal people hold on a deal (Owner/AE, Sales Engineer, SDR, Executive Sponsor, Partner Manager, CS Lead).` })
1247
+ ObjectType({ description: "The roles internal people hold on a deal (Owner/AE, Sales Engineer, SDR, Executive Sponsor, Partner Manager, CS Lead)." })
1248
1248
  ], mjBizAppsSalesDealRole_);
1249
1249
  export { mjBizAppsSalesDealRole_ };
1250
1250
  //****************************************************************************
@@ -1755,7 +1755,7 @@ __decorate([
1755
1755
  __metadata("design:type", String)
1756
1756
  ], mjBizAppsSalesDealStageEvent_.prototype, "ChangedByUserID", void 0);
1757
1757
  __decorate([
1758
- Field({ nullable: true, description: `The ORIGINAL time of the transition, not the row's insert time. A distinct column rather than a reliance on __mj_CreatedAt because the HubSpot import must preserve historical timestamps — a 2023 transition has to land as 2023.` }),
1758
+ Field({ nullable: true, description: "The ORIGINAL time of the transition, not the row's insert time. A distinct column rather than a reliance on __mj_CreatedAt because the HubSpot import must preserve historical timestamps — a 2023 transition has to land as 2023." }),
1759
1759
  __metadata("design:type", Date)
1760
1760
  ], mjBizAppsSalesDealStageEvent_.prototype, "ChangedAt", void 0);
1761
1761
  __decorate([
@@ -1763,11 +1763,11 @@ __decorate([
1763
1763
  __metadata("design:type", Number)
1764
1764
  ], mjBizAppsSalesDealStageEvent_.prototype, "DaysInPreviousStage", void 0);
1765
1765
  __decorate([
1766
- Field(() => Float, { nullable: true, description: `Deal.Amount as it stood at this transition. Point-in-time truth: "what did we think the forecast was on the 1st" is unanswerable from Deal alone once amounts change.` }),
1766
+ Field(() => Float, { nullable: true, description: "Deal.Amount as it stood at this transition. Point-in-time truth: \"what did we think the forecast was on the 1st\" is unanswerable from Deal alone once amounts change." }),
1767
1767
  __metadata("design:type", Number)
1768
1768
  ], mjBizAppsSalesDealStageEvent_.prototype, "AmountAtTransition", void 0);
1769
1769
  __decorate([
1770
- Field(() => Boolean, { nullable: true, description: `Whether AmountAtTransition came from the orders engine (1) or was stated by a person (0). NULL means the transition was recorded before this was tracked — it is not backfillable, because Deal.AmountIsComputed describes the deal as it is now, not as it was at the close.` }),
1770
+ Field(() => Boolean, { nullable: true, description: "Whether AmountAtTransition came from the orders engine (1) or was stated by a person (0). NULL means the transition was recorded before this was tracked — it is not backfillable, because Deal.AmountIsComputed describes the deal as it is now, not as it was at the close." }),
1771
1771
  __metadata("design:type", Boolean)
1772
1772
  ], mjBizAppsSalesDealStageEvent_.prototype, "AmountAtTransitionIsComputed", void 0);
1773
1773
  __decorate([
@@ -1821,7 +1821,7 @@ __decorate([
1821
1821
  __metadata("design:type", Array)
1822
1822
  ], mjBizAppsSalesDealStageEvent_.prototype, "ReadableFields___", void 0);
1823
1823
  mjBizAppsSalesDealStageEvent_ = __decorate([
1824
- ObjectType({ description: `APPEND-ONLY transition log, never edited. The source for stage conversion, velocity, dwell time, slippage and skipped-stage analysis. Stamping the amount and probability AT each transition is what lets historical roll-ups reconstruct correctly after a deal\'s amount changes.` })
1824
+ ObjectType({ description: "APPEND-ONLY transition log, never edited. The source for stage conversion, velocity, dwell time, slippage and skipped-stage analysis. Stamping the amount and probability AT each transition is what lets historical roll-ups reconstruct correctly after a deal's amount changes." })
1825
1825
  ], mjBizAppsSalesDealStageEvent_);
1826
1826
  export { mjBizAppsSalesDealStageEvent_ };
1827
1827
  //****************************************************************************
@@ -1890,75 +1890,6 @@ CreatemjBizAppsSalesDealStageEventInput = __decorate([
1890
1890
  ], CreatemjBizAppsSalesDealStageEventInput);
1891
1891
  export { CreatemjBizAppsSalesDealStageEventInput };
1892
1892
  //****************************************************************************
1893
- // INPUT TYPE for MJ_BizApps_Sales: Deal Stage Events
1894
- //****************************************************************************
1895
- let UpdatemjBizAppsSalesDealStageEventInput = class UpdatemjBizAppsSalesDealStageEventInput {
1896
- };
1897
- __decorate([
1898
- Field(),
1899
- __metadata("design:type", String)
1900
- ], UpdatemjBizAppsSalesDealStageEventInput.prototype, "ID", void 0);
1901
- __decorate([
1902
- Field({ nullable: true }),
1903
- __metadata("design:type", String)
1904
- ], UpdatemjBizAppsSalesDealStageEventInput.prototype, "DealID", void 0);
1905
- __decorate([
1906
- Field({ nullable: true }),
1907
- __metadata("design:type", String)
1908
- ], UpdatemjBizAppsSalesDealStageEventInput.prototype, "FromStageID", void 0);
1909
- __decorate([
1910
- Field({ nullable: true }),
1911
- __metadata("design:type", String)
1912
- ], UpdatemjBizAppsSalesDealStageEventInput.prototype, "ToStageID", void 0);
1913
- __decorate([
1914
- Field({ nullable: true }),
1915
- __metadata("design:type", String)
1916
- ], UpdatemjBizAppsSalesDealStageEventInput.prototype, "FromDealStatusTypeID", void 0);
1917
- __decorate([
1918
- Field({ nullable: true }),
1919
- __metadata("design:type", String)
1920
- ], UpdatemjBizAppsSalesDealStageEventInput.prototype, "ToDealStatusTypeID", void 0);
1921
- __decorate([
1922
- Field({ nullable: true }),
1923
- __metadata("design:type", String)
1924
- ], UpdatemjBizAppsSalesDealStageEventInput.prototype, "ChangedByUserID", void 0);
1925
- __decorate([
1926
- Field({ nullable: true }),
1927
- __metadata("design:type", Date)
1928
- ], UpdatemjBizAppsSalesDealStageEventInput.prototype, "ChangedAt", void 0);
1929
- __decorate([
1930
- Field(() => Int, { nullable: true }),
1931
- __metadata("design:type", Number)
1932
- ], UpdatemjBizAppsSalesDealStageEventInput.prototype, "DaysInPreviousStage", void 0);
1933
- __decorate([
1934
- Field(() => Float, { nullable: true }),
1935
- __metadata("design:type", Number)
1936
- ], UpdatemjBizAppsSalesDealStageEventInput.prototype, "AmountAtTransition", void 0);
1937
- __decorate([
1938
- Field(() => Boolean, { nullable: true }),
1939
- __metadata("design:type", Boolean)
1940
- ], UpdatemjBizAppsSalesDealStageEventInput.prototype, "AmountAtTransitionIsComputed", void 0);
1941
- __decorate([
1942
- Field(() => Float, { nullable: true }),
1943
- __metadata("design:type", Number)
1944
- ], UpdatemjBizAppsSalesDealStageEventInput.prototype, "ProbabilityAtTransition", void 0);
1945
- __decorate([
1946
- Field({ nullable: true }),
1947
- __metadata("design:type", String)
1948
- ], UpdatemjBizAppsSalesDealStageEventInput.prototype, "Notes", void 0);
1949
- __decorate([
1950
- Field(() => [KeyValuePairInput], { nullable: true }),
1951
- __metadata("design:type", Array)
1952
- ], UpdatemjBizAppsSalesDealStageEventInput.prototype, "OldValues___", void 0);
1953
- __decorate([
1954
- Field(() => RestoreContextInput, { nullable: true }),
1955
- __metadata("design:type", RestoreContextInput)
1956
- ], UpdatemjBizAppsSalesDealStageEventInput.prototype, "RestoreContext___", void 0);
1957
- UpdatemjBizAppsSalesDealStageEventInput = __decorate([
1958
- InputType()
1959
- ], UpdatemjBizAppsSalesDealStageEventInput);
1960
- export { UpdatemjBizAppsSalesDealStageEventInput };
1961
- //****************************************************************************
1962
1893
  // RESOLVER for MJ_BizApps_Sales: Deal Stage Events
1963
1894
  //****************************************************************************
1964
1895
  let RunmjBizAppsSalesDealStageEventViewResult = class RunmjBizAppsSalesDealStageEventViewResult {
@@ -2021,15 +1952,6 @@ let mjBizAppsSalesDealStageEventResolver = class mjBizAppsSalesDealStageEventRes
2021
1952
  const provider = GetReadWriteProvider(providers);
2022
1953
  return this.CreateRecord('MJ_BizApps_Sales: Deal Stage Events', input, provider, userPayload, pubSub);
2023
1954
  }
2024
- async UpdatemjBizAppsSalesDealStageEvent(input, { providers, userPayload }, pubSub) {
2025
- const provider = GetReadWriteProvider(providers);
2026
- return this.UpdateRecord('MJ_BizApps_Sales: Deal Stage Events', input, provider, userPayload, pubSub);
2027
- }
2028
- async DeletemjBizAppsSalesDealStageEvent(ID, options, { providers, userPayload }, pubSub) {
2029
- const provider = GetReadWriteProvider(providers);
2030
- const key = new CompositeKey([{ FieldName: 'ID', Value: ID }]);
2031
- return this.DeleteRecord('MJ_BizApps_Sales: Deal Stage Events', key, options, provider, userPayload, pubSub);
2032
- }
2033
1955
  };
2034
1956
  __decorate([
2035
1957
  Query(() => RunmjBizAppsSalesDealStageEventViewResult),
@@ -2076,25 +1998,6 @@ __decorate([
2076
1998
  __metadata("design:paramtypes", [CreatemjBizAppsSalesDealStageEventInput, Object, PubSubEngine]),
2077
1999
  __metadata("design:returntype", Promise)
2078
2000
  ], mjBizAppsSalesDealStageEventResolver.prototype, "CreatemjBizAppsSalesDealStageEvent", null);
2079
- __decorate([
2080
- Mutation(() => mjBizAppsSalesDealStageEvent_),
2081
- __param(0, Arg('input', () => UpdatemjBizAppsSalesDealStageEventInput)),
2082
- __param(1, Ctx()),
2083
- __param(2, PubSub()),
2084
- __metadata("design:type", Function),
2085
- __metadata("design:paramtypes", [UpdatemjBizAppsSalesDealStageEventInput, Object, PubSubEngine]),
2086
- __metadata("design:returntype", Promise)
2087
- ], mjBizAppsSalesDealStageEventResolver.prototype, "UpdatemjBizAppsSalesDealStageEvent", null);
2088
- __decorate([
2089
- Mutation(() => mjBizAppsSalesDealStageEvent_),
2090
- __param(0, Arg('ID', () => String)),
2091
- __param(1, Arg('options___', () => DeleteOptionsInput)),
2092
- __param(2, Ctx()),
2093
- __param(3, PubSub()),
2094
- __metadata("design:type", Function),
2095
- __metadata("design:paramtypes", [String, DeleteOptionsInput, Object, PubSubEngine]),
2096
- __metadata("design:returntype", Promise)
2097
- ], mjBizAppsSalesDealStageEventResolver.prototype, "DeletemjBizAppsSalesDealStageEvent", null);
2098
2001
  mjBizAppsSalesDealStageEventResolver = __decorate([
2099
2002
  Resolver(mjBizAppsSalesDealStageEvent_)
2100
2003
  ], mjBizAppsSalesDealStageEventResolver);
@@ -2110,7 +2013,7 @@ __decorate([
2110
2013
  __metadata("design:type", String)
2111
2014
  ], mjBizAppsSalesDealStatusType_.prototype, "ID", void 0);
2112
2015
  __decorate([
2113
- Field({ nullable: true, description: `Stable identifier the engine and metadata seeds key on. Renaming Name is cosmetic; renaming Code changes an identifier.` }),
2016
+ Field({ nullable: true, description: "Stable identifier the engine and metadata seeds key on. Renaming Name is cosmetic; renaming Code changes an identifier." }),
2114
2017
  MaxLength(40),
2115
2018
  __metadata("design:type", String)
2116
2019
  ], mjBizAppsSalesDealStatusType_.prototype, "Code", void 0);
@@ -2140,7 +2043,7 @@ __decorate([
2140
2043
  __metadata("design:type", Boolean)
2141
2044
  ], mjBizAppsSalesDealStatusType_.prototype, "IsLost", void 0);
2142
2045
  __decorate([
2143
- Field(() => Boolean, { nullable: true, description: `When 1, a deal in this status FREEZES: the header (except Description and NextStep), its lines and its team members become immutable, enforced in DealEntityServer.Save() — not in the UI, so an Action, an agent or a raw BaseEntity.Save() hits the same wall. Mirrors journal-entry immutability in accounting, and for the same reason: the deal is now the provenance of a contract and an order.` }),
2046
+ Field(() => Boolean, { nullable: true, description: "When 1, a deal in this status FREEZES: the header (except Description and NextStep), its lines and its team members become immutable, enforced in DealEntityServer.Save() — not in the UI, so an Action, an agent or a raw BaseEntity.Save() hits the same wall. Mirrors journal-entry immutability in accounting, and for the same reason: the deal is now the provenance of a contract and an order." }),
2144
2047
  __metadata("design:type", Boolean)
2145
2048
  ], mjBizAppsSalesDealStatusType_.prototype, "LocksDeal", void 0);
2146
2049
  __decorate([
@@ -2164,7 +2067,7 @@ __decorate([
2164
2067
  __metadata("design:type", Array)
2165
2068
  ], mjBizAppsSalesDealStatusType_.prototype, "ReadableFields___", void 0);
2166
2069
  mjBizAppsSalesDealStatusType_ = __decorate([
2167
- ObjectType({ description: `The OUTCOME vocabulary for deals (Open, Won, Lost, Abandoned, On Hold ...). Behaviour comes from the flags on this row, NEVER from the Name — Sales.CloseDeal is named for the outcome type rather than a hardcoded "won" precisely so it can resolve everything from IsWon/IsLost/LocksDeal. Renaming a status is a metadata change with no code impact.` })
2070
+ ObjectType({ description: "The OUTCOME vocabulary for deals (Open, Won, Lost, Abandoned, On Hold ...). Behaviour comes from the flags on this row, NEVER from the Name — Sales.CloseDeal is named for the outcome type rather than a hardcoded \"won\" precisely so it can resolve everything from IsWon/IsLost/LocksDeal. Renaming a status is a metadata change with no code impact." })
2168
2071
  ], mjBizAppsSalesDealStatusType_);
2169
2072
  export { mjBizAppsSalesDealStatusType_ };
2170
2073
  //****************************************************************************
@@ -2442,12 +2345,12 @@ __decorate([
2442
2345
  __metadata("design:type", String)
2443
2346
  ], mjBizAppsSalesDealTeamMember_.prototype, "DealID", void 0);
2444
2347
  __decorate([
2445
- Field({ nullable: true, description: `The internal rep, as an MJ Employee. Exactly one of EmployeeID / PersonID is set. Employee is the common case.` }),
2348
+ Field({ nullable: true, description: "The internal rep, as an MJ Employee. Exactly one of EmployeeID / PersonID is set. Employee is the common case." }),
2446
2349
  MaxLength(36),
2447
2350
  __metadata("design:type", String)
2448
2351
  ], mjBizAppsSalesDealTeamMember_.prototype, "EmployeeID", void 0);
2449
2352
  __decorate([
2450
- Field({ nullable: true, description: `A NON-EMPLOYEE team member — a partner rep or contractor — as a common.Person. Exactly one of EmployeeID / PersonID is set (D-6). Needed because Partner Manager is a seeded DealRole and an Employee row cannot express someone outside the company.` }),
2353
+ Field({ nullable: true, description: "A NON-EMPLOYEE team member — a partner rep or contractor — as a common.Person. Exactly one of EmployeeID / PersonID is set (D-6). Needed because Partner Manager is a seeded DealRole and an Employee row cannot express someone outside the company." }),
2451
2354
  MaxLength(36),
2452
2355
  __metadata("design:type", String)
2453
2356
  ], mjBizAppsSalesDealTeamMember_.prototype, "PersonID", void 0);
@@ -2457,7 +2360,7 @@ __decorate([
2457
2360
  __metadata("design:type", String)
2458
2361
  ], mjBizAppsSalesDealTeamMember_.prototype, "DealRoleID", void 0);
2459
2362
  __decorate([
2460
- Field(() => Float, { nullable: true, description: `This member's share of the deal for by-rep rollups. When any member of a deal has a value set, the app validates that active members sum to 100. Leave NULL to fall back to owner-role attribution.` }),
2363
+ Field(() => Float, { nullable: true, description: "This member's share of the deal for by-rep rollups. When any member of a deal has a value set, the app validates that active members sum to 100. Leave NULL to fall back to owner-role attribution." }),
2461
2364
  __metadata("design:type", Number)
2462
2365
  ], mjBizAppsSalesDealTeamMember_.prototype, "AttributionPct", void 0);
2463
2366
  __decorate([
@@ -2496,7 +2399,7 @@ __decorate([
2496
2399
  ], mjBizAppsSalesDealTeamMember_.prototype, "Employee", void 0);
2497
2400
  __decorate([
2498
2401
  Field({ nullable: true }),
2499
- MaxLength(201),
2402
+ MaxLength(250),
2500
2403
  __metadata("design:type", String)
2501
2404
  ], mjBizAppsSalesDealTeamMember_.prototype, "Person", void 0);
2502
2405
  __decorate([
@@ -2509,7 +2412,7 @@ __decorate([
2509
2412
  __metadata("design:type", Array)
2510
2413
  ], mjBizAppsSalesDealTeamMember_.prototype, "ReadableFields___", void 0);
2511
2414
  mjBizAppsSalesDealTeamMember_ = __decorate([
2512
- ObjectType({ description: `The internal people on a deal and the role each holds — the SINGLE SOURCE OF TRUTH for deal membership, INCLUDING the owner (the member whose DealRole has IsOwnerRole = 1). WATCH THE ATTRIBUTION DOUBLE-COUNT: a deal with an AE, an SE and an SDR has three rows, so summing Deal.Amount across this table triple-counts the deal. Every by-rep rollup must either filter to the owner role or weight by AttributionPct.` })
2415
+ ObjectType({ description: "The internal people on a deal and the role each holds — the SINGLE SOURCE OF TRUTH for deal membership, INCLUDING the owner (the member whose DealRole has IsOwnerRole = 1). WATCH THE ATTRIBUTION DOUBLE-COUNT: a deal with an AE, an SE and an SDR has three rows, so summing Deal.Amount across this table triple-counts the deal. Every by-rep rollup must either filter to the owner role or weight by AttributionPct." })
2513
2416
  ], mjBizAppsSalesDealTeamMember_);
2514
2417
  export { mjBizAppsSalesDealTeamMember_ };
2515
2418
  //****************************************************************************
@@ -3123,26 +3026,26 @@ __decorate([
3123
3026
  __metadata("design:type", String)
3124
3027
  ], mjBizAppsSalesDeal_.prototype, "PrimaryContactID", void 0);
3125
3028
  __decorate([
3126
- Field({ nullable: true, description: `The contact who receives the invoice, which is routinely NOT the person negotiating. NULL means the billing contact IS the primary contact — a real default, not "unknown" — so an AD never types the same name twice and changing the primary contact leaves no stale billing copy.` }),
3029
+ Field({ nullable: true, description: "The contact who receives the invoice, which is routinely NOT the person negotiating. NULL means the billing contact IS the primary contact — a real default, not \"unknown\" — so an AD never types the same name twice and changing the primary contact leaves no stale billing copy." }),
3127
3030
  MaxLength(36),
3128
3031
  __metadata("design:type", String)
3129
3032
  ], mjBizAppsSalesDeal_.prototype, "BillingContactID", void 0);
3130
3033
  __decorate([
3131
- Field({ nullable: true, description: `The SELLING company. Must match Pipeline.CompanyID; enforced by the entity server, since a CHECK cannot reach across the FK to compare them. FK to __mj.Company.` }),
3034
+ Field({ nullable: true, description: "The SELLING company. Must match Pipeline.CompanyID; enforced by the entity server, since a CHECK cannot reach across the FK to compare them. FK to __mj.Company." }),
3132
3035
  MaxLength(36),
3133
3036
  __metadata("design:type", String)
3134
3037
  ], mjBizAppsSalesDeal_.prototype, "CompanyID", void 0);
3135
3038
  __decorate([
3136
- Field({ nullable: true, description: `DENORMALIZED, SERVER-MAINTAINED. The Employee holding the role where DealRole.IsOwnerRole = 1, written by DealEntityServer.Save() whenever team membership changes. DealTeamMember is the source of truth; this exists so "my deals" and per-rep boards need no join. NEVER SET THIS DIRECTLY — it will diverge.` }),
3039
+ Field({ nullable: true, description: "DENORMALIZED, SERVER-MAINTAINED. The Employee holding the role where DealRole.IsOwnerRole = 1, written by DealEntityServer.Save() whenever team membership changes. DealTeamMember is the source of truth; this exists so \"my deals\" and per-rep boards need no join. NEVER SET THIS DIRECTLY — it will diverge." }),
3137
3040
  MaxLength(36),
3138
3041
  __metadata("design:type", String)
3139
3042
  ], mjBizAppsSalesDeal_.prototype, "OwnerEmployeeID", void 0);
3140
3043
  __decorate([
3141
- Field(() => Float, { nullable: true, description: `The deal value. A CACHED ANSWER returned by Orders.PreviewOrder for this deal's line set — NOT computed here. For a simple (header-only) deal it is hand-entered and AmountIsComputed is 0. Never sum the order's lines into this column; sales does no arithmetic.` }),
3044
+ Field(() => Float, { nullable: true, description: "The deal value. A CACHED ANSWER returned by Orders.PreviewOrder for this deal's line set — NOT computed here. For a simple (header-only) deal it is hand-entered and AmountIsComputed is 0. Never sum the order's lines into this column; sales does no arithmetic." }),
3142
3045
  __metadata("design:type", Number)
3143
3046
  ], mjBizAppsSalesDeal_.prototype, "Amount", void 0);
3144
3047
  __decorate([
3145
- Field(() => Boolean, { nullable: true, description: `1 when Amount came from Orders.PreviewOrder; 0 when a human typed it (a simple, header-only deal). Distinguishes a traceable figure from a stated one.` }),
3048
+ Field(() => Boolean, { nullable: true, description: "1 when Amount came from Orders.PreviewOrder; 0 when a human typed it (a simple, header-only deal). Distinguishes a traceable figure from a stated one." }),
3146
3049
  __metadata("design:type", Boolean)
3147
3050
  ], mjBizAppsSalesDeal_.prototype, "AmountIsComputed", void 0);
3148
3051
  __decorate([
@@ -3150,7 +3053,7 @@ __decorate([
3150
3053
  __metadata("design:type", Date)
3151
3054
  ], mjBizAppsSalesDeal_.prototype, "AmountComputedAt", void 0);
3152
3055
  __decorate([
3153
- Field({ nullable: true, description: `Fingerprint of the embedded order's line set Amount was computed from. Compare it against the current lines to detect a STALE amount, so the UI can say the products changed after the amount was calculated, instead of showing a number nobody can trace. Without this column Amount becomes a hand-edited field within a month.` }),
3056
+ Field({ nullable: true, description: "Fingerprint of the embedded order's line set Amount was computed from. Compare it against the current lines to detect a STALE amount, so the UI can say the products changed after the amount was calculated, instead of showing a number nobody can trace. Without this column Amount becomes a hand-edited field within a month." }),
3154
3057
  MaxLength(128),
3155
3058
  __metadata("design:type", String)
3156
3059
  ], mjBizAppsSalesDeal_.prototype, "AmountSourceHash", void 0);
@@ -3172,23 +3075,23 @@ __decorate([
3172
3075
  __metadata("design:type", Number)
3173
3076
  ], mjBizAppsSalesDeal_.prototype, "TermMonths", void 0);
3174
3077
  __decorate([
3175
- Field(() => Int, { nullable: true, description: `Estimated project timeline in WEEKS, from the SOW template. A separate column from TermMonths on purpose: a subscription term is a COMMITMENT that drives renewal dates and escalation, a project estimate is a FORECAST that drives neither. One column plus a unit flag would force every consumer to branch on the unit before using the number.` }),
3078
+ Field(() => Int, { nullable: true, description: "Estimated project timeline in WEEKS, from the SOW template. A separate column from TermMonths on purpose: a subscription term is a COMMITMENT that drives renewal dates and escalation, a project estimate is a FORECAST that drives neither. One column plus a unit flag would force every consumer to branch on the unit before using the number." }),
3176
3079
  __metadata("design:type", Number)
3177
3080
  ], mjBizAppsSalesDeal_.prototype, "EstimatedProjectWeeks", void 0);
3178
3081
  __decorate([
3179
- Field({ nullable: true, description: `The date the agreement was signed. Deliberately NOT constrained against StartDate: work that begins before signature is common and legitimate, so ordering the two would reject real deals.` }),
3082
+ Field({ nullable: true, description: "The date the agreement was signed. Deliberately NOT constrained against StartDate: work that begins before signature is common and legitimate, so ordering the two would reject real deals." }),
3180
3083
  __metadata("design:type", Date)
3181
3084
  ], mjBizAppsSalesDeal_.prototype, "ExecutionDate", void 0);
3182
3085
  __decorate([
3183
- Field({ nullable: true, description: `The date service or the subscription actually begins (order-form / SOW start). May precede ExecutionDate for backdated work — see that column.` }),
3086
+ Field({ nullable: true, description: "The date service or the subscription actually begins (order-form / SOW start). May precede ExecutionDate for backdated work — see that column." }),
3184
3087
  __metadata("design:type", Date)
3185
3088
  ], mjBizAppsSalesDeal_.prototype, "StartDate", void 0);
3186
3089
  __decorate([
3187
- Field({ nullable: true }),
3090
+ Field({ nullable: true, description: "The day the deal is expected to close. Update it as the date moves; the actual close date is set when the deal is closed." }),
3188
3091
  __metadata("design:type", Date)
3189
3092
  ], mjBizAppsSalesDeal_.prototype, "ExpectedCloseDate", void 0);
3190
3093
  __decorate([
3191
- Field({ nullable: true }),
3094
+ Field({ nullable: true, description: "The business day the deal closed on, in its company's time zone. Set by closing the deal and cleared by reopening it; it cannot be edited. For when an open deal is expected to close, use Expected Close Date." }),
3192
3095
  __metadata("design:type", Date)
3193
3096
  ], mjBizAppsSalesDeal_.prototype, "ActualCloseDate", void 0);
3194
3097
  __decorate([
@@ -3220,38 +3123,38 @@ __decorate([
3220
3123
  __metadata("design:type", String)
3221
3124
  ], mjBizAppsSalesDeal_.prototype, "CampaignID", void 0);
3222
3125
  __decorate([
3223
- Field({ nullable: true, description: `SOFT reference (no FK) to a bizapps-contracts Contract. The link points DOWN the dependency graph; there is deliberately no Contract.DealID, because it is ONE contract to MANY deals — the original sale, every renewal, every expansion.` }),
3126
+ Field({ nullable: true, description: "SOFT reference (no FK) to a bizapps-contracts Contract. The link points DOWN the dependency graph; there is deliberately no Contract.DealID, because it is ONE contract to MANY deals — the original sale, every renewal, every expansion." }),
3224
3127
  MaxLength(36),
3225
3128
  __metadata("design:type", String)
3226
3129
  ], mjBizAppsSalesDeal_.prototype, "ContractID", void 0);
3227
3130
  __decorate([
3228
- Field({ nullable: true, description: `SOFT reference (no FK) to the contract this deal RENEWS. What makes the renewal chain navigable from the sales side without contracts knowing anything about it. Required when DealType.RequiresRenewalSource is set.` }),
3131
+ Field({ nullable: true, description: "SOFT reference (no FK) to the contract this deal RENEWS. What makes the renewal chain navigable from the sales side without contracts knowing anything about it. Required when DealType.RequiresRenewalSource is set." }),
3229
3132
  MaxLength(36),
3230
3133
  __metadata("design:type", String)
3231
3134
  ], mjBizAppsSalesDeal_.prototype, "RenewsContractID", void 0);
3232
3135
  __decorate([
3233
- Field(() => Boolean, { nullable: true, description: `Whether the resulting agreement renews automatically at the end of its term.` }),
3136
+ Field(() => Boolean, { nullable: true, description: "Whether the resulting agreement renews automatically at the end of its term." }),
3234
3137
  __metadata("design:type", Boolean)
3235
3138
  ], mjBizAppsSalesDeal_.prototype, "AutoRenew", void 0);
3236
3139
  __decorate([
3237
- Field(() => Float, { nullable: true, description: `An OVERRIDE, and NULL is meaningful: it means "use the standard annual increase", whose default (5%) lives on the contracts ContractType, not here. That is a different fact from "we negotiated a number that happens to equal today's standard", and only the NULL survives a later change to policy. Copying the default in at write time would freeze this year's terms into next year's renewals silently.` }),
3140
+ Field(() => Float, { nullable: true, description: "An OVERRIDE, and NULL is meaningful: it means \"use the standard annual increase\", whose default (5%) lives on the contracts ContractType, not here. That is a different fact from \"we negotiated a number that happens to equal today's standard\", and only the NULL survives a later change to policy. Copying the default in at write time would freeze this year's terms into next year's renewals silently." }),
3238
3141
  __metadata("design:type", Number)
3239
3142
  ], mjBizAppsSalesDeal_.prototype, "AnnualIncreasePctOverride", void 0);
3240
3143
  __decorate([
3241
- Field(() => Int, { nullable: true, description: `An OVERRIDE of the standard cancellation-notice period (default 90 days, owned by the contracts ContractType). NULL means "use the standard" — see AnnualIncreasePctOverride for why that distinction is load-bearing.` }),
3144
+ Field(() => Int, { nullable: true, description: "An OVERRIDE of the standard cancellation-notice period (default 90 days, owned by the contracts ContractType). NULL means \"use the standard\" — see AnnualIncreasePctOverride for why that distinction is load-bearing." }),
3242
3145
  __metadata("design:type", Number)
3243
3146
  ], mjBizAppsSalesDeal_.prototype, "CancellationNoticeDaysOverride", void 0);
3244
3147
  __decorate([
3245
- Field({ nullable: true, description: `PLACEHOLDER LABEL (default ACH), and a string only for as long as nothing branches on it. Payment method becomes vocabulary the moment code cares — ACH and card differ in settlement timing and fees — but ORDERS owns that concept and will expose PaymentType. Pointing at orders' vocabulary later beats standing up a competing copy here and reconciling two. No code may branch on this value.` }),
3148
+ Field({ nullable: true, description: "PLACEHOLDER LABEL (default ACH), and a string only for as long as nothing branches on it. Payment method becomes vocabulary the moment code cares — ACH and card differ in settlement timing and fees — but ORDERS owns that concept and will expose PaymentType. Pointing at orders' vocabulary later beats standing up a competing copy here and reconciling two. No code may branch on this value." }),
3246
3149
  MaxLength(50),
3247
3150
  __metadata("design:type", String)
3248
3151
  ], mjBizAppsSalesDeal_.prototype, "PaymentMethod", void 0);
3249
3152
  __decorate([
3250
- Field(() => Boolean, { nullable: true, description: `Did this deal move off the standard agreement? Asserted by the rep at deal creation, defaulting to no. Copied onto the contract as HasModifications at Closed Won, where it routes finance's review: a true flag means capture each deviation, a false one still means read the document because the rep may have forgotten. NOT derived from ContractVariances — an empty variances field means nothing was written down, which is a different claim from nothing being negotiated.` }),
3153
+ Field(() => Boolean, { nullable: true, description: "Did this deal move off the standard agreement? Asserted by the rep at deal creation, defaulting to no. Copied onto the contract as HasModifications at Closed Won, where it routes finance's review: a true flag means capture each deviation, a false one still means read the document because the rep may have forgotten. NOT derived from ContractVariances — an empty variances field means nothing was written down, which is a different claim from nothing being negotiated." }),
3251
3154
  __metadata("design:type", Boolean)
3252
3155
  ], mjBizAppsSalesDeal_.prototype, "StandardAgreementModified", void 0);
3253
3156
  __decorate([
3254
- Field({ nullable: true, description: `Free-text summary of what this deal negotiated AWAY from standard terms — the red-line list, in the AD's own words. The input to a human legal review; nothing should attempt to parse it.` }),
3157
+ Field({ nullable: true, description: "Free-text summary of what this deal negotiated AWAY from standard terms — the red-line list, in the AD's own words. The input to a human legal review; nothing should attempt to parse it." }),
3255
3158
  __metadata("design:type", String)
3256
3159
  ], mjBizAppsSalesDeal_.prototype, "ContractVariances", void 0);
3257
3160
  __decorate([
@@ -3268,11 +3171,11 @@ __decorate([
3268
3171
  __metadata("design:type", Date)
3269
3172
  ], mjBizAppsSalesDeal_.prototype, "NextStepDate", void 0);
3270
3173
  __decorate([
3271
- Field({ nullable: true }),
3174
+ Field({ nullable: true, description: "The moment the deal was closed. Set by closing the deal and cleared by reopening it; it cannot be edited. For when an open deal is expected to close, use Expected Close Date." }),
3272
3175
  __metadata("design:type", Date)
3273
3176
  ], mjBizAppsSalesDeal_.prototype, "ClosedAt", void 0);
3274
3177
  __decorate([
3275
- Field({ nullable: true }),
3178
+ Field({ nullable: true, description: "The user who closed the deal. Set by closing the deal and cleared by reopening it; it cannot be edited." }),
3276
3179
  MaxLength(36),
3277
3180
  __metadata("design:type", String)
3278
3181
  ], mjBizAppsSalesDeal_.prototype, "ClosedByUserID", void 0);
@@ -3290,16 +3193,16 @@ __decorate([
3290
3193
  __metadata("design:type", Date)
3291
3194
  ], mjBizAppsSalesDeal_.prototype, "_mj__UpdatedAt", void 0);
3292
3195
  __decorate([
3293
- Field(() => Float, { nullable: true, description: `0.0000 to 1.0000 probability that the deal will close as Won.` }),
3196
+ Field(() => Float, { nullable: true, description: "0.0000 to 1.0000 probability that the deal will close as Won." }),
3294
3197
  __metadata("design:type", Number)
3295
3198
  ], mjBizAppsSalesDeal_.prototype, "PredictedWinProbability", void 0);
3296
3199
  __decorate([
3297
- Field({ nullable: true, description: `Categorical priority/risk tier derived from deal win probability: Low, Medium, High, Critical.` }),
3200
+ Field({ nullable: true, description: "Categorical priority/risk tier derived from deal win probability: Low, Medium, High, Critical." }),
3298
3201
  MaxLength(20),
3299
3202
  __metadata("design:type", String)
3300
3203
  ], mjBizAppsSalesDeal_.prototype, "PredictedWinRiskBand", void 0);
3301
3204
  __decorate([
3302
- Field({ nullable: true, description: `Timestamp when the deal was last scored by the predictive deal win propensity model.` }),
3205
+ Field({ nullable: true, description: "Timestamp when the deal was last scored by the predictive deal win propensity model." }),
3303
3206
  __metadata("design:type", Date)
3304
3207
  ], mjBizAppsSalesDeal_.prototype, "PredictedWinScoredAt", void 0);
3305
3208
  __decorate([
@@ -3329,12 +3232,12 @@ __decorate([
3329
3232
  ], mjBizAppsSalesDeal_.prototype, "Account", void 0);
3330
3233
  __decorate([
3331
3234
  Field({ nullable: true }),
3332
- MaxLength(704),
3235
+ MaxLength(753),
3333
3236
  __metadata("design:type", String)
3334
3237
  ], mjBizAppsSalesDeal_.prototype, "PrimaryContact", void 0);
3335
3238
  __decorate([
3336
3239
  Field({ nullable: true }),
3337
- MaxLength(704),
3240
+ MaxLength(753),
3338
3241
  __metadata("design:type", String)
3339
3242
  ], mjBizAppsSalesDeal_.prototype, "BillingContact", void 0);
3340
3243
  __decorate([
@@ -3409,7 +3312,7 @@ __decorate([
3409
3312
  __metadata("design:type", Array)
3410
3313
  ], mjBizAppsSalesDeal_.prototype, "ReadableFields___", void 0);
3411
3314
  mjBizAppsSalesDeal_ = __decorate([
3412
- ObjectType({ description: `A deal (opportunity). Amount is a CACHED answer from Orders.PreviewOrder carrying its own provenance, never a locally computed total — this app performs no pricing arithmetic of any kind. Closing a deal is a transaction that CREATES a contract and/or orders, not a notification that someone should.` })
3315
+ ObjectType({ description: "A deal (opportunity). Amount is a CACHED answer from Orders.PreviewOrder carrying its own provenance, never a locally computed total — this app performs no pricing arithmetic of any kind. Closing a deal is a transaction that CREATES a contract and/or orders, not a notification that someone should." })
3413
3316
  ], mjBizAppsSalesDeal_);
3414
3317
  export { mjBizAppsSalesDeal_ };
3415
3318
  //****************************************************************************
@@ -4024,7 +3927,7 @@ __decorate([
4024
3927
  __metadata("design:type", Array)
4025
3928
  ], mjBizAppsSalesForecastCategoryType_.prototype, "ReadableFields___", void 0);
4026
3929
  mjBizAppsSalesForecastCategoryType_ = __decorate([
4027
- ObjectType({ description: `How a deal rolls into the forecast (Omitted, Pipeline, Best Case, Commit, Closed). The Include* flags are read directly by the forecast measures; a query that compared a category NAME would be exactly the violation the CI grep exists to catch.` })
3930
+ ObjectType({ description: "How a deal rolls into the forecast (Omitted, Pipeline, Best Case, Commit, Closed). The Include* flags are read directly by the forecast measures; a query that compared a category NAME would be exactly the violation the CI grep exists to catch." })
4028
3931
  ], mjBizAppsSalesForecastCategoryType_);
4029
3932
  export { mjBizAppsSalesForecastCategoryType_ };
4030
3933
  //****************************************************************************
@@ -4308,7 +4211,7 @@ __decorate([
4308
4211
  __metadata("design:type", Date)
4309
4212
  ], mjBizAppsSalesForecastSnapshot_.prototype, "CapturedAt", void 0);
4310
4213
  __decorate([
4311
- Field(() => Float, { nullable: true, description: `Total of deals in forecast categories flagged IncludeInCommit as at CapturedAt. Named CommitAmount rather than the plan's Commit because COMMIT is a reserved word in both T-SQL and PostgreSQL, and production is PostgreSQL.` }),
4214
+ Field(() => Float, { nullable: true, description: "Total of deals in forecast categories flagged IncludeInCommit as at CapturedAt. Named CommitAmount rather than the plan's Commit because COMMIT is a reserved word in both T-SQL and PostgreSQL, and production is PostgreSQL." }),
4312
4215
  __metadata("design:type", Number)
4313
4216
  ], mjBizAppsSalesForecastSnapshot_.prototype, "CommitAmount", void 0);
4314
4217
  __decorate([
@@ -4324,7 +4227,7 @@ __decorate([
4324
4227
  __metadata("design:type", Number)
4325
4228
  ], mjBizAppsSalesForecastSnapshot_.prototype, "ClosedAmount", void 0);
4326
4229
  __decorate([
4327
- Field({ nullable: true, description: `The full breakdown behind the four bucket totals, so a snapshot can be interrogated rather than merely displayed.` }),
4230
+ Field({ nullable: true, description: "The full breakdown behind the four bucket totals, so a snapshot can be interrogated rather than merely displayed." }),
4328
4231
  __metadata("design:type", String)
4329
4232
  ], mjBizAppsSalesForecastSnapshot_.prototype, "SnapshotJSON", void 0);
4330
4233
  __decorate([
@@ -4355,7 +4258,7 @@ __decorate([
4355
4258
  __metadata("design:type", Array)
4356
4259
  ], mjBizAppsSalesForecastSnapshot_.prototype, "ReadableFields___", void 0);
4357
4260
  mjBizAppsSalesForecastSnapshot_ = __decorate([
4358
- ObjectType({ description: `A point-in-time capture of the forecast, written by a Scheduled Job. Snapshots matter more than the live number: "what did we think on the first of the month" is the question a forecast review actually asks, and it is unanswerable after the fact without them. The live figure reads Deal; the historical one reads this table.` })
4261
+ ObjectType({ description: "A point-in-time capture of the forecast, written by a Scheduled Job. Snapshots matter more than the live number: \"what did we think on the first of the month\" is the question a forecast review actually asks, and it is unanswerable after the fact without them. The live figure reads Deal; the historical one reads this table." })
4359
4262
  ], mjBizAppsSalesForecastSnapshot_);
4360
4263
  export { mjBizAppsSalesForecastSnapshot_ };
4361
4264
  //****************************************************************************
@@ -4985,7 +4888,7 @@ __decorate([
4985
4888
  __metadata("design:type", Array)
4986
4889
  ], mjBizAppsSalesLifecycleStageType_.prototype, "ReadableFields___", void 0);
4987
4890
  mjBizAppsSalesLifecycleStageType_ = __decorate([
4988
- ObjectType({ description: `Where a Person or Organization sits on the journey from stranger to evangelist. This table is what makes "Lead" a STAGE rather than an entity: a lead is a common.Person carrying a LifecycleStageTypeID, not a second identity table for humans.` })
4891
+ ObjectType({ description: "Where a Person or Organization sits on the journey from stranger to evangelist. This table is what makes \"Lead\" a STAGE rather than an entity: a lead is a common.Person carrying a LifecycleStageTypeID, not a second identity table for humans." })
4989
4892
  ], mjBizAppsSalesLifecycleStageType_);
4990
4893
  export { mjBizAppsSalesLifecycleStageType_ };
4991
4894
  //****************************************************************************
@@ -5261,7 +5164,7 @@ __decorate([
5261
5164
  __metadata("design:type", String)
5262
5165
  ], mjBizAppsSalesLossReason_.prototype, "Category", void 0);
5263
5166
  __decorate([
5264
- Field(() => Boolean, { nullable: true, description: `When 1, Sales.CloseDeal refuses a close against this reason unless Deal.LossNotes is supplied.` }),
5167
+ Field(() => Boolean, { nullable: true, description: "When 1, Sales.CloseDeal refuses a close against this reason unless Deal.LossNotes is supplied." }),
5265
5168
  __metadata("design:type", Boolean)
5266
5169
  ], mjBizAppsSalesLossReason_.prototype, "RequiresNotes", void 0);
5267
5170
  __decorate([
@@ -5289,7 +5192,7 @@ __decorate([
5289
5192
  __metadata("design:type", Array)
5290
5193
  ], mjBizAppsSalesLossReason_.prototype, "ReadableFields___", void 0);
5291
5194
  mjBizAppsSalesLossReason_ = __decorate([
5292
- ObjectType({ description: `Why a deal was lost. Loss reason is this app\'s ONLY mandatory field and the friction is deliberate: loss reasons are the highest-value and most consistently-skipped data in any CRM.` })
5195
+ ObjectType({ description: "Why a deal was lost. Loss reason is this app's ONLY mandatory field and the friction is deliberate: loss reasons are the highest-value and most consistently-skipped data in any CRM." })
5293
5196
  ], mjBizAppsSalesLossReason_);
5294
5197
  export { mjBizAppsSalesLossReason_ };
5295
5198
  //****************************************************************************
@@ -5574,7 +5477,7 @@ __decorate([
5574
5477
  __metadata("design:type", String)
5575
5478
  ], mjBizAppsSalesPipelineStage_.prototype, "ForecastCategoryTypeID", void 0);
5576
5479
  __decorate([
5577
- Field({ nullable: true, description: `The status a deal takes on when it ENTERS this stage. The stage names the vocabulary; the status carries the behaviour flags.` }),
5480
+ Field({ nullable: true, description: "The status a deal takes on when it ENTERS this stage. The stage names the vocabulary; the status carries the behaviour flags." }),
5578
5481
  MaxLength(36),
5579
5482
  __metadata("design:type", String)
5580
5483
  ], mjBizAppsSalesPipelineStage_.prototype, "DealStatusTypeID", void 0);
@@ -5584,7 +5487,7 @@ __decorate([
5584
5487
  __metadata("design:type", String)
5585
5488
  ], mjBizAppsSalesPipelineStage_.prototype, "OrderStatusOnEntry", void 0);
5586
5489
  __decorate([
5587
- Field(() => Int, { nullable: true, description: `Days without activity before the board flags a deal in this stage as rotting.` }),
5490
+ Field(() => Int, { nullable: true, description: "Days without activity before the board flags a deal in this stage as rotting." }),
5588
5491
  __metadata("design:type", Number)
5589
5492
  ], mjBizAppsSalesPipelineStage_.prototype, "RottingDays", void 0);
5590
5493
  __decorate([
@@ -5592,7 +5495,7 @@ __decorate([
5592
5495
  __metadata("design:type", String)
5593
5496
  ], mjBizAppsSalesPipelineStage_.prototype, "EntryCriteria", void 0);
5594
5497
  __decorate([
5595
- Field({ nullable: true, description: `Declarative JSON predicate evaluated SERVER-SIDE before a deal may leave this stage. A stage that cannot be exited without a signed mutual action plan is a config row, not a code branch.` }),
5498
+ Field({ nullable: true, description: "Declarative JSON predicate evaluated SERVER-SIDE before a deal may leave this stage. A stage that cannot be exited without a signed mutual action plan is a config row, not a code branch." }),
5596
5499
  __metadata("design:type", String)
5597
5500
  ], mjBizAppsSalesPipelineStage_.prototype, "ExitCriteria", void 0);
5598
5501
  __decorate([
@@ -5600,7 +5503,7 @@ __decorate([
5600
5503
  __metadata("design:type", String)
5601
5504
  ], mjBizAppsSalesPipelineStage_.prototype, "RequiredFields", void 0);
5602
5505
  __decorate([
5603
- Field({ nullable: true, description: `"What good looks like at this stage", shown in the deal workspace. Sales enablement as a config field.` }),
5506
+ Field({ nullable: true, description: "\"What good looks like at this stage\", shown in the deal workspace. Sales enablement as a config field." }),
5604
5507
  __metadata("design:type", String)
5605
5508
  ], mjBizAppsSalesPipelineStage_.prototype, "GuidanceMarkdown", void 0);
5606
5509
  __decorate([
@@ -5635,7 +5538,7 @@ __decorate([
5635
5538
  __metadata("design:type", Array)
5636
5539
  ], mjBizAppsSalesPipelineStage_.prototype, "ReadableFields___", void 0);
5637
5540
  mjBizAppsSalesPipelineStage_ = __decorate([
5638
- ObjectType({ description: `An ordered stage within a pipeline. Stages carry NO IsWon/IsClosed of their own — they point at a DealStatusType that does. That indirection is what makes "Closed Won" a label rather than a behaviour, and lets a pipeline call its winning stage Signed, Booked or Enrolled with no code aware of the difference.` })
5541
+ ObjectType({ description: "An ordered stage within a pipeline. Stages carry NO IsWon/IsClosed of their own — they point at a DealStatusType that does. That indirection is what makes \"Closed Won\" a label rather than a behaviour, and lets a pipeline call its winning stage Signed, Booked or Enrolled with no code aware of the difference." })
5639
5542
  ], mjBizAppsSalesPipelineStage_);
5640
5543
  export { mjBizAppsSalesPipelineStage_ };
5641
5544
  //****************************************************************************
@@ -5940,7 +5843,7 @@ __decorate([
5940
5843
  __metadata("design:type", String)
5941
5844
  ], mjBizAppsSalesPipeline_.prototype, "ID", void 0);
5942
5845
  __decorate([
5943
- Field({ nullable: true, description: `The owning company. NOT NULL by design — this is what makes every forecast and bookings rollup sliceable by company for free, and every deal inherits it. FK to __mj.Company.` }),
5846
+ Field({ nullable: true, description: "The owning company. NOT NULL by design — this is what makes every forecast and bookings rollup sliceable by company for free, and every deal inherits it. FK to __mj.Company." }),
5944
5847
  MaxLength(36),
5945
5848
  __metadata("design:type", String)
5946
5849
  ], mjBizAppsSalesPipeline_.prototype, "CompanyID", void 0);
@@ -5950,7 +5853,7 @@ __decorate([
5950
5853
  __metadata("design:type", String)
5951
5854
  ], mjBizAppsSalesPipeline_.prototype, "Name", void 0);
5952
5855
  __decorate([
5953
- Field({ nullable: true, description: `Stable identifier, unique PER COMPANY rather than globally: two operating companies may each run a pipeline they both call NEWBIZ.` }),
5856
+ Field({ nullable: true, description: "Stable identifier, unique PER COMPANY rather than globally: two operating companies may each run a pipeline they both call NEWBIZ." }),
5954
5857
  MaxLength(40),
5955
5858
  __metadata("design:type", String)
5956
5859
  ], mjBizAppsSalesPipeline_.prototype, "Code", void 0);
@@ -5969,11 +5872,11 @@ __decorate([
5969
5872
  __metadata("design:type", String)
5970
5873
  ], mjBizAppsSalesPipeline_.prototype, "DefaultForecastCategoryTypeID", void 0);
5971
5874
  __decorate([
5972
- Field(() => Boolean, { nullable: true, description: `Pipeline-level default for whether deals carry catalog lines (priced mode) or are header-only with a hand-entered Amount (simple mode). Overridable per deal. Partner-referral and sponsorship pipelines may never carry lines.` }),
5875
+ Field(() => Boolean, { nullable: true, description: "Pipeline-level default for whether deals carry catalog lines (priced mode) or are header-only with a hand-entered Amount (simple mode). Overridable per deal. Partner-referral and sponsorship pipelines may never carry lines." }),
5973
5876
  __metadata("design:type", Boolean)
5974
5877
  ], mjBizAppsSalesPipeline_.prototype, "RequiresDealLines", void 0);
5975
5878
  __decorate([
5976
- Field({ nullable: true, description: `JSON declaring the DEFAULT outcome of winning a deal in this pipeline: whether to create a contract, which contract type, where subscription lines go, where one-time lines go, and what state the resulting order lands in. A deal may override it; one remote operation (Sales.CloseDeal) reads and executes it. JSON rather than columns because the policy shape is still being learned.` }),
5879
+ Field({ nullable: true, description: "JSON declaring the DEFAULT outcome of winning a deal in this pipeline: whether to create a contract, which contract type, where subscription lines go, where one-time lines go, and what state the resulting order lands in. A deal may override it; one remote operation (Sales.CloseDeal) reads and executes it. JSON rather than columns because the policy shape is still being learned." }),
5977
5880
  __metadata("design:type", String)
5978
5881
  ], mjBizAppsSalesPipeline_.prototype, "CloseWonPolicy", void 0);
5979
5882
  __decorate([
@@ -5997,7 +5900,7 @@ __decorate([
5997
5900
  __metadata("design:type", Date)
5998
5901
  ], mjBizAppsSalesPipeline_.prototype, "_mj__UpdatedAt", void 0);
5999
5902
  __decorate([
6000
- Field(() => Boolean, { nullable: true, description: `Whether open deals in this pipeline count toward open and weighted pipeline, the forecast buckets and the dashboard's open-deal figures. Set to 0 for a pipeline that only holds historical deals. Closed deals count toward bookings, win rate and other history regardless.` }),
5903
+ Field(() => Boolean, { nullable: true, description: "Whether open deals in this pipeline count toward open and weighted pipeline, the forecast buckets and the dashboard's open-deal figures. Set to 0 for a pipeline that only holds historical deals. Closed deals count toward bookings, win rate and other history regardless." }),
6001
5904
  __metadata("design:type", Boolean)
6002
5905
  ], mjBizAppsSalesPipeline_.prototype, "IncludeInForecast", void 0);
6003
5906
  __decorate([
@@ -6020,7 +5923,7 @@ __decorate([
6020
5923
  __metadata("design:type", Array)
6021
5924
  ], mjBizAppsSalesPipeline_.prototype, "ReadableFields___", void 0);
6022
5925
  mjBizAppsSalesPipeline_ = __decorate([
6023
- ObjectType({ description: `A sales pipeline, owned by exactly one company. A company may have any number of pipelines; a pipeline may have any number of deals.` })
5926
+ ObjectType({ description: "A sales pipeline, owned by exactly one company. A company may have any number of pipelines; a pipeline may have any number of deals." })
6024
5927
  ], mjBizAppsSalesPipeline_);
6025
5928
  export { mjBizAppsSalesPipeline_ };
6026
5929
  //****************************************************************************
@@ -6304,7 +6207,7 @@ export { mjBizAppsSalesPipelineResolver };
6304
6207
  let mjBizAppsSalesSalesAccount_ = class mjBizAppsSalesSalesAccount_ {
6305
6208
  };
6306
6209
  __decorate([
6307
- Field({ description: `Same value as the parent __mj_BizAppsCommon.Organization.ID. The primary key IS the foreign key; this is not a separate surrogate identity.` }),
6210
+ Field({ description: "Same value as the parent __mj_BizAppsCommon.Organization.ID. The primary key IS the foreign key; this is not a separate surrogate identity." }),
6308
6211
  MaxLength(36),
6309
6212
  __metadata("design:type", String)
6310
6213
  ], mjBizAppsSalesSalesAccount_.prototype, "ID", void 0);
@@ -6329,7 +6232,7 @@ __decorate([
6329
6232
  __metadata("design:type", String)
6330
6233
  ], mjBizAppsSalesSalesAccount_.prototype, "LeadSourceTypeID", void 0);
6331
6234
  __decorate([
6332
- Field({ nullable: true, description: `A LABEL, not a routing engine. Territory assignment as a rules engine is a product in its own right and is on the not-doing list.` }),
6235
+ Field({ nullable: true, description: "A LABEL, not a routing engine. Territory assignment as a rules engine is a product in its own right and is on the not-doing list." }),
6333
6236
  MaxLength(100),
6334
6237
  __metadata("design:type", String)
6335
6238
  ], mjBizAppsSalesSalesAccount_.prototype, "Territory", void 0);
@@ -6348,12 +6251,12 @@ __decorate([
6348
6251
  __metadata("design:type", String)
6349
6252
  ], mjBizAppsSalesSalesAccount_.prototype, "IndustryCode", void 0);
6350
6253
  __decorate([
6351
- Field({ nullable: true, description: `A BAND, not a number, for the same reason as AnnualRevenueBand.` }),
6254
+ Field({ nullable: true, description: "A BAND, not a number, for the same reason as AnnualRevenueBand." }),
6352
6255
  MaxLength(50),
6353
6256
  __metadata("design:type", String)
6354
6257
  ], mjBizAppsSalesSalesAccount_.prototype, "EmployeeCountBand", void 0);
6355
6258
  __decorate([
6356
- Field({ nullable: true, description: `A BAND, not a number ("$1M-$5M"), on purpose. A rep's guess stored as an exact figure is false precision that later gets treated as fact.` }),
6259
+ Field({ nullable: true, description: "A BAND, not a number (\"$1M-$5M\"), on purpose. A rep's guess stored as an exact figure is false precision that later gets treated as fact." }),
6357
6260
  MaxLength(50),
6358
6261
  __metadata("design:type", String)
6359
6262
  ], mjBizAppsSalesSalesAccount_.prototype, "AnnualRevenueBand", void 0);
@@ -6379,12 +6282,12 @@ __decorate([
6379
6282
  __metadata("design:type", Date)
6380
6283
  ], mjBizAppsSalesSalesAccount_.prototype, "_mj__UpdatedAt", void 0);
6381
6284
  __decorate([
6382
- Field({ nullable: true, description: `Contact a new deal for this account starts with as its Primary Contact. Copied onto a deal only when the deal's Primary Contact is empty; the deal's value stays editable.` }),
6285
+ Field({ nullable: true, description: "Contact a new deal for this account starts with as its Primary Contact. Copied onto a deal only when the deal's Primary Contact is empty; the deal's value stays editable." }),
6383
6286
  MaxLength(36),
6384
6287
  __metadata("design:type", String)
6385
6288
  ], mjBizAppsSalesSalesAccount_.prototype, "DefaultPrimaryContactID", void 0);
6386
6289
  __decorate([
6387
- Field({ nullable: true, description: `Contact a new deal for this account starts with as its Billing Contact. Copied onto a deal only when the deal's Billing Contact is empty; the deal's value stays editable. Empty means the deal's billing contact follows its primary contact.` }),
6290
+ Field({ nullable: true, description: "Contact a new deal for this account starts with as its Billing Contact. Copied onto a deal only when the deal's Billing Contact is empty; the deal's value stays editable. Empty means the deal's billing contact follows its primary contact." }),
6388
6291
  MaxLength(36),
6389
6292
  __metadata("design:type", String)
6390
6293
  ], mjBizAppsSalesSalesAccount_.prototype, "DefaultBillingContactID", void 0);
@@ -6467,12 +6370,12 @@ __decorate([
6467
6370
  ], mjBizAppsSalesSalesAccount_.prototype, "LeadSourceType", void 0);
6468
6371
  __decorate([
6469
6372
  Field({ nullable: true }),
6470
- MaxLength(704),
6373
+ MaxLength(753),
6471
6374
  __metadata("design:type", String)
6472
6375
  ], mjBizAppsSalesSalesAccount_.prototype, "DefaultPrimaryContact", void 0);
6473
6376
  __decorate([
6474
6377
  Field({ nullable: true }),
6475
- MaxLength(704),
6378
+ MaxLength(753),
6476
6379
  __metadata("design:type", String)
6477
6380
  ], mjBizAppsSalesSalesAccount_.prototype, "DefaultBillingContact", void 0);
6478
6381
  __decorate([
@@ -6480,7 +6383,7 @@ __decorate([
6480
6383
  __metadata("design:type", Array)
6481
6384
  ], mjBizAppsSalesSalesAccount_.prototype, "ReadableFields___", void 0);
6482
6385
  mjBizAppsSalesSalesAccount_ = __decorate([
6483
- ObjectType({ description: `CRM attributes for an organization we sell to. An IsA extension of __mj_BizAppsCommon.Organization sharing its UUID — the account and the organization ARE one record, so a customer that is also a vendor and a member stays one row in the Organization graph.` })
6386
+ ObjectType({ description: "CRM attributes for an organization we sell to. An IsA extension of __mj_BizAppsCommon.Organization sharing its UUID — the account and the organization ARE one record, so a customer that is also a vendor and a member stays one row in the Organization graph." })
6484
6387
  ], mjBizAppsSalesSalesAccount_);
6485
6388
  export { mjBizAppsSalesSalesAccount_ };
6486
6389
  //****************************************************************************
@@ -6884,7 +6787,7 @@ export { mjBizAppsSalesSalesAccountResolver };
6884
6787
  let mjBizAppsSalesSalesContact_ = class mjBizAppsSalesSalesContact_ {
6885
6788
  };
6886
6789
  __decorate([
6887
- Field({ description: `Same value as the parent __mj_BizAppsCommon.Person.ID. The primary key IS the foreign key.` }),
6790
+ Field({ description: "Same value as the parent __mj_BizAppsCommon.Person.ID. The primary key IS the foreign key." }),
6888
6791
  MaxLength(36),
6889
6792
  __metadata("design:type", String)
6890
6793
  ], mjBizAppsSalesSalesContact_.prototype, "ID", void 0);
@@ -6899,7 +6802,7 @@ __decorate([
6899
6802
  __metadata("design:type", String)
6900
6803
  ], mjBizAppsSalesSalesContact_.prototype, "LifecycleStageTypeID", void 0);
6901
6804
  __decorate([
6902
- Field({ nullable: true, description: `The contact's DEFAULT buying role. The role that matters per-deal lives on DealContactRole, because one contact holds different roles on different deals.` }),
6805
+ Field({ nullable: true, description: "The contact's DEFAULT buying role. The role that matters per-deal lives on DealContactRole, because one contact holds different roles on different deals." }),
6903
6806
  MaxLength(36),
6904
6807
  __metadata("design:type", String)
6905
6808
  ], mjBizAppsSalesSalesContact_.prototype, "BuyingRoleTypeID", void 0);
@@ -7032,8 +6935,8 @@ __decorate([
7032
6935
  __metadata("design:type", String)
7033
6936
  ], mjBizAppsSalesSalesContact_.prototype, "LeadSourceType", void 0);
7034
6937
  __decorate([
7035
- Field({ nullable: true, description: `The contact's display name, followed by their primary email in brackets when they have one. Derived in vwSalesContacts; this is what lookups to a Sales Contact show instead of a GUID.` }),
7036
- MaxLength(704),
6938
+ Field({ nullable: true, description: "The contact's display name, followed by their primary email in brackets when they have one. Derived in vwSalesContacts; this is what lookups to a Sales Contact show instead of a GUID." }),
6939
+ MaxLength(753),
7037
6940
  __metadata("design:type", String)
7038
6941
  ], mjBizAppsSalesSalesContact_.prototype, "DisplayNameAndEmail", void 0);
7039
6942
  __decorate([
@@ -7041,7 +6944,7 @@ __decorate([
7041
6944
  __metadata("design:type", Array)
7042
6945
  ], mjBizAppsSalesSalesContact_.prototype, "ReadableFields___", void 0);
7043
6946
  mjBizAppsSalesSalesContact_ = __decorate([
7044
- ObjectType({ description: `CRM attributes for a person we sell to. An IsA extension of __mj_BizAppsCommon.Person sharing its UUID. There is deliberately no Lead entity — a lead is a Person at a lifecycle stage.` })
6947
+ ObjectType({ description: "CRM attributes for a person we sell to. An IsA extension of __mj_BizAppsCommon.Person sharing its UUID. There is deliberately no Lead entity — a lead is a Person at a lifecycle stage." })
7045
6948
  ], mjBizAppsSalesSalesContact_);
7046
6949
  export { mjBizAppsSalesSalesContact_ };
7047
6950
  //****************************************************************************