@cyc-seattle/platform 1.54.0 → 1.55.1

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.
@@ -21,6 +21,7 @@ export interface Schema {
21
21
  clubspot_sessions: ClubspotSessions[];
22
22
  contact_points: ContactPoints[];
23
23
  contacts: Contacts[];
24
+ financial_plans: FinancialPlans[];
24
25
  google_group_memberships: GoogleGroupMemberships[];
25
26
  google_groups: GoogleGroups[];
26
27
  group_members: GroupMembers[];
@@ -61,7 +62,6 @@ export interface Schema {
61
62
  plan_staff_levels: PlanStaffLevels[];
62
63
  plan_terms: PlanTerms[];
63
64
  plan_trips: PlanTrips[];
64
- plan_versions: PlanVersions[];
65
65
  plans: Plans[];
66
66
  products: Products[];
67
67
  program_area_role_assignments: ProgramAreaRoleAssignments[];
@@ -77,8 +77,6 @@ export interface Schema {
77
77
  sync_runs: SyncRuns[];
78
78
  sync_tasks: SyncTasks[];
79
79
  venues: Venues[];
80
- version_set_members: VersionSetMembers[];
81
- version_sets: VersionSets[];
82
80
  website_categories: WebsiteCategories[];
83
81
  website_categories_faq_topics: WebsiteCategoriesFaqTopics[];
84
82
  website_categories_files: WebsiteCategoriesFiles[];
@@ -147,6 +145,7 @@ export interface Assets {
147
145
  acquired_on: string | null;
148
146
  /** The day CSC sold, scrapped, or gave it away. Planning stops counting it on this day. Empty while CSC still has it. */
149
147
  disposed_on: string | null;
148
+ /** Up to 280 characters. Bold, italic, code and links work. */
150
149
  note: string | null;
151
150
  }
152
151
  /** Something a sync noticed but didn't fix. A dismissed finding stays dismissed on later runs. */
@@ -396,6 +395,36 @@ export interface Contacts {
396
395
  contact_order: number | null;
397
396
  relationship_detail: string | null;
398
397
  }
398
+ /** The organization's plan for a year: an Operations Plan and a Program Plan for any of the program areas. Change it while it's a draft. Freezing it keeps it, and its plans, from changing. Pick a parent when you add one, and its plans are copied in. */
399
+ export interface FinancialPlans {
400
+ id: string;
401
+ /** The organization the Financial Plan is for. */
402
+ organization_id: string | Organizations;
403
+ /** The year the Financial Plan is for. */
404
+ fiscal_year: number;
405
+ /** Such as 2027 budget as adopted. You can change it after it's frozen. */
406
+ name: string;
407
+ /** What it's for, such as "Reviewed with the board". Up to 280 characters. Bold, italic, code and links work. You can change it after it's frozen. */
408
+ note: string | null;
409
+ /** Set it to frozen to freeze the Financial Plan and its plans. A frozen one never changes, apart from its name, its note, the date it's active from, and whether it's archived. */
410
+ status: "draft" | "frozen";
411
+ /** The Financial Plan this one started as a copy of. Pick it when you add this one, and its plans are copied in. */
412
+ parent_id: string | FinancialPlans | null;
413
+ /** Set when the Financial Plan is frozen. */
414
+ frozen_by: string | null;
415
+ /** Set when the Financial Plan is frozen. */
416
+ frozen_at: string | null;
417
+ /** The version of the planning engine that calculated its numbers when it was frozen. */
418
+ platform_version: string | null;
419
+ /** The day the Financial Plan is in force from. Leave it empty for one that isn't active. On any day, the plan in force is the one for the year with the latest date on or before that day. A draft can be active. No two Financial Plans for a year can share a date. */
420
+ effective_from: string | null;
421
+ /** Set when the Financial Plan is archived, which hides it from Planning's list. Clear it to bring the plan back. The plan in force can't be archived. */
422
+ archived_at: string | null;
423
+ /** The organization's P&L. A draft's is worked out again a moment after each change to it. A frozen one's is worked out once, when it's frozen. One with none means working it out failed, and the logs say why. */
424
+ results: (string | PlanResults)[];
425
+ /** The plans it holds: one Operations Plan, and at most one Program Plan for each program area. Add or remove one only while it's a draft. */
426
+ plans: (string | Plans)[];
427
+ }
399
428
  /** One row for each person the sync has seen in a program's Google Group. Set Removed at to stop the sync adding them back. Delete the row to let the sync add them again. */
400
429
  export interface GoogleGroupMemberships {
401
430
  id: string;
@@ -562,9 +591,9 @@ export interface People {
562
591
  /** One dated activity, such as a practice, a regatta day, or a travel day. */
563
592
  export interface PlanActivities {
564
593
  id: string;
565
- /** The version this row belongs to. */
566
- version_id: string | PlanVersions;
567
- /** Stays the same across versions. Copy it where another row asks for this one's Key. */
594
+ /** The plan this row belongs to. */
595
+ plan_id: string | Plans;
596
+ /** Stays the same when a Financial Plan is copied. Copy it where another row asks for this one's Key. */
568
597
  key: string;
569
598
  offering_id: string | PlanOfferings;
570
599
  /** The trip a travel day belongs to. */
@@ -583,9 +612,9 @@ export interface PlanActivities {
583
612
  /** Activities on one date that share their staff, RIBs and boats, such as Guppies and Minnows on the morning of July 13. */
584
613
  export interface PlanActivityBlocks {
585
614
  id: string;
586
- /** The version this row belongs to. */
587
- version_id: string | PlanVersions;
588
- /** Stays the same across versions. Copy it where another row asks for this one's Key. */
615
+ /** The plan this row belongs to. */
616
+ plan_id: string | Plans;
617
+ /** Stays the same when a Financial Plan is copied. Copy it where another row asks for this one's Key. */
589
618
  key: string;
590
619
  date: string;
591
620
  /** Such as Guppies and Minnows, morning. */
@@ -594,9 +623,9 @@ export interface PlanActivityBlocks {
594
623
  /** Boats of one class a block sails: the organization's, and the ones sailors bring. */
595
624
  export interface PlanBlockBoats {
596
625
  id: string;
597
- /** The version this row belongs to. */
598
- version_id: string | PlanVersions;
599
- /** Stays the same across versions. Copy it where another row asks for this one's Key. */
626
+ /** The plan this row belongs to. */
627
+ plan_id: string | Plans;
628
+ /** Stays the same when a Financial Plan is copied. Copy it where another row asks for this one's Key. */
600
629
  key: string;
601
630
  block_id: string | PlanActivityBlocks;
602
631
  boat_class_id: string | BoatClasses;
@@ -610,9 +639,9 @@ export interface PlanBlockBoats {
610
639
  /** Who coaches a block: a number of staff at one staff level, or a salaried position. */
611
640
  export interface PlanBlockStaff {
612
641
  id: string;
613
- /** The version this row belongs to. */
614
- version_id: string | PlanVersions;
615
- /** Stays the same across versions. Copy it where another row asks for this one's Key. */
642
+ /** The plan this row belongs to. */
643
+ plan_id: string | Plans;
644
+ /** Stays the same when a Financial Plan is copied. Copy it where another row asks for this one's Key. */
616
645
  key: string;
617
646
  block_id: string | PlanActivityBlocks;
618
647
  /** For staff at a staff level: copy the Key from a staff level in the Operations Plan. Leave it empty for a salaried position. */
@@ -627,9 +656,9 @@ export interface PlanBlockStaff {
627
656
  /** What an hour of sailing costs in maintenance, for each boat class. */
628
657
  export interface PlanBoatRates {
629
658
  id: string;
630
- /** The version this row belongs to. */
631
- version_id: string | PlanVersions;
632
- /** Stays the same across versions. Copy it where another row asks for this one's Key. */
659
+ /** The plan this row belongs to. */
660
+ plan_id: string | Plans;
661
+ /** Stays the same when a Financial Plan is copied. Copy it where another row asks for this one's Key. */
633
662
  key: string;
634
663
  boat_class_id: string | BoatClasses;
635
664
  /** Upkeep for each hour one of CSC's boats of the class is on the water. In cents: 12500 is $125.00. */
@@ -642,9 +671,9 @@ export interface PlanBoatRates {
642
671
  /** The products a bonus owner owns. */
643
672
  export interface PlanBonusOwnerProducts {
644
673
  id: string;
645
- /** The version this row belongs to. */
646
- version_id: string | PlanVersions;
647
- /** Stays the same across versions. Copy it where another row asks for this one's Key. */
674
+ /** The plan this row belongs to. */
675
+ plan_id: string | Plans;
676
+ /** Stays the same when a Financial Plan is copied. Copy it where another row asks for this one's Key. */
648
677
  key: string;
649
678
  bonus_owner_id: string | PlanBonusOwners;
650
679
  product_id: string | Products;
@@ -652,9 +681,9 @@ export interface PlanBonusOwnerProducts {
652
681
  /** A role, such as a program area's director, that earns a bonus on the products it owns. */
653
682
  export interface PlanBonusOwners {
654
683
  id: string;
655
- /** The version this row belongs to. */
656
- version_id: string | PlanVersions;
657
- /** Stays the same across versions. Copy it where another row asks for this one's Key. */
684
+ /** The plan this row belongs to. */
685
+ plan_id: string | Plans;
686
+ /** Stays the same when a Financial Plan is copied. Copy it where another row asks for this one's Key. */
658
687
  key: string;
659
688
  role_name: string;
660
689
  /** A share of its products' net. 0.05 means 5%. */
@@ -668,9 +697,9 @@ export interface PlanBonusOwners {
668
697
  /** A cost or revenue entered as an amount. */
669
698
  export interface PlanBudgetLines {
670
699
  id: string;
671
- /** The version this row belongs to. */
672
- version_id: string | PlanVersions;
673
- /** Stays the same across versions. Copy it where another row asks for this one's Key. */
700
+ /** The plan this row belongs to. */
701
+ plan_id: string | Plans;
702
+ /** Stays the same when a Financial Plan is copied. Copy it where another row asks for this one's Key. */
674
703
  key: string;
675
704
  name: string;
676
705
  account_id: string | Accounts;
@@ -683,14 +712,15 @@ export interface PlanBudgetLines {
683
712
  fiscal_year: number;
684
713
  /** Counts toward modified total direct costs (MTDC). Clear it for a cost 2 CFR 200.1 leaves out, such as equipment. */
685
714
  in_mtdc: boolean;
715
+ /** Up to 280 characters. Bold, italic, code and links work. */
686
716
  note: string | null;
687
717
  }
688
718
  /** Something lasting CSC means to buy, ranked with the most needed first. */
689
719
  export interface PlanCapitalItems {
690
720
  id: string;
691
- /** The version this row belongs to. Capital goes in the Operations Plan's. */
692
- version_id: string | PlanVersions;
693
- /** Stays the same across versions. Copy it where another row asks for this one's Key. */
721
+ /** The plan this row belongs to. */
722
+ plan_id: string | Plans;
723
+ /** Stays the same when a Financial Plan is copied. Copy it where another row asks for this one's Key. */
694
724
  key: string;
695
725
  /** What to buy, such as a coach boat. */
696
726
  name: string;
@@ -700,7 +730,7 @@ export interface PlanCapitalItems {
700
730
  account_id: string | Accounts;
701
731
  /** 1 is the most needed. Drag rows in the table to reorder them. */
702
732
  sort: number | null;
703
- /** Why CSC needs it. */
733
+ /** Up to 280 characters. Bold, italic, code and links work. */
704
734
  note: string | null;
705
735
  /** A quote or listing for it, as a web address. */
706
736
  link: string | null;
@@ -708,9 +738,9 @@ export interface PlanCapitalItems {
708
738
  /** A day the organization is closed, such as Labor Day. The P&L warns about an activity on one. */
709
739
  export interface PlanClosedDates {
710
740
  id: string;
711
- /** The version this row belongs to. */
712
- version_id: string | PlanVersions;
713
- /** Stays the same across versions. Copy it where another row asks for this one's Key. */
741
+ /** The plan this row belongs to. */
742
+ plan_id: string | Plans;
743
+ /** Stays the same when a Financial Plan is copied. Copy it where another row asks for this one's Key. */
714
744
  key: string;
715
745
  date: string;
716
746
  /** Why it's closed, such as Labor Day. */
@@ -719,9 +749,9 @@ export interface PlanClosedDates {
719
749
  /** Labor not tied to an activity, such as training, priced at a staff level. */
720
750
  export interface PlanLaborLines {
721
751
  id: string;
722
- /** The version this row belongs to. */
723
- version_id: string | PlanVersions;
724
- /** Stays the same across versions. Copy it where another row asks for this one's Key. */
752
+ /** The plan this row belongs to. */
753
+ plan_id: string | Plans;
754
+ /** Stays the same when a Financial Plan is copied. Copy it where another row asks for this one's Key. */
725
755
  key: string;
726
756
  name: string;
727
757
  cost_center_type: "offering" | "product" | "program_area" | "pool" | "org";
@@ -732,14 +762,15 @@ export interface PlanLaborLines {
732
762
  hours: string;
733
763
  account_id: string | Accounts;
734
764
  function: "program" | "management" | "fundraising" | null;
765
+ /** Up to 280 characters. Bold, italic, code and links work. */
735
766
  note: string | null;
736
767
  }
737
768
  /** A product sold for a period, such as a season or a week. */
738
769
  export interface PlanOfferings {
739
770
  id: string;
740
- /** The version this row belongs to. */
741
- version_id: string | PlanVersions;
742
- /** Stays the same across versions. Copy it where another row asks for this one's Key. */
771
+ /** The plan this row belongs to. */
772
+ plan_id: string | Plans;
773
+ /** Stays the same when a Financial Plan is copied. Copy it where another row asks for this one's Key. */
743
774
  key: string;
744
775
  product_id: string | Products;
745
776
  name: string;
@@ -750,29 +781,28 @@ export interface PlanOfferings {
750
781
  capacity: number | null;
751
782
  /** Whole kids. Or set Fill rate instead. */
752
783
  target_enrollment: number | null;
753
- /** A share of capacity, used when Target enrollment is empty. 0.8 means 80%. */
754
- fill_rate: string | null;
755
784
  /** Per kid. In cents: 12500 is $125.00. */
756
785
  price_cents: number | null;
757
786
  /** Cost of goods sold, as a share of revenue. 0.1 means 10%. */
758
787
  cogs_rate: string | null;
788
+ /** Up to 280 characters. Bold, italic, code and links work. */
759
789
  note: string | null;
760
790
  }
761
791
  /** Shared costs no single offering owns, such as G&A, divided among the year's offerings by MTDC. */
762
792
  export interface PlanPools {
763
793
  id: string;
764
- /** The version this row belongs to. */
765
- version_id: string | PlanVersions;
766
- /** Stays the same across versions. Copy it where another row asks for this one's Key. */
794
+ /** The plan this row belongs to. */
795
+ plan_id: string | Plans;
796
+ /** Stays the same when a Financial Plan is copied. Copy it where another row asks for this one's Key. */
767
797
  key: string;
768
798
  name: string;
769
799
  }
770
- /** A program's settings in a Program Plan: the staff level that coaches it, how many sailors each coach can take, and its rules. */
800
+ /** A program's settings in a Program Plan: the staff level that coaches it, how many sailors each coach can take, and its notes. */
771
801
  export interface PlanPrograms {
772
802
  id: string;
773
- /** The version this row belongs to. */
774
- version_id: string | PlanVersions;
775
- /** Stays the same across versions. Copy it where another row asks for this one's Key. */
803
+ /** The plan this row belongs to. */
804
+ plan_id: string | Plans;
805
+ /** Stays the same when a Financial Plan is copied. Copy it where another row asks for this one's Key. */
776
806
  key: string;
777
807
  /** The program. */
778
808
  product_id: string | Products;
@@ -780,15 +810,15 @@ export interface PlanPrograms {
780
810
  staff_level_key: string | null;
781
811
  /** How many sailors one coach at its staff level can safely take. */
782
812
  sailors_per_coach: string | null;
783
- /** What you want for this program that its numbers don't capture, for your AI to follow. For example: if there are more than 12 Guppies, add a Junior Instructor. */
784
- rules: string | null;
813
+ /** The program's rules, for your AI to follow in each of its offerings. Short notes, one a line, each up to 280 characters. Bold, italic, code and links work. */
814
+ notes: string[] | null;
785
815
  }
786
- /** The year's rates. One row at most in each copy. */
816
+ /** The year's rates. One row at most in each plan. */
787
817
  export interface PlanRates {
788
818
  id: string;
789
- /** The version this row belongs to. */
790
- version_id: string | PlanVersions;
791
- /** Stays the same across versions. Copy it where another row asks for this one's Key. */
819
+ /** The plan this row belongs to. */
820
+ plan_id: string | Plans;
821
+ /** Stays the same when a Financial Plan is copied. Copy it where another row asks for this one's Key. */
792
822
  key: string;
793
823
  /** Employer payroll costs, as a share of wages. 0.1 means 10%. */
794
824
  payroll_tax_rate: string | null;
@@ -797,7 +827,7 @@ export interface PlanRates {
797
827
  /** In cents: 12500 is $125.00. */
798
828
  mileage_rate_cents: number | null;
799
829
  }
800
- /** Each bonus in a Financial Plan, for each term, and for the offerings in no term on the year. A draft's are worked out again a moment after each change to it, and a saved one's when it's saved, and then never change. */
830
+ /** Each bonus in a Financial Plan, for each term, and for the offerings in no term on the year. A draft's are worked out again a moment after each change to it, and a frozen one's when it's frozen, and then never change. */
801
831
  export interface PlanResultBonuses {
802
832
  id: string;
803
833
  /** The bonus's role, such as Director. */
@@ -816,15 +846,15 @@ export interface PlanResultBonuses {
816
846
  bonus_owner_key: string;
817
847
  program_area_key: string | null;
818
848
  /** The Financial Plan these results are for. */
819
- version_set_id: string | VersionSets;
820
- /** The plan in the Financial Plan that pays the bonus. */
821
- version_set_member_id: string | VersionSetMembers | null;
849
+ financial_plan_id: string | FinancialPlans;
850
+ /** The plan it's charged in, or about. */
851
+ plan_id: string | Plans | null;
822
852
  }
823
- /** The capital list in rank order, in a Financial Plan, with what the year's money covers. A draft's are worked out again a moment after each change to it, and a saved one's when it's saved, and then never change. */
853
+ /** The capital list in rank order, in a Financial Plan, with what the year's money covers. A draft's are worked out again a moment after each change to it, and a frozen one's when it's frozen, and then never change. */
824
854
  export interface PlanResultCapital {
825
855
  id: string;
826
856
  /** The Financial Plan these results are for. */
827
- version_set_id: string | VersionSets;
857
+ financial_plan_id: string | FinancialPlans;
828
858
  /** 1 is the most needed. */
829
859
  rank: number | null;
830
860
  item_key: string;
@@ -836,7 +866,7 @@ export interface PlanResultCapital {
836
866
  /** Whether what's left after operations and fundraising covers it, with everything ranked above it. */
837
867
  funded: boolean | null;
838
868
  }
839
- /** Each cost and revenue line in a Financial Plan's P&L. A draft's are worked out again a moment after each change to it, and a saved one's when it's saved, and then never change. */
869
+ /** Each cost and revenue line in a Financial Plan's P&L. A draft's are worked out again a moment after each change to it, and a frozen one's when it's frozen, and then never change. */
840
870
  export interface PlanResultLines {
841
871
  id: string;
842
872
  cost_center_type: "offering" | "product" | "program_area" | "pool" | "org";
@@ -850,13 +880,13 @@ export interface PlanResultLines {
850
880
  line: string;
851
881
  explanation: string | null;
852
882
  /** The Financial Plan these results are for. */
853
- version_set_id: string | VersionSets;
854
- /** The plan in the Financial Plan that holds what it's charged to. */
855
- version_set_member_id: string | VersionSetMembers | null;
883
+ financial_plan_id: string | FinancialPlans;
884
+ /** The plan it's charged in, or about. */
885
+ plan_id: string | Plans | null;
856
886
  /** What the line is, in plain words, such as G&A share: Payroll tax. */
857
887
  line_name: string | null;
858
888
  }
859
- /** A Financial Plan's P&L for each offering, product, and program area. A draft's are worked out again a moment after each change to it, and a saved one's when it's saved, and then never change. */
889
+ /** A Financial Plan's P&L for each offering, product, and program area. A draft's are worked out again a moment after each change to it, and a frozen one's when it's frozen, and then never change. */
860
890
  export interface PlanResultPnl {
861
891
  id: string;
862
892
  level: "offering" | "product" | "program_area" | "program_area_term";
@@ -874,9 +904,9 @@ export interface PlanResultPnl {
874
904
  days: number;
875
905
  sailor_days: number;
876
906
  /** The Financial Plan these results are for. */
877
- version_set_id: string | VersionSets;
878
- /** The plan in the Financial Plan that holds what it's charged to. */
879
- version_set_member_id: string | VersionSetMembers | null;
907
+ financial_plan_id: string | FinancialPlans;
908
+ /** The plan it's charged in, or about. */
909
+ plan_id: string | Plans | null;
880
910
  term_key: string | null;
881
911
  /** For a program area by term, the term. Empty for its offerings in no term, such as Adult Learn to Sail. */
882
912
  term_name: string | null;
@@ -887,7 +917,7 @@ export interface PlanResultPnl {
887
917
  /** The fewest sailors, up to its capacity, at which an offering pays for itself, with its share of shared costs as planned. Empty when it doesn't even when full, and for a product or program area. */
888
918
  breakeven_enrollment: number | null;
889
919
  }
890
- /** Each salaried position's pay for the year, in a Financial Plan. A draft's are worked out again a moment after each change to it, and a saved one's when it's saved, and then never change. */
920
+ /** Each salaried position's pay for the year, in a Financial Plan. A draft's are worked out again a moment after each change to it, and a frozen one's when it's frozen, and then never change. */
891
921
  export interface PlanResultPositions {
892
922
  id: string;
893
923
  position_key: string;
@@ -910,13 +940,13 @@ export interface PlanResultPositions {
910
940
  /** The year's payroll tax on the total pay. In cents: 12500 is $125.00. */
911
941
  payroll_tax_cents: number;
912
942
  /** The Financial Plan these results are for. */
913
- version_set_id: string | VersionSets;
943
+ financial_plan_id: string | FinancialPlans;
914
944
  /** Hours another coach would cover while this position coaches two or more groups at once: for three groups at once, two coaches. */
915
945
  double_booked_hours: string | null;
916
946
  /** Dates this position coaches two or more groups at once. */
917
947
  double_booked_dates: number | null;
918
948
  }
919
- /** What a Financial Plan's P&L warns about. A draft's are worked out again a moment after each change to it, and a saved one's when it's saved, and then never change. */
949
+ /** What a Financial Plan's P&L warns about. A draft's are worked out again a moment after each change to it, and a frozen one's when it's frozen, and then never change. */
920
950
  export interface PlanResultWarnings {
921
951
  id: string;
922
952
  /** The kind of warning. */
@@ -924,15 +954,15 @@ export interface PlanResultWarnings {
924
954
  message: string;
925
955
  subject_key: string | null;
926
956
  /** The Financial Plan these results are for. */
927
- version_set_id: string | VersionSets;
928
- /** The plan in the Financial Plan it's about. */
929
- version_set_member_id: string | VersionSetMembers | null;
957
+ financial_plan_id: string | FinancialPlans;
958
+ /** The plan it's charged in, or about. */
959
+ plan_id: string | Plans | null;
930
960
  /** The date it's about. */
931
961
  date: string | null;
932
962
  /** Allocation: the blocks break a limit, or run on a closed day. Data: a row is missing or wrong. */
933
963
  category: "allocation" | "data" | null;
934
964
  }
935
- /** A Financial Plan's totals for the organization. A draft's are worked out again a moment after each change to it, and a saved one's when it's saved, and then never change. */
965
+ /** A Financial Plan's totals for the organization. A draft's are worked out again a moment after each change to it, and a frozen one's when it's frozen, and then never change. */
936
966
  export interface PlanResults {
937
967
  id: string;
938
968
  calculated_at: string;
@@ -953,14 +983,14 @@ export interface PlanResults {
953
983
  /** Operating net, plus fundraising net, less capital. In cents: 12500 is $125.00. */
954
984
  total_cents: number;
955
985
  /** The Financial Plan these results are for. */
956
- version_set_id: string | VersionSets;
986
+ financial_plan_id: string | FinancialPlans;
957
987
  }
958
988
  /** A charge set as a share of each offering's revenue, such as scholarships or card fees. Operations Plan only. */
959
989
  export interface PlanRevenueCharges {
960
990
  id: string;
961
- /** The version this row belongs to. */
962
- version_id: string | PlanVersions;
963
- /** Stays the same across versions. Copy it where another row asks for this one's Key. */
991
+ /** The plan this row belongs to. */
992
+ plan_id: string | Plans;
993
+ /** Stays the same when a Financial Plan is copied. Copy it where another row asks for this one's Key. */
964
994
  key: string;
965
995
  name: string;
966
996
  /** The share of each offering's revenue: 0.02 means 2%. */
@@ -971,29 +1001,29 @@ export interface PlanRevenueCharges {
971
1001
  account_id: string | Accounts;
972
1002
  /** Counts toward MTDC. Clear it for a charge 2 CFR 200.1 leaves out, such as scholarships. */
973
1003
  in_mtdc: boolean;
1004
+ /** Up to 280 characters. Bold, italic, code and links work. */
974
1005
  note: string | null;
975
1006
  }
976
1007
  /** Hours of a salaried position booked to a product. */
977
1008
  export interface PlanSalariedBookings {
978
1009
  id: string;
979
- /** The version this row belongs to. */
980
- version_id: string | PlanVersions;
981
- /** Stays the same across versions. Copy it where another row asks for this one's Key. */
1010
+ /** The plan this row belongs to. */
1011
+ plan_id: string | Plans;
1012
+ /** Stays the same when a Financial Plan is copied. Copy it where another row asks for this one's Key. */
982
1013
  key: string;
983
1014
  position_id: string | PlanSalariedPositions;
984
1015
  /** The product the hours are for. Set this or the program area, not both. */
985
1016
  product_id: string | Products | null;
986
1017
  /** The program area the hours are for, shared among its offerings. Set this or the product, not both. */
987
1018
  program_area_id: string | ProgramAreas | null;
988
- kind: "management";
989
1019
  hours: string;
990
1020
  }
991
1021
  /** A salaried position, and where the part of its salary not charged to programs goes. */
992
1022
  export interface PlanSalariedPositions {
993
1023
  id: string;
994
- /** The version this row belongs to. */
995
- version_id: string | PlanVersions;
996
- /** Stays the same across versions. Copy it where another row asks for this one's Key. */
1024
+ /** The plan this row belongs to. */
1025
+ plan_id: string | Plans;
1026
+ /** Stays the same when a Financial Plan is copied. Copy it where another row asks for this one's Key. */
997
1027
  key: string;
998
1028
  name: string;
999
1029
  /** In cents: 12500 is $125.00. */
@@ -1009,9 +1039,9 @@ export interface PlanSalariedPositions {
1009
1039
  /** A level hourly staff are paid at, such as head coach. */
1010
1040
  export interface PlanStaffLevels {
1011
1041
  id: string;
1012
- /** The version this row belongs to. */
1013
- version_id: string | PlanVersions;
1014
- /** Stays the same across versions. Copy it where another row asks for this one's Key. */
1042
+ /** The plan this row belongs to. */
1043
+ plan_id: string | Plans;
1044
+ /** Stays the same when a Financial Plan is copied. Copy it where another row asks for this one's Key. */
1015
1045
  key: string;
1016
1046
  name: string;
1017
1047
  pay_type: "hourly" | "volunteer";
@@ -1021,9 +1051,9 @@ export interface PlanStaffLevels {
1021
1051
  /** A planning period, such as Summer 2027, with its start and end dates. An offering in a Program Plan can be in one of its Financial Plan's terms. */
1022
1052
  export interface PlanTerms {
1023
1053
  id: string;
1024
- /** The version this row belongs to. */
1025
- version_id: string | PlanVersions;
1026
- /** Stays the same across versions. Copy it where another row asks for this one's Key. */
1054
+ /** The plan this row belongs to. */
1055
+ plan_id: string | Plans;
1056
+ /** Stays the same when a Financial Plan is copied. Copy it where another row asks for this one's Key. */
1027
1057
  key: string;
1028
1058
  /** What it's called, such as Summer 2027. */
1029
1059
  name: string;
@@ -1035,9 +1065,9 @@ export interface PlanTerms {
1035
1065
  /** A trip an offering travels for, such as an away regatta. */
1036
1066
  export interface PlanTrips {
1037
1067
  id: string;
1038
- /** The version this row belongs to. */
1039
- version_id: string | PlanVersions;
1040
- /** Stays the same across versions. Copy it where another row asks for this one's Key. */
1068
+ /** The plan this row belongs to. */
1069
+ plan_id: string | Plans;
1070
+ /** Stays the same when a Financial Plan is copied. Copy it where another row asks for this one's Key. */
1041
1071
  key: string;
1042
1072
  offering_id: string | PlanOfferings;
1043
1073
  name: string;
@@ -1046,38 +1076,16 @@ export interface PlanTrips {
1046
1076
  airfare_cents: number | null;
1047
1077
  miles: number | null;
1048
1078
  }
1049
- /** One plan's copy in one Financial Plan, with every row it holds. It's saved with its Financial Plan, and then never changes. */
1050
- export interface PlanVersions {
1051
- id: string;
1052
- plan_id: string | Plans;
1053
- /** The copy this one was made from, in the Financial Plan this one's started from. */
1054
- parent_version_id: string | PlanVersions | null;
1055
- /** Saved with its Financial Plan. A saved copy never changes, even for an admin. */
1056
- status: "draft" | "saved";
1057
- /** What changed in this version. */
1058
- message: string | null;
1059
- /** Set when its Financial Plan is saved. */
1060
- saved_by: string | null;
1061
- /** Set when its Financial Plan is saved. */
1062
- saved_at: string | null;
1063
- /** The version of the planning engine that calculated its numbers. Required to save. */
1064
- platform_version: string | null;
1065
- /** What you want that the plan's numbers don't capture, for your AI to fill in. For example: every Monday, Wednesday and Friday, except on SPS school holidays, from 4pm until dusk. */
1066
- rules: string | null;
1067
- }
1068
- /** One part of a Financial Plan: a program area's Program Plan, or the Operations Plan. */
1079
+ /** One part of a Financial Plan, with every row it holds: a program area's Program Plan, or the Operations Plan. */
1069
1080
  export interface Plans {
1070
1081
  id: string;
1082
+ /** What you want that the plan's numbers don't capture, for your AI to fill in. Short notes, one a line, each up to 280 characters. Bold, italic, code and links work. */
1083
+ notes: string[] | null;
1084
+ /** The Financial Plan it's part of. It can't move to another. */
1085
+ financial_plan_id: string | FinancialPlans;
1071
1086
  kind: "program_area" | "operations";
1072
1087
  /** The program area the plan is for. Empty for the Operations Plan. */
1073
1088
  program_area_id: string | ProgramAreas | null;
1074
- /** The organization the plan is for. Can't change once the plan has a saved copy. */
1075
- organization_id: string | Organizations;
1076
- /** The plan year. Fiscal year N ends in calendar year N. Can't change once the plan has a saved copy. */
1077
- fiscal_year: number;
1078
- name: string;
1079
- /** The plan's copy in each Financial Plan. */
1080
- versions: (string | PlanVersions)[];
1081
1089
  }
1082
1090
  /** A lasting thing the club sells. A program also has a row in Programs. */
1083
1091
  export interface Products {
@@ -1226,45 +1234,6 @@ export interface Venues {
1226
1234
  /** Other names it goes by, such as on a regatta's notice of race. */
1227
1235
  aliases: string[] | null;
1228
1236
  }
1229
- /** One plan in a Financial Plan: the copy of the plan it holds. Add or remove one only while the Financial Plan is a draft. */
1230
- export interface VersionSetMembers {
1231
- id: string;
1232
- version_set_id: string | VersionSets;
1233
- /** Filled in from the plan copy. */
1234
- plan_id: string | Plans | null;
1235
- /** The plan's copy in this Financial Plan. It's in no other Financial Plan. */
1236
- version_id: string | PlanVersions;
1237
- }
1238
- /** The organization's plan for a year: one Operations Plan, and a Program Plan for any of the program areas, with the P&L they make together. Change its plans while it's a draft. Its P&L is worked out again a moment after each change. Saving it saves them all, and then it never changes, apart from its name and note. Pick a parent when you add one, and its plans are copied in. */
1239
- export interface VersionSets {
1240
- id: string;
1241
- /** The organization the Financial Plan is for. */
1242
- organization_id: string | Organizations;
1243
- /** The year the Financial Plan is for. */
1244
- fiscal_year: number;
1245
- /** Such as 2027 budget as adopted. You can change it after it's saved. */
1246
- name: string;
1247
- /** What it was for, such as "Reviewed with the board". You can change it after it's saved. */
1248
- message: string | null;
1249
- /** Set it to saved to save the Financial Plan and all its plans. A saved Financial Plan never changes, apart from its name, its note, the date it's active from, and whether it's archived. */
1250
- status: "draft" | "saved";
1251
- /** The Financial Plan this one started as a copy of. Pick it when you add this one, and its plans are copied in. */
1252
- parent_id: string | VersionSets | null;
1253
- /** Set when the Financial Plan is saved. */
1254
- saved_by: string | null;
1255
- /** Set when the Financial Plan is saved. */
1256
- saved_at: string | null;
1257
- /** The version of the planning engine that calculated its numbers. */
1258
- platform_version: string | null;
1259
- /** The day the Financial Plan is in force from. Leave it empty for one that isn't active. On any day, the plan in force is the one for the year with the latest date on or before that day. A draft can be active. No two Financial Plans for a year can share a date. */
1260
- effective_from: string | null;
1261
- /** Set when the Financial Plan is archived, which hides it from Planning's list. Clear it to bring the plan back. The plan in force can't be archived. */
1262
- archived_at: string | null;
1263
- /** Each plan in the Financial Plan. Add or remove one only while it's a draft. */
1264
- members: (string | VersionSetMembers)[];
1265
- /** The organization's P&L. A draft's is worked out again a moment after each change to it. A saved one's is what it showed when it was saved, worked out a moment after. One with none means working it out failed, and the logs say why. An admin can fill in a saved one's. */
1266
- results: (string | PlanResults)[];
1267
- }
1268
1237
  /** Program categories, such as Summer Sailing Camps, each with a page at /program-category/ and its slug. */
1269
1238
  export interface WebsiteCategories {
1270
1239
  id: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyc-seattle/platform",
3
- "version": "1.54.0",
3
+ "version": "1.55.1",
4
4
  "description": "Pulumi components for CYC's shared Google Cloud platform: WebService, the platform outputs reader, and the stacks that build the platform",
5
5
  "author": "CYC Community Sailing Center",
6
6
  "license": "Apache-2.0",