|
7 | 7 | import { z } from "zod"; |
8 | 8 | import { type Json } from "@/lib/types/supabase"; |
9 | 9 |
|
| 10 | +export const publicModelKindSchema = z.union([ |
| 11 | + z.literal("INCREMENTAL_BY_TIME_RANGE"), |
| 12 | + z.literal("INCREMENTAL_BY_UNIQUE_KEY"), |
| 13 | + z.literal("INCREMENTAL_BY_PARTITION"), |
| 14 | + z.literal("SCD_TYPE_2_BY_TIME"), |
| 15 | + z.literal("SCD_TYPE_2_BY_COLUMN"), |
| 16 | + z.literal("FULL"), |
| 17 | + z.literal("VIEW"), |
| 18 | +]); |
| 19 | + |
| 20 | +export const publicModelRunStatusSchema = z.union([ |
| 21 | + z.literal("running"), |
| 22 | + z.literal("completed"), |
| 23 | + z.literal("failed"), |
| 24 | + z.literal("canceled"), |
| 25 | +]); |
| 26 | + |
10 | 27 | export const jsonSchema: z.ZodSchema<Json> = z.lazy(() => |
11 | 28 | z |
12 | 29 | .union([ |
@@ -568,6 +585,258 @@ export const invitationsRelationshipsSchema = z.tuple([ |
568 | 585 | }), |
569 | 586 | ]); |
570 | 587 |
|
| 588 | +export const modelRowSchema = z.object({ |
| 589 | + created_at: z.string(), |
| 590 | + dataset_id: z.string(), |
| 591 | + deleted_at: z.string().nullable(), |
| 592 | + id: z.string(), |
| 593 | + is_enabled: z.boolean(), |
| 594 | + name: z.string(), |
| 595 | + org_id: z.string(), |
| 596 | + updated_at: z.string(), |
| 597 | +}); |
| 598 | + |
| 599 | +export const modelInsertSchema = z.object({ |
| 600 | + created_at: z.string().optional(), |
| 601 | + dataset_id: z.string(), |
| 602 | + deleted_at: z.string().optional().nullable(), |
| 603 | + id: z.string().optional(), |
| 604 | + is_enabled: z.boolean().optional(), |
| 605 | + name: z.string(), |
| 606 | + org_id: z.string(), |
| 607 | + updated_at: z.string().optional(), |
| 608 | +}); |
| 609 | + |
| 610 | +export const modelUpdateSchema = z.object({ |
| 611 | + created_at: z.string().optional(), |
| 612 | + dataset_id: z.string().optional(), |
| 613 | + deleted_at: z.string().optional().nullable(), |
| 614 | + id: z.string().optional(), |
| 615 | + is_enabled: z.boolean().optional(), |
| 616 | + name: z.string().optional(), |
| 617 | + org_id: z.string().optional(), |
| 618 | + updated_at: z.string().optional(), |
| 619 | +}); |
| 620 | + |
| 621 | +export const modelRelationshipsSchema = z.tuple([ |
| 622 | + z.object({ |
| 623 | + foreignKeyName: z.literal("model_dataset_id_fkey"), |
| 624 | + columns: z.tuple([z.literal("dataset_id")]), |
| 625 | + isOneToOne: z.literal(false), |
| 626 | + referencedRelation: z.literal("datasets"), |
| 627 | + referencedColumns: z.tuple([z.literal("id")]), |
| 628 | + }), |
| 629 | + z.object({ |
| 630 | + foreignKeyName: z.literal("model_org_id_fkey"), |
| 631 | + columns: z.tuple([z.literal("org_id")]), |
| 632 | + isOneToOne: z.literal(false), |
| 633 | + referencedRelation: z.literal("organizations"), |
| 634 | + referencedColumns: z.tuple([z.literal("id")]), |
| 635 | + }), |
| 636 | +]); |
| 637 | + |
| 638 | +export const modelReleaseRowSchema = z.object({ |
| 639 | + created_at: z.string(), |
| 640 | + description: z.string().nullable(), |
| 641 | + id: z.string(), |
| 642 | + model_id: z.string(), |
| 643 | + model_revision_id: z.string(), |
| 644 | + org_id: z.string(), |
| 645 | + updated_at: z.string(), |
| 646 | +}); |
| 647 | + |
| 648 | +export const modelReleaseInsertSchema = z.object({ |
| 649 | + created_at: z.string().optional(), |
| 650 | + description: z.string().optional().nullable(), |
| 651 | + id: z.string().optional(), |
| 652 | + model_id: z.string(), |
| 653 | + model_revision_id: z.string(), |
| 654 | + org_id: z.string(), |
| 655 | + updated_at: z.string().optional(), |
| 656 | +}); |
| 657 | + |
| 658 | +export const modelReleaseUpdateSchema = z.object({ |
| 659 | + created_at: z.string().optional(), |
| 660 | + description: z.string().optional().nullable(), |
| 661 | + id: z.string().optional(), |
| 662 | + model_id: z.string().optional(), |
| 663 | + model_revision_id: z.string().optional(), |
| 664 | + org_id: z.string().optional(), |
| 665 | + updated_at: z.string().optional(), |
| 666 | +}); |
| 667 | + |
| 668 | +export const modelReleaseRelationshipsSchema = z.tuple([ |
| 669 | + z.object({ |
| 670 | + foreignKeyName: z.literal("model_release_model_id_fkey"), |
| 671 | + columns: z.tuple([z.literal("model_id")]), |
| 672 | + isOneToOne: z.literal(false), |
| 673 | + referencedRelation: z.literal("model"), |
| 674 | + referencedColumns: z.tuple([z.literal("id")]), |
| 675 | + }), |
| 676 | + z.object({ |
| 677 | + foreignKeyName: z.literal("model_release_model_revision_id_fkey"), |
| 678 | + columns: z.tuple([z.literal("model_revision_id")]), |
| 679 | + isOneToOne: z.literal(false), |
| 680 | + referencedRelation: z.literal("model_revision"), |
| 681 | + referencedColumns: z.tuple([z.literal("id")]), |
| 682 | + }), |
| 683 | + z.object({ |
| 684 | + foreignKeyName: z.literal("model_release_org_id_fkey"), |
| 685 | + columns: z.tuple([z.literal("org_id")]), |
| 686 | + isOneToOne: z.literal(false), |
| 687 | + referencedRelation: z.literal("organizations"), |
| 688 | + referencedColumns: z.tuple([z.literal("id")]), |
| 689 | + }), |
| 690 | +]); |
| 691 | + |
| 692 | +export const publicModelDependencyTypeSchema = z.object({ |
| 693 | + model_id: z.string().nullable(), |
| 694 | + alias: z.string().nullable(), |
| 695 | +}); |
| 696 | + |
| 697 | +export const publicModelKindOptionsSchema = z.object({ |
| 698 | + time_column: z.string().nullable(), |
| 699 | + time_column_format: z.string().nullable(), |
| 700 | + batch_size: z.number().nullable(), |
| 701 | + lookback: z.number().nullable(), |
| 702 | + unique_key_columns: z.array(z.string()).nullable(), |
| 703 | + when_matched_sql: z.string().nullable(), |
| 704 | + merge_filter: z.string().nullable(), |
| 705 | + valid_from_name: z.string().nullable(), |
| 706 | + valid_to_name: z.string().nullable(), |
| 707 | + invalidate_hard_deletes: z.boolean().nullable(), |
| 708 | + updated_at_column: z.string().nullable(), |
| 709 | + updated_at_as_valid_from: z.boolean().nullable(), |
| 710 | + scd_columns: z.array(z.string()).nullable(), |
| 711 | + execution_time_as_valid_from: z.boolean().nullable(), |
| 712 | +}); |
| 713 | + |
| 714 | +export const publicModelColumnTypeSchema = z.object({ |
| 715 | + name: z.string().nullable(), |
| 716 | + type: z.string().nullable(), |
| 717 | + description: z.string().nullable(), |
| 718 | +}); |
| 719 | + |
| 720 | +export const modelRevisionInsertSchema = z.object({ |
| 721 | + clustered_by: z.array(z.string()).optional().nullable(), |
| 722 | + code: z.string(), |
| 723 | + created_at: z.string().optional(), |
| 724 | + cron: z.string(), |
| 725 | + depends_on: z.array(publicModelDependencyTypeSchema).optional().nullable(), |
| 726 | + description: z.string().optional().nullable(), |
| 727 | + display_name: z.string(), |
| 728 | + end: z.string().optional().nullable(), |
| 729 | + hash: z.string(), |
| 730 | + id: z.string().optional(), |
| 731 | + kind: publicModelKindSchema, |
| 732 | + kind_options: publicModelKindOptionsSchema.optional().nullable(), |
| 733 | + language: z.string(), |
| 734 | + model_id: z.string(), |
| 735 | + name: z.string(), |
| 736 | + org_id: z.string(), |
| 737 | + partitioned_by: z.array(z.string()).optional().nullable(), |
| 738 | + revision_number: z.number(), |
| 739 | + schema: z.array(publicModelColumnTypeSchema), |
| 740 | + start: z.string().optional().nullable(), |
| 741 | +}); |
| 742 | + |
| 743 | +export const modelRevisionUpdateSchema = z.object({ |
| 744 | + clustered_by: z.array(z.string()).optional().nullable(), |
| 745 | + code: z.string().optional(), |
| 746 | + created_at: z.string().optional(), |
| 747 | + cron: z.string().optional(), |
| 748 | + depends_on: z.array(publicModelDependencyTypeSchema).optional().nullable(), |
| 749 | + description: z.string().optional().nullable(), |
| 750 | + display_name: z.string().optional(), |
| 751 | + end: z.string().optional().nullable(), |
| 752 | + hash: z.string().optional(), |
| 753 | + id: z.string().optional(), |
| 754 | + kind: publicModelKindSchema.optional(), |
| 755 | + kind_options: publicModelKindOptionsSchema.optional().nullable(), |
| 756 | + language: z.string().optional(), |
| 757 | + model_id: z.string().optional(), |
| 758 | + name: z.string().optional(), |
| 759 | + org_id: z.string().optional(), |
| 760 | + partitioned_by: z.array(z.string()).optional().nullable(), |
| 761 | + revision_number: z.number().optional(), |
| 762 | + schema: z.array(publicModelColumnTypeSchema).optional(), |
| 763 | + start: z.string().optional().nullable(), |
| 764 | +}); |
| 765 | + |
| 766 | +export const modelRevisionRelationshipsSchema = z.tuple([ |
| 767 | + z.object({ |
| 768 | + foreignKeyName: z.literal("model_revision_model_id_fkey"), |
| 769 | + columns: z.tuple([z.literal("model_id")]), |
| 770 | + isOneToOne: z.literal(false), |
| 771 | + referencedRelation: z.literal("model"), |
| 772 | + referencedColumns: z.tuple([z.literal("id")]), |
| 773 | + }), |
| 774 | + z.object({ |
| 775 | + foreignKeyName: z.literal("model_revision_org_id_fkey"), |
| 776 | + columns: z.tuple([z.literal("org_id")]), |
| 777 | + isOneToOne: z.literal(false), |
| 778 | + referencedRelation: z.literal("organizations"), |
| 779 | + referencedColumns: z.tuple([z.literal("id")]), |
| 780 | + }), |
| 781 | +]); |
| 782 | + |
| 783 | +export const modelRunRowSchema = z.object({ |
| 784 | + completed_at: z.string().nullable(), |
| 785 | + id: z.string(), |
| 786 | + logs_url: z.string().nullable(), |
| 787 | + model_id: z.string(), |
| 788 | + model_release_id: z.string(), |
| 789 | + org_id: z.string(), |
| 790 | + started_at: z.string(), |
| 791 | + status: publicModelRunStatusSchema, |
| 792 | +}); |
| 793 | + |
| 794 | +export const modelRunInsertSchema = z.object({ |
| 795 | + completed_at: z.string().optional().nullable(), |
| 796 | + id: z.string().optional(), |
| 797 | + logs_url: z.string().optional().nullable(), |
| 798 | + model_id: z.string(), |
| 799 | + model_release_id: z.string(), |
| 800 | + org_id: z.string(), |
| 801 | + started_at: z.string().optional(), |
| 802 | + status: publicModelRunStatusSchema.optional(), |
| 803 | +}); |
| 804 | + |
| 805 | +export const modelRunUpdateSchema = z.object({ |
| 806 | + completed_at: z.string().optional().nullable(), |
| 807 | + id: z.string().optional(), |
| 808 | + logs_url: z.string().optional().nullable(), |
| 809 | + model_id: z.string().optional(), |
| 810 | + model_release_id: z.string().optional(), |
| 811 | + org_id: z.string().optional(), |
| 812 | + started_at: z.string().optional(), |
| 813 | + status: publicModelRunStatusSchema.optional(), |
| 814 | +}); |
| 815 | + |
| 816 | +export const modelRunRelationshipsSchema = z.tuple([ |
| 817 | + z.object({ |
| 818 | + foreignKeyName: z.literal("model_run_model_id_fkey"), |
| 819 | + columns: z.tuple([z.literal("model_id")]), |
| 820 | + isOneToOne: z.literal(false), |
| 821 | + referencedRelation: z.literal("model"), |
| 822 | + referencedColumns: z.tuple([z.literal("id")]), |
| 823 | + }), |
| 824 | + z.object({ |
| 825 | + foreignKeyName: z.literal("model_run_model_release_id_fkey"), |
| 826 | + columns: z.tuple([z.literal("model_release_id")]), |
| 827 | + isOneToOne: z.literal(false), |
| 828 | + referencedRelation: z.literal("model_release"), |
| 829 | + referencedColumns: z.tuple([z.literal("id")]), |
| 830 | + }), |
| 831 | + z.object({ |
| 832 | + foreignKeyName: z.literal("model_run_org_id_fkey"), |
| 833 | + columns: z.tuple([z.literal("org_id")]), |
| 834 | + isOneToOne: z.literal(false), |
| 835 | + referencedRelation: z.literal("organizations"), |
| 836 | + referencedColumns: z.tuple([z.literal("id")]), |
| 837 | + }), |
| 838 | +]); |
| 839 | + |
571 | 840 | export const notebooksRowSchema = z.object({ |
572 | 841 | created_at: z.string(), |
573 | 842 | created_by: z.string(), |
@@ -1173,3 +1442,26 @@ export const validateOwnershipLimitsArgsSchema = z.object({ |
1173 | 1442 | }); |
1174 | 1443 |
|
1175 | 1444 | export const validateOwnershipLimitsReturnsSchema = z.boolean(); |
| 1445 | + |
| 1446 | +export const modelRevisionRowSchema = z.object({ |
| 1447 | + clustered_by: z.array(z.string()).nullable(), |
| 1448 | + code: z.string(), |
| 1449 | + created_at: z.string(), |
| 1450 | + cron: z.string(), |
| 1451 | + depends_on: z.array(publicModelDependencyTypeSchema).nullable(), |
| 1452 | + description: z.string().nullable(), |
| 1453 | + display_name: z.string(), |
| 1454 | + end: z.string().nullable(), |
| 1455 | + hash: z.string(), |
| 1456 | + id: z.string(), |
| 1457 | + kind: publicModelKindSchema, |
| 1458 | + kind_options: publicModelKindOptionsSchema.nullable(), |
| 1459 | + language: z.string(), |
| 1460 | + model_id: z.string(), |
| 1461 | + name: z.string(), |
| 1462 | + org_id: z.string(), |
| 1463 | + partitioned_by: z.array(z.string()).nullable(), |
| 1464 | + revision_number: z.number(), |
| 1465 | + schema: z.array(publicModelColumnTypeSchema), |
| 1466 | + start: z.string().nullable(), |
| 1467 | +}); |
0 commit comments