@whispering233/ai-editor-db 0.0.57 → 0.0.58
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.
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/migrations/012_practice.d.ts +4 -0
- package/dist/migrations/012_practice.d.ts.map +1 -0
- package/dist/migrations/012_practice.js +47 -0
- package/dist/migrations/012_practice.js.map +1 -0
- package/dist/migrations/013_author_practice.d.ts +4 -0
- package/dist/migrations/013_author_practice.d.ts.map +1 -0
- package/dist/migrations/013_author_practice.js +60 -0
- package/dist/migrations/013_author_practice.js.map +1 -0
- package/dist/migrations/index.d.ts +3 -1
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/index.js +14 -3
- package/dist/migrations/index.js.map +1 -1
- package/dist/queries/practice.d.ts +168 -0
- package/dist/queries/practice.d.ts.map +1 -0
- package/dist/queries/practice.js +339 -0
- package/dist/queries/practice.js.map +1 -0
- package/dist/schema.d.ts +7 -1
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +7 -1
- package/dist/schema.js.map +1 -1
- package/dist/storage/project.d.ts +2 -0
- package/dist/storage/project.d.ts.map +1 -1
- package/dist/storage/project.js +11 -1
- package/dist/storage/project.js.map +1 -1
- package/dist/tables.d.ts +397 -1
- package/dist/tables.d.ts.map +1 -1
- package/dist/tables.js +70 -0
- package/dist/tables.js.map +1 -1
- package/package.json +2 -2
package/dist/tables.d.ts
CHANGED
|
@@ -677,9 +677,405 @@ export declare const documentRecords: import("drizzle-orm/sqlite-core").SQLiteTa
|
|
|
677
677
|
};
|
|
678
678
|
dialect: "sqlite";
|
|
679
679
|
}>;
|
|
680
|
+
/**
|
|
681
|
+
* practice_samples:范文样本(练习工作区专属,2026-10)——`kind = "practice"` 的数据,
|
|
682
|
+
* 与小说语义表互不混装(不进 Delta / 关系表 / 回收站);一工作区 = 一位预置作家,故无归属列。
|
|
683
|
+
* `work_id` 无外键(存在性由写入侧按 shared 预置作品清单守卫);无 deleted_at(删除 = 物理删)。
|
|
684
|
+
* `feedback` JSON 列保持 **text 模式**(坏 JSON 防御在行映射层,见 queries/practice.ts parseFeedbackColumn)。
|
|
685
|
+
*/
|
|
686
|
+
export declare const practiceSamples: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
|
|
687
|
+
name: "practice_samples";
|
|
688
|
+
schema: undefined;
|
|
689
|
+
columns: {
|
|
690
|
+
id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
691
|
+
name: "id";
|
|
692
|
+
tableName: "practice_samples";
|
|
693
|
+
dataType: "string";
|
|
694
|
+
columnType: "SQLiteText";
|
|
695
|
+
data: string;
|
|
696
|
+
driverParam: string;
|
|
697
|
+
notNull: true;
|
|
698
|
+
hasDefault: false;
|
|
699
|
+
isPrimaryKey: true;
|
|
700
|
+
isAutoincrement: false;
|
|
701
|
+
hasRuntimeDefault: false;
|
|
702
|
+
enumValues: [string, ...string[]];
|
|
703
|
+
baseColumn: never;
|
|
704
|
+
identity: undefined;
|
|
705
|
+
generated: undefined;
|
|
706
|
+
}, {}, {
|
|
707
|
+
length: number | undefined;
|
|
708
|
+
}>;
|
|
709
|
+
work_id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
710
|
+
name: "work_id";
|
|
711
|
+
tableName: "practice_samples";
|
|
712
|
+
dataType: "string";
|
|
713
|
+
columnType: "SQLiteText";
|
|
714
|
+
data: string;
|
|
715
|
+
driverParam: string;
|
|
716
|
+
notNull: false;
|
|
717
|
+
hasDefault: false;
|
|
718
|
+
isPrimaryKey: false;
|
|
719
|
+
isAutoincrement: false;
|
|
720
|
+
hasRuntimeDefault: false;
|
|
721
|
+
enumValues: [string, ...string[]];
|
|
722
|
+
baseColumn: never;
|
|
723
|
+
identity: undefined;
|
|
724
|
+
generated: undefined;
|
|
725
|
+
}, {}, {
|
|
726
|
+
length: number | undefined;
|
|
727
|
+
}>;
|
|
728
|
+
excerpt_label: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
729
|
+
name: "excerpt_label";
|
|
730
|
+
tableName: "practice_samples";
|
|
731
|
+
dataType: "string";
|
|
732
|
+
columnType: "SQLiteText";
|
|
733
|
+
data: string;
|
|
734
|
+
driverParam: string;
|
|
735
|
+
notNull: true;
|
|
736
|
+
hasDefault: true;
|
|
737
|
+
isPrimaryKey: false;
|
|
738
|
+
isAutoincrement: false;
|
|
739
|
+
hasRuntimeDefault: false;
|
|
740
|
+
enumValues: [string, ...string[]];
|
|
741
|
+
baseColumn: never;
|
|
742
|
+
identity: undefined;
|
|
743
|
+
generated: undefined;
|
|
744
|
+
}, {}, {
|
|
745
|
+
length: number | undefined;
|
|
746
|
+
}>;
|
|
747
|
+
text: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
748
|
+
name: "text";
|
|
749
|
+
tableName: "practice_samples";
|
|
750
|
+
dataType: "string";
|
|
751
|
+
columnType: "SQLiteText";
|
|
752
|
+
data: string;
|
|
753
|
+
driverParam: string;
|
|
754
|
+
notNull: true;
|
|
755
|
+
hasDefault: false;
|
|
756
|
+
isPrimaryKey: false;
|
|
757
|
+
isAutoincrement: false;
|
|
758
|
+
hasRuntimeDefault: false;
|
|
759
|
+
enumValues: [string, ...string[]];
|
|
760
|
+
baseColumn: never;
|
|
761
|
+
identity: undefined;
|
|
762
|
+
generated: undefined;
|
|
763
|
+
}, {}, {
|
|
764
|
+
length: number | undefined;
|
|
765
|
+
}>;
|
|
766
|
+
draft: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
767
|
+
name: "draft";
|
|
768
|
+
tableName: "practice_samples";
|
|
769
|
+
dataType: "string";
|
|
770
|
+
columnType: "SQLiteText";
|
|
771
|
+
data: string;
|
|
772
|
+
driverParam: string;
|
|
773
|
+
notNull: true;
|
|
774
|
+
hasDefault: true;
|
|
775
|
+
isPrimaryKey: false;
|
|
776
|
+
isAutoincrement: false;
|
|
777
|
+
hasRuntimeDefault: false;
|
|
778
|
+
enumValues: [string, ...string[]];
|
|
779
|
+
baseColumn: never;
|
|
780
|
+
identity: undefined;
|
|
781
|
+
generated: undefined;
|
|
782
|
+
}, {}, {
|
|
783
|
+
length: number | undefined;
|
|
784
|
+
}>;
|
|
785
|
+
feedback: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
786
|
+
name: "feedback";
|
|
787
|
+
tableName: "practice_samples";
|
|
788
|
+
dataType: "string";
|
|
789
|
+
columnType: "SQLiteText";
|
|
790
|
+
data: string;
|
|
791
|
+
driverParam: string;
|
|
792
|
+
notNull: false;
|
|
793
|
+
hasDefault: false;
|
|
794
|
+
isPrimaryKey: false;
|
|
795
|
+
isAutoincrement: false;
|
|
796
|
+
hasRuntimeDefault: false;
|
|
797
|
+
enumValues: [string, ...string[]];
|
|
798
|
+
baseColumn: never;
|
|
799
|
+
identity: undefined;
|
|
800
|
+
generated: undefined;
|
|
801
|
+
}, {}, {
|
|
802
|
+
length: number | undefined;
|
|
803
|
+
}>;
|
|
804
|
+
created_at: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
805
|
+
name: "created_at";
|
|
806
|
+
tableName: "practice_samples";
|
|
807
|
+
dataType: "string";
|
|
808
|
+
columnType: "SQLiteText";
|
|
809
|
+
data: string;
|
|
810
|
+
driverParam: string;
|
|
811
|
+
notNull: true;
|
|
812
|
+
hasDefault: false;
|
|
813
|
+
isPrimaryKey: false;
|
|
814
|
+
isAutoincrement: false;
|
|
815
|
+
hasRuntimeDefault: false;
|
|
816
|
+
enumValues: [string, ...string[]];
|
|
817
|
+
baseColumn: never;
|
|
818
|
+
identity: undefined;
|
|
819
|
+
generated: undefined;
|
|
820
|
+
}, {}, {
|
|
821
|
+
length: number | undefined;
|
|
822
|
+
}>;
|
|
823
|
+
updated_at: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
824
|
+
name: "updated_at";
|
|
825
|
+
tableName: "practice_samples";
|
|
826
|
+
dataType: "string";
|
|
827
|
+
columnType: "SQLiteText";
|
|
828
|
+
data: string;
|
|
829
|
+
driverParam: string;
|
|
830
|
+
notNull: true;
|
|
831
|
+
hasDefault: false;
|
|
832
|
+
isPrimaryKey: false;
|
|
833
|
+
isAutoincrement: false;
|
|
834
|
+
hasRuntimeDefault: false;
|
|
835
|
+
enumValues: [string, ...string[]];
|
|
836
|
+
baseColumn: never;
|
|
837
|
+
identity: undefined;
|
|
838
|
+
generated: undefined;
|
|
839
|
+
}, {}, {
|
|
840
|
+
length: number | undefined;
|
|
841
|
+
}>;
|
|
842
|
+
};
|
|
843
|
+
dialect: "sqlite";
|
|
844
|
+
}>;
|
|
845
|
+
/**
|
|
846
|
+
* practice_free_pieces:自由练习篇(练习工作区专属,2026-10)——题目 + 写作要求 + 用户稿 + 点评卡。
|
|
847
|
+
* 空题目(`topic = ''`)正是「待出题」状态(由出题工具写入);无 deleted_at(删除 = 物理删)。
|
|
848
|
+
*/
|
|
849
|
+
export declare const practiceFreePieces: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
|
|
850
|
+
name: "practice_free_pieces";
|
|
851
|
+
schema: undefined;
|
|
852
|
+
columns: {
|
|
853
|
+
id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
854
|
+
name: "id";
|
|
855
|
+
tableName: "practice_free_pieces";
|
|
856
|
+
dataType: "string";
|
|
857
|
+
columnType: "SQLiteText";
|
|
858
|
+
data: string;
|
|
859
|
+
driverParam: string;
|
|
860
|
+
notNull: true;
|
|
861
|
+
hasDefault: false;
|
|
862
|
+
isPrimaryKey: true;
|
|
863
|
+
isAutoincrement: false;
|
|
864
|
+
hasRuntimeDefault: false;
|
|
865
|
+
enumValues: [string, ...string[]];
|
|
866
|
+
baseColumn: never;
|
|
867
|
+
identity: undefined;
|
|
868
|
+
generated: undefined;
|
|
869
|
+
}, {}, {
|
|
870
|
+
length: number | undefined;
|
|
871
|
+
}>;
|
|
872
|
+
topic: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
873
|
+
name: "topic";
|
|
874
|
+
tableName: "practice_free_pieces";
|
|
875
|
+
dataType: "string";
|
|
876
|
+
columnType: "SQLiteText";
|
|
877
|
+
data: string;
|
|
878
|
+
driverParam: string;
|
|
879
|
+
notNull: true;
|
|
880
|
+
hasDefault: true;
|
|
881
|
+
isPrimaryKey: false;
|
|
882
|
+
isAutoincrement: false;
|
|
883
|
+
hasRuntimeDefault: false;
|
|
884
|
+
enumValues: [string, ...string[]];
|
|
885
|
+
baseColumn: never;
|
|
886
|
+
identity: undefined;
|
|
887
|
+
generated: undefined;
|
|
888
|
+
}, {}, {
|
|
889
|
+
length: number | undefined;
|
|
890
|
+
}>;
|
|
891
|
+
brief: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
892
|
+
name: "brief";
|
|
893
|
+
tableName: "practice_free_pieces";
|
|
894
|
+
dataType: "string";
|
|
895
|
+
columnType: "SQLiteText";
|
|
896
|
+
data: string;
|
|
897
|
+
driverParam: string;
|
|
898
|
+
notNull: true;
|
|
899
|
+
hasDefault: true;
|
|
900
|
+
isPrimaryKey: false;
|
|
901
|
+
isAutoincrement: false;
|
|
902
|
+
hasRuntimeDefault: false;
|
|
903
|
+
enumValues: [string, ...string[]];
|
|
904
|
+
baseColumn: never;
|
|
905
|
+
identity: undefined;
|
|
906
|
+
generated: undefined;
|
|
907
|
+
}, {}, {
|
|
908
|
+
length: number | undefined;
|
|
909
|
+
}>;
|
|
910
|
+
topic_source: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
911
|
+
name: "topic_source";
|
|
912
|
+
tableName: "practice_free_pieces";
|
|
913
|
+
dataType: "string";
|
|
914
|
+
columnType: "SQLiteText";
|
|
915
|
+
data: string;
|
|
916
|
+
driverParam: string;
|
|
917
|
+
notNull: true;
|
|
918
|
+
hasDefault: false;
|
|
919
|
+
isPrimaryKey: false;
|
|
920
|
+
isAutoincrement: false;
|
|
921
|
+
hasRuntimeDefault: false;
|
|
922
|
+
enumValues: [string, ...string[]];
|
|
923
|
+
baseColumn: never;
|
|
924
|
+
identity: undefined;
|
|
925
|
+
generated: undefined;
|
|
926
|
+
}, {}, {
|
|
927
|
+
length: number | undefined;
|
|
928
|
+
}>;
|
|
929
|
+
draft: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
930
|
+
name: "draft";
|
|
931
|
+
tableName: "practice_free_pieces";
|
|
932
|
+
dataType: "string";
|
|
933
|
+
columnType: "SQLiteText";
|
|
934
|
+
data: string;
|
|
935
|
+
driverParam: string;
|
|
936
|
+
notNull: true;
|
|
937
|
+
hasDefault: true;
|
|
938
|
+
isPrimaryKey: false;
|
|
939
|
+
isAutoincrement: false;
|
|
940
|
+
hasRuntimeDefault: false;
|
|
941
|
+
enumValues: [string, ...string[]];
|
|
942
|
+
baseColumn: never;
|
|
943
|
+
identity: undefined;
|
|
944
|
+
generated: undefined;
|
|
945
|
+
}, {}, {
|
|
946
|
+
length: number | undefined;
|
|
947
|
+
}>;
|
|
948
|
+
feedback: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
949
|
+
name: "feedback";
|
|
950
|
+
tableName: "practice_free_pieces";
|
|
951
|
+
dataType: "string";
|
|
952
|
+
columnType: "SQLiteText";
|
|
953
|
+
data: string;
|
|
954
|
+
driverParam: string;
|
|
955
|
+
notNull: false;
|
|
956
|
+
hasDefault: false;
|
|
957
|
+
isPrimaryKey: false;
|
|
958
|
+
isAutoincrement: false;
|
|
959
|
+
hasRuntimeDefault: false;
|
|
960
|
+
enumValues: [string, ...string[]];
|
|
961
|
+
baseColumn: never;
|
|
962
|
+
identity: undefined;
|
|
963
|
+
generated: undefined;
|
|
964
|
+
}, {}, {
|
|
965
|
+
length: number | undefined;
|
|
966
|
+
}>;
|
|
967
|
+
created_at: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
968
|
+
name: "created_at";
|
|
969
|
+
tableName: "practice_free_pieces";
|
|
970
|
+
dataType: "string";
|
|
971
|
+
columnType: "SQLiteText";
|
|
972
|
+
data: string;
|
|
973
|
+
driverParam: string;
|
|
974
|
+
notNull: true;
|
|
975
|
+
hasDefault: false;
|
|
976
|
+
isPrimaryKey: false;
|
|
977
|
+
isAutoincrement: false;
|
|
978
|
+
hasRuntimeDefault: false;
|
|
979
|
+
enumValues: [string, ...string[]];
|
|
980
|
+
baseColumn: never;
|
|
981
|
+
identity: undefined;
|
|
982
|
+
generated: undefined;
|
|
983
|
+
}, {}, {
|
|
984
|
+
length: number | undefined;
|
|
985
|
+
}>;
|
|
986
|
+
updated_at: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
987
|
+
name: "updated_at";
|
|
988
|
+
tableName: "practice_free_pieces";
|
|
989
|
+
dataType: "string";
|
|
990
|
+
columnType: "SQLiteText";
|
|
991
|
+
data: string;
|
|
992
|
+
driverParam: string;
|
|
993
|
+
notNull: true;
|
|
994
|
+
hasDefault: false;
|
|
995
|
+
isPrimaryKey: false;
|
|
996
|
+
isAutoincrement: false;
|
|
997
|
+
hasRuntimeDefault: false;
|
|
998
|
+
enumValues: [string, ...string[]];
|
|
999
|
+
baseColumn: never;
|
|
1000
|
+
identity: undefined;
|
|
1001
|
+
generated: undefined;
|
|
1002
|
+
}, {}, {
|
|
1003
|
+
length: number | undefined;
|
|
1004
|
+
}>;
|
|
1005
|
+
};
|
|
1006
|
+
dialect: "sqlite";
|
|
1007
|
+
}>;
|
|
1008
|
+
/**
|
|
1009
|
+
* practice_style_packs:风格说明素材包(2026-10)——只存**用户对作家风格说明的覆盖**;
|
|
1010
|
+
* 无覆盖 = 无行(读侧回退 shared 预置常量),删除行 = 恢复预置。主键 = shared `AUTHOR_CATALOG` 的键。
|
|
1011
|
+
*/
|
|
1012
|
+
export declare const practiceStylePacks: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
|
|
1013
|
+
name: "practice_style_packs";
|
|
1014
|
+
schema: undefined;
|
|
1015
|
+
columns: {
|
|
1016
|
+
author_id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
1017
|
+
name: "author_id";
|
|
1018
|
+
tableName: "practice_style_packs";
|
|
1019
|
+
dataType: "string";
|
|
1020
|
+
columnType: "SQLiteText";
|
|
1021
|
+
data: string;
|
|
1022
|
+
driverParam: string;
|
|
1023
|
+
notNull: true;
|
|
1024
|
+
hasDefault: false;
|
|
1025
|
+
isPrimaryKey: true;
|
|
1026
|
+
isAutoincrement: false;
|
|
1027
|
+
hasRuntimeDefault: false;
|
|
1028
|
+
enumValues: [string, ...string[]];
|
|
1029
|
+
baseColumn: never;
|
|
1030
|
+
identity: undefined;
|
|
1031
|
+
generated: undefined;
|
|
1032
|
+
}, {}, {
|
|
1033
|
+
length: number | undefined;
|
|
1034
|
+
}>;
|
|
1035
|
+
content: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
1036
|
+
name: "content";
|
|
1037
|
+
tableName: "practice_style_packs";
|
|
1038
|
+
dataType: "string";
|
|
1039
|
+
columnType: "SQLiteText";
|
|
1040
|
+
data: string;
|
|
1041
|
+
driverParam: string;
|
|
1042
|
+
notNull: true;
|
|
1043
|
+
hasDefault: false;
|
|
1044
|
+
isPrimaryKey: false;
|
|
1045
|
+
isAutoincrement: false;
|
|
1046
|
+
hasRuntimeDefault: false;
|
|
1047
|
+
enumValues: [string, ...string[]];
|
|
1048
|
+
baseColumn: never;
|
|
1049
|
+
identity: undefined;
|
|
1050
|
+
generated: undefined;
|
|
1051
|
+
}, {}, {
|
|
1052
|
+
length: number | undefined;
|
|
1053
|
+
}>;
|
|
1054
|
+
updated_at: import("drizzle-orm/sqlite-core").SQLiteColumn<{
|
|
1055
|
+
name: "updated_at";
|
|
1056
|
+
tableName: "practice_style_packs";
|
|
1057
|
+
dataType: "string";
|
|
1058
|
+
columnType: "SQLiteText";
|
|
1059
|
+
data: string;
|
|
1060
|
+
driverParam: string;
|
|
1061
|
+
notNull: true;
|
|
1062
|
+
hasDefault: false;
|
|
1063
|
+
isPrimaryKey: false;
|
|
1064
|
+
isAutoincrement: false;
|
|
1065
|
+
hasRuntimeDefault: false;
|
|
1066
|
+
enumValues: [string, ...string[]];
|
|
1067
|
+
baseColumn: never;
|
|
1068
|
+
identity: undefined;
|
|
1069
|
+
generated: undefined;
|
|
1070
|
+
}, {}, {
|
|
1071
|
+
length: number | undefined;
|
|
1072
|
+
}>;
|
|
1073
|
+
};
|
|
1074
|
+
dialect: "sqlite";
|
|
1075
|
+
}>;
|
|
680
1076
|
/**
|
|
681
1077
|
* 全部业务表 + 索引的建表 SQL(幂等:CREATE TABLE/INDEX IF NOT EXISTS)——建表执行的事实来源。
|
|
682
1078
|
* 与上方 sqliteTable 定义必须同步(schema.test.ts 对齐断言覆盖)。
|
|
683
1079
|
*/
|
|
684
|
-
export declare const CREATE_TABLES_SQL = "\n-- entities\uFF1A\u5B9E\u4F53\u8868\uFF08\u4EBA\u7269/\u8BBE\u5B9A/\u5730\u70B9/\u4F0F\u7B14/\u65F6\u95F4\u8F74\u4E8B\u4EF6/\u65F6\u95F4\u6807\u7B7E\u70B9\uFF09\nCREATE TABLE IF NOT EXISTS entities (\n id TEXT PRIMARY KEY,\n type TEXT NOT NULL CHECK(type IN ('character', 'setting', 'location', 'hook', 'event', 'timepoint', 'reference')),\n name TEXT NOT NULL,\n data TEXT NOT NULL DEFAULT '{}', -- JSON: \u5404\u7C7B\u578B\u7684\u4E13\u5C5E\u5B57\u6BB5\n sort_order INTEGER, -- \u65F6\u95F4\u8F74\u7EBF\u6027\u5E8F\uFF08G2 \u4FEE\u8BA2\uFF09\uFF1Aevent \u4E0E timepoint \u5404\u7C7B\u578B\u5185\u7EBF\u6027\uFF08\u5404\u81EA 0..n-1\uFF09\uFF0C\u5176\u4F59\u7C7B\u578B\u6052\u4E3A NULL\n created_at TEXT NOT NULL, -- ISO 8601\uFF0C\u5E94\u7528\u5C42\u5199\u5165\n updated_at TEXT NOT NULL, -- ISO 8601\uFF0C\u5E94\u7528\u5C42\u5199\u5165\uFF08\u63D0\u6848\u5FEB\u7167\u6BD4\u5BF9\uFF09\n deleted_at TEXT -- \u8F6F\u5220\u6807\u8BB0\uFF0CNULL \u8868\u793A\u672A\u5220\u9664\uFF1B\u975E NULL \u65F6\u8BE5\u5B9E\u4F53\u8FDB\u5165\u56DE\u6536\u7AD9\uFF0C\u672C\u4F53\u4FDD\u7559\u53EF\u8FD8\u539F\n);\n\n-- relation_records\uFF1A\u901A\u7528\u5173\u7CFB\u8868\nCREATE TABLE IF NOT EXISTS relation_records (\n id TEXT PRIMARY KEY,\n source_type TEXT NOT NULL, -- \u7AEF\u70B9\u7C7B\u578B\uFF1A\u5B9E\u4F53 'character'|'setting'|'location'|'hook'|'event'\uFF0C\u5927\u7EB2\u8282\u70B9 'outline_node'\n source_id TEXT NOT NULL,\n target_type TEXT NOT NULL,\n target_id TEXT NOT NULL,\n relation_type TEXT NOT NULL,\n metadata TEXT, -- JSON \u6269\u5C55\u5143\u6570\u636E\n created_at TEXT NOT NULL, -- ISO 8601\uFF0C\u5E94\u7528\u5C42\u5199\u5165\n updated_at TEXT NOT NULL, -- ISO 8601\uFF0C\u5E94\u7528\u5C42\u5199\u5165\uFF08\u63D0\u6848\u5FEB\u7167\u6BD4\u5BF9\uFF1B\u8F6F\u5220/\u8FD8\u539F\u4EA6\u66F4\u65B0\uFF09\n deleted_at TEXT -- \u7EA7\u8054\u8F6F\u5220\u6807\u8BB0\uFF1A\u4EC5\u5B9E\u4F53/\u8282\u70B9\u7EA7\u8054\u5220\u9664\u65F6\u5199\u5165\uFF1B\n -- \u624B\u52A8\u5220\u9664\u5173\u7CFB = \u7269\u7406\u5220\uFF08\u4E0D\u7F6E deleted_at\uFF0C\u4E0D\u8FDB\u5165\u56DE\u6536\u7AD9\uFF09\n);\n\n-- \u7D22\u5F15\uFF08\u8865\uFF09\uFF1Ak \u8DF3\u904D\u5386\u4E0E\u9AD8\u9891\u5173\u7CFB\u67E5\u8BE2\uFF08\u90E8\u5206\u7D22\u5F15\uFF0C\u4EC5\u8986\u76D6\u672A\u8F6F\u5220\u884C\uFF09\nCREATE INDEX IF NOT EXISTS idx_relation_source ON relation_records(source_id) WHERE deleted_at IS NULL;\nCREATE INDEX IF NOT EXISTS idx_relation_target ON relation_records(target_id) WHERE deleted_at IS NULL;\nCREATE INDEX IF NOT EXISTS idx_relation_type ON relation_records(relation_type) WHERE deleted_at IS NULL;\n\n-- delta_records\uFF1A\u5C5E\u6027\u53D8\u66F4\u8868\nCREATE TABLE IF NOT EXISTS delta_records (\n id TEXT PRIMARY KEY,\n node_id TEXT NOT NULL, -- \u89E6\u53D1\u53D8\u66F4\u7684\u5927\u7EB2\u8282\u70B9\n target_type TEXT NOT NULL,\n target_id TEXT NOT NULL,\n changes TEXT NOT NULL, -- JSON: [{field, op, from?, to?, value?}]\n description TEXT NOT NULL, -- \u4EBA\u7C7B\u53EF\u8BFB\u63CF\u8FF0\n \"order\" INTEGER NOT NULL DEFAULT 0, -- \u540C\u4E00\u8282\u70B9\u5185\u591A\u4E2A Delta \u7684\u6392\u5E8F\uFF08\u5168\u5C40\u5355\u8C03\u9012\u589E\uFF0C\u670D\u52A1\u7AEF\u751F\u6210\uFF09\n created_at TEXT NOT NULL, -- ISO 8601\uFF0C\u5E94\u7528\u5C42\u5199\u5165\n updated_at TEXT NOT NULL, -- ISO 8601\uFF0C\u5E94\u7528\u5C42\u5199\u5165\uFF08\u63D0\u6848\u5FEB\u7167\u6BD4\u5BF9\uFF09\n deleted_at TEXT -- \u7EA7\u8054\u8F6F\u5220\u6807\u8BB0\uFF1A\u4EC5\u5B9E\u4F53/\u8282\u70B9\u7EA7\u8054\u5220\u9664\u65F6\u5199\u5165\u3002\n -- \u53EF\u89C1\u6027\u8054\u52A8\u89E6\u53D1\u8282\u70B9\u4E0E\u76EE\u6807\u5B9E\u4F53\uFF1A\u4EFB\u4E00\u7AEF\u8F6F\u5220\u5373\u4E0D\u53EF\u89C1\n);\n\n-- document_records\uFF1A\u5757\u6587\u6863\u8868\uFF08\u7AE0\u6B63\u6587 / \u53C2\u8003\u8D44\u6599\u6B63\u6587\uFF0C2026-09\uFF09\nCREATE TABLE IF NOT EXISTS document_records (\n owner_kind TEXT NOT NULL, -- 'chapter' | 'reference'\uFF08\u679A\u4E3E\u503C\u5C11\u4E14\u7A33\u5B9A\uFF0C\u4E0D\u52A0 CHECK\uFF09\n owner_id TEXT NOT NULL, -- 'ch-*'\uFF08\u7AE0\u8282\u70B9 id\uFF09| 'ref-*'\uFF08\u53C2\u8003\u8D44\u6599\u5B9E\u4F53 id\uFF09\n content TEXT NOT NULL, -- \u5757\u6570\u7EC4 JSON \u5B57\u7B26\u4E32\uFF08\u771F\u76F8\uFF1B\u670D\u52A1\u7AEF\u8BFB\u8DEF\u5F84\u4E0D\u89E3\u6790\uFF09\n content_text TEXT NOT NULL, -- \u670D\u52A1\u7AEF\u6D3E\u751F\u7684\u8F7B\u91CF md \u6295\u5F71\uFF08AI \u8BFB\u53D6/\u5217\u8868\u6458\u8981/\u641C\u7D22/\u5B57\u6570\uFF09\n created_at TEXT NOT NULL, -- ISO 8601\uFF0C\u5E94\u7528\u5C42\u5199\u5165\n updated_at TEXT NOT NULL, -- ISO 8601\uFF0C\u5E94\u7528\u5C42\u5199\u5165\uFF08\u7248\u672C\u6233\uFF1A\u591A\u6807\u7B7E\u9875\u9632\u8986\u76D6\uFF09\n PRIMARY KEY (owner_kind, owner_id) -- \u4E00 owner \u4E00\u884C\uFF08upsert \u8986\u76D6\uFF0C\u884C\u968F owner \u751F\u547D\u5468\u671F\uFF09\n);\n\n";
|
|
1080
|
+
export declare const CREATE_TABLES_SQL = "\n-- entities\uFF1A\u5B9E\u4F53\u8868\uFF08\u4EBA\u7269/\u8BBE\u5B9A/\u5730\u70B9/\u4F0F\u7B14/\u65F6\u95F4\u8F74\u4E8B\u4EF6/\u65F6\u95F4\u6807\u7B7E\u70B9\uFF09\nCREATE TABLE IF NOT EXISTS entities (\n id TEXT PRIMARY KEY,\n type TEXT NOT NULL CHECK(type IN ('character', 'setting', 'location', 'hook', 'event', 'timepoint', 'reference')),\n name TEXT NOT NULL,\n data TEXT NOT NULL DEFAULT '{}', -- JSON: \u5404\u7C7B\u578B\u7684\u4E13\u5C5E\u5B57\u6BB5\n sort_order INTEGER, -- \u65F6\u95F4\u8F74\u7EBF\u6027\u5E8F\uFF08G2 \u4FEE\u8BA2\uFF09\uFF1Aevent \u4E0E timepoint \u5404\u7C7B\u578B\u5185\u7EBF\u6027\uFF08\u5404\u81EA 0..n-1\uFF09\uFF0C\u5176\u4F59\u7C7B\u578B\u6052\u4E3A NULL\n created_at TEXT NOT NULL, -- ISO 8601\uFF0C\u5E94\u7528\u5C42\u5199\u5165\n updated_at TEXT NOT NULL, -- ISO 8601\uFF0C\u5E94\u7528\u5C42\u5199\u5165\uFF08\u63D0\u6848\u5FEB\u7167\u6BD4\u5BF9\uFF09\n deleted_at TEXT -- \u8F6F\u5220\u6807\u8BB0\uFF0CNULL \u8868\u793A\u672A\u5220\u9664\uFF1B\u975E NULL \u65F6\u8BE5\u5B9E\u4F53\u8FDB\u5165\u56DE\u6536\u7AD9\uFF0C\u672C\u4F53\u4FDD\u7559\u53EF\u8FD8\u539F\n);\n\n-- relation_records\uFF1A\u901A\u7528\u5173\u7CFB\u8868\nCREATE TABLE IF NOT EXISTS relation_records (\n id TEXT PRIMARY KEY,\n source_type TEXT NOT NULL, -- \u7AEF\u70B9\u7C7B\u578B\uFF1A\u5B9E\u4F53 'character'|'setting'|'location'|'hook'|'event'\uFF0C\u5927\u7EB2\u8282\u70B9 'outline_node'\n source_id TEXT NOT NULL,\n target_type TEXT NOT NULL,\n target_id TEXT NOT NULL,\n relation_type TEXT NOT NULL,\n metadata TEXT, -- JSON \u6269\u5C55\u5143\u6570\u636E\n created_at TEXT NOT NULL, -- ISO 8601\uFF0C\u5E94\u7528\u5C42\u5199\u5165\n updated_at TEXT NOT NULL, -- ISO 8601\uFF0C\u5E94\u7528\u5C42\u5199\u5165\uFF08\u63D0\u6848\u5FEB\u7167\u6BD4\u5BF9\uFF1B\u8F6F\u5220/\u8FD8\u539F\u4EA6\u66F4\u65B0\uFF09\n deleted_at TEXT -- \u7EA7\u8054\u8F6F\u5220\u6807\u8BB0\uFF1A\u4EC5\u5B9E\u4F53/\u8282\u70B9\u7EA7\u8054\u5220\u9664\u65F6\u5199\u5165\uFF1B\n -- \u624B\u52A8\u5220\u9664\u5173\u7CFB = \u7269\u7406\u5220\uFF08\u4E0D\u7F6E deleted_at\uFF0C\u4E0D\u8FDB\u5165\u56DE\u6536\u7AD9\uFF09\n);\n\n-- \u7D22\u5F15\uFF08\u8865\uFF09\uFF1Ak \u8DF3\u904D\u5386\u4E0E\u9AD8\u9891\u5173\u7CFB\u67E5\u8BE2\uFF08\u90E8\u5206\u7D22\u5F15\uFF0C\u4EC5\u8986\u76D6\u672A\u8F6F\u5220\u884C\uFF09\nCREATE INDEX IF NOT EXISTS idx_relation_source ON relation_records(source_id) WHERE deleted_at IS NULL;\nCREATE INDEX IF NOT EXISTS idx_relation_target ON relation_records(target_id) WHERE deleted_at IS NULL;\nCREATE INDEX IF NOT EXISTS idx_relation_type ON relation_records(relation_type) WHERE deleted_at IS NULL;\n\n-- delta_records\uFF1A\u5C5E\u6027\u53D8\u66F4\u8868\nCREATE TABLE IF NOT EXISTS delta_records (\n id TEXT PRIMARY KEY,\n node_id TEXT NOT NULL, -- \u89E6\u53D1\u53D8\u66F4\u7684\u5927\u7EB2\u8282\u70B9\n target_type TEXT NOT NULL,\n target_id TEXT NOT NULL,\n changes TEXT NOT NULL, -- JSON: [{field, op, from?, to?, value?}]\n description TEXT NOT NULL, -- \u4EBA\u7C7B\u53EF\u8BFB\u63CF\u8FF0\n \"order\" INTEGER NOT NULL DEFAULT 0, -- \u540C\u4E00\u8282\u70B9\u5185\u591A\u4E2A Delta \u7684\u6392\u5E8F\uFF08\u5168\u5C40\u5355\u8C03\u9012\u589E\uFF0C\u670D\u52A1\u7AEF\u751F\u6210\uFF09\n created_at TEXT NOT NULL, -- ISO 8601\uFF0C\u5E94\u7528\u5C42\u5199\u5165\n updated_at TEXT NOT NULL, -- ISO 8601\uFF0C\u5E94\u7528\u5C42\u5199\u5165\uFF08\u63D0\u6848\u5FEB\u7167\u6BD4\u5BF9\uFF09\n deleted_at TEXT -- \u7EA7\u8054\u8F6F\u5220\u6807\u8BB0\uFF1A\u4EC5\u5B9E\u4F53/\u8282\u70B9\u7EA7\u8054\u5220\u9664\u65F6\u5199\u5165\u3002\n -- \u53EF\u89C1\u6027\u8054\u52A8\u89E6\u53D1\u8282\u70B9\u4E0E\u76EE\u6807\u5B9E\u4F53\uFF1A\u4EFB\u4E00\u7AEF\u8F6F\u5220\u5373\u4E0D\u53EF\u89C1\n);\n\n-- document_records\uFF1A\u5757\u6587\u6863\u8868\uFF08\u7AE0\u6B63\u6587 / \u53C2\u8003\u8D44\u6599\u6B63\u6587\uFF0C2026-09\uFF09\nCREATE TABLE IF NOT EXISTS document_records (\n owner_kind TEXT NOT NULL, -- 'chapter' | 'reference'\uFF08\u679A\u4E3E\u503C\u5C11\u4E14\u7A33\u5B9A\uFF0C\u4E0D\u52A0 CHECK\uFF09\n owner_id TEXT NOT NULL, -- 'ch-*'\uFF08\u7AE0\u8282\u70B9 id\uFF09| 'ref-*'\uFF08\u53C2\u8003\u8D44\u6599\u5B9E\u4F53 id\uFF09\n content TEXT NOT NULL, -- \u5757\u6570\u7EC4 JSON \u5B57\u7B26\u4E32\uFF08\u771F\u76F8\uFF1B\u670D\u52A1\u7AEF\u8BFB\u8DEF\u5F84\u4E0D\u89E3\u6790\uFF09\n content_text TEXT NOT NULL, -- \u670D\u52A1\u7AEF\u6D3E\u751F\u7684\u8F7B\u91CF md \u6295\u5F71\uFF08AI \u8BFB\u53D6/\u5217\u8868\u6458\u8981/\u641C\u7D22/\u5B57\u6570\uFF09\n created_at TEXT NOT NULL, -- ISO 8601\uFF0C\u5E94\u7528\u5C42\u5199\u5165\n updated_at TEXT NOT NULL, -- ISO 8601\uFF0C\u5E94\u7528\u5C42\u5199\u5165\uFF08\u7248\u672C\u6233\uFF1A\u591A\u6807\u7B7E\u9875\u9632\u8986\u76D6\uFF09\n PRIMARY KEY (owner_kind, owner_id) -- \u4E00 owner \u4E00\u884C\uFF08upsert \u8986\u76D6\uFF0C\u884C\u968F owner \u751F\u547D\u5468\u671F\uFF09\n);\n\n-- practice_samples\uFF1A\u8303\u6587\u6837\u672C\uFF08\u7EC3\u4E60\u5DE5\u4F5C\u533A\u4E13\u5C5E\uFF0C2026-10\uFF09\nCREATE TABLE IF NOT EXISTS practice_samples (\n id TEXT PRIMARY KEY, -- 'ps-*'\n work_id TEXT, -- \u5173\u8054\u9884\u7F6E\u4F5C\u54C1 id\uFF08NULL = \u300C\u5176\u4ED6\u300D\uFF1B\u65E0 FK\uFF0C\u5B58\u5728\u6027\u7531\u5199\u5165\u4FA7\u5B88\u536B\uFF09\n excerpt_label TEXT NOT NULL DEFAULT '', -- \u7247\u6BB5\u8BF4\u660E\uFF08\u7A7A\u4E32 = \u672A\u586B\uFF1B\u4E0A\u9650 = \u5E38\u91CF MAX_PRACTICE_EXCERPT_LABEL_CHARS\uFF09\n text TEXT NOT NULL, -- \u8303\u6587\u5FEB\u7167\uFF08\u4E0D\u53EF\u53D8\uFF1B\u4E0A\u9650 = \u5E38\u91CF MAX_PRACTICE_SAMPLE_CHARS\uFF09\n draft TEXT NOT NULL DEFAULT '', -- \u7528\u6237\u4EFF\u5199\u7A3F\uFF08**\u53EA\u6709\u7528\u6237\u80FD\u5199**\uFF09\n feedback TEXT, -- \u70B9\u8BC4\u5361 JSON\uFF08AI \u4EA7\u51FA\uFF1BNULL = \u672A\u70B9\u8BC4\uFF09\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL\n);\n\n-- practice_free_pieces\uFF1A\u81EA\u7531\u7EC3\u4E60\u7BC7\uFF08\u7EC3\u4E60\u5DE5\u4F5C\u533A\u4E13\u5C5E\uFF0C2026-10\uFF09\nCREATE TABLE IF NOT EXISTS practice_free_pieces (\n id TEXT PRIMARY KEY, -- 'pf-*'\n topic TEXT NOT NULL DEFAULT '', -- \u9898\u76EE\uFF08\u7A7A\u4E32 = \u5F85\u51FA\u9898\uFF1B\u4E0A\u9650 = \u5E38\u91CF MAX_PRACTICE_TOPIC_CHARS\uFF09\n brief TEXT NOT NULL DEFAULT '', -- \u5199\u4F5C\u8981\u6C42\uFF08\u7A7A\u4E32 = \u65E0\uFF1B\u4E0A\u9650 = \u5E38\u91CF MAX_PRACTICE_BRIEF_CHARS\uFF09\n topic_source TEXT NOT NULL, -- 'user' | 'ai'\uFF08\u51FA\u9898\u6765\u6E90\uFF1B\u4E5F\u662F\u300C\u5F85\u51FA\u9898\u300D\u72B6\u6001\u7684\u5224\u636E\uFF09\n draft TEXT NOT NULL DEFAULT '', -- \u7528\u6237\u7A3F\u4EF6\uFF08**\u53EA\u6709\u7528\u6237\u80FD\u5199**\uFF1B\u4E0A\u9650\u540C\u4EFF\u5199\u7A3F\u5E38\u91CF\uFF09\n feedback TEXT, -- \u70B9\u8BC4\u5361 JSON\uFF08AI \u4EA7\u51FA\uFF1BNULL = \u672A\u70B9\u8BC4\uFF09\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL\n);\n\n-- practice_style_packs\uFF1A\u98CE\u683C\u8BF4\u660E\u7D20\u6750\u5305\uFF082026-10\uFF09\nCREATE TABLE IF NOT EXISTS practice_style_packs (\n author_id TEXT PRIMARY KEY, -- \u9884\u7F6E\u4F5C\u5BB6 id\uFF08shared AUTHOR_CATALOG \u7684\u952E\uFF09\n content TEXT NOT NULL, -- \u7528\u6237\u5BF9\u4F5C\u5BB6\u98CE\u683C\u8BF4\u660E\u7684\u8986\u76D6\uFF08\u4E0A\u9650 = \u5E38\u91CF MAX_PRACTICE_STYLE_PACK_CHARS\uFF09\n updated_at TEXT NOT NULL -- \u65E0\u8986\u76D6 = \u65E0\u884C\uFF08\u8BFB\u4FA7\u56DE\u9000 shared \u5E38\u91CF\u91CC\u7684\u9884\u7F6E\u6587\u672C\uFF09\n);\n\n";
|
|
685
1081
|
//# sourceMappingURL=tables.d.ts.map
|
package/dist/tables.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../src/tables.ts"],"names":[],"mappings":"AAiBA,iDAAiD;AACjD,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBpB,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoB3B,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcxB,CAAC;AAEF,mEAAmE;AAEnE;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW3B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../src/tables.ts"],"names":[],"mappings":"AAiBA,iDAAiD;AACjD,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBpB,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoB3B,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcxB,CAAC;AAEF,mEAAmE;AAEnE;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW3B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS1B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS7B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI7B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB,q5PA0F7B,CAAC"}
|
package/dist/tables.js
CHANGED
|
@@ -73,6 +73,45 @@ export const documentRecords = sqliteTable("document_records", {
|
|
|
73
73
|
created_at: text("created_at").notNull(),
|
|
74
74
|
updated_at: text("updated_at").notNull(), // 版本戳:多标签页防覆盖(base_updated_at 比对)
|
|
75
75
|
}, (t) => [primaryKey({ columns: [t.owner_kind, t.owner_id] })]);
|
|
76
|
+
/**
|
|
77
|
+
* practice_samples:范文样本(练习工作区专属,2026-10)——`kind = "practice"` 的数据,
|
|
78
|
+
* 与小说语义表互不混装(不进 Delta / 关系表 / 回收站);一工作区 = 一位预置作家,故无归属列。
|
|
79
|
+
* `work_id` 无外键(存在性由写入侧按 shared 预置作品清单守卫);无 deleted_at(删除 = 物理删)。
|
|
80
|
+
* `feedback` JSON 列保持 **text 模式**(坏 JSON 防御在行映射层,见 queries/practice.ts parseFeedbackColumn)。
|
|
81
|
+
*/
|
|
82
|
+
export const practiceSamples = sqliteTable("practice_samples", {
|
|
83
|
+
id: text("id").primaryKey(), // 'ps-*'
|
|
84
|
+
work_id: text("work_id"), // 关联预置作品 id(NULL = 「其他」)
|
|
85
|
+
excerpt_label: text("excerpt_label").notNull().default(""), // 片段说明(空串 = 未填)
|
|
86
|
+
text: text("text").notNull(), // 范文快照(不可变)
|
|
87
|
+
draft: text("draft").notNull().default(""), // 用户仿写稿(只有用户能写)
|
|
88
|
+
feedback: text("feedback"), // 点评卡 JSON(AI 产出;NULL = 未点评)
|
|
89
|
+
created_at: text("created_at").notNull(), // ISO 8601,应用层写入
|
|
90
|
+
updated_at: text("updated_at").notNull(),
|
|
91
|
+
});
|
|
92
|
+
/**
|
|
93
|
+
* practice_free_pieces:自由练习篇(练习工作区专属,2026-10)——题目 + 写作要求 + 用户稿 + 点评卡。
|
|
94
|
+
* 空题目(`topic = ''`)正是「待出题」状态(由出题工具写入);无 deleted_at(删除 = 物理删)。
|
|
95
|
+
*/
|
|
96
|
+
export const practiceFreePieces = sqliteTable("practice_free_pieces", {
|
|
97
|
+
id: text("id").primaryKey(), // 'pf-*'
|
|
98
|
+
topic: text("topic").notNull().default(""), // 题目(空串 = 待出题)
|
|
99
|
+
brief: text("brief").notNull().default(""), // 写作要求(空串 = 无)
|
|
100
|
+
topic_source: text("topic_source").notNull(), // 'user' | 'ai'(出题来源;枚举值少且稳定,不加 CHECK)
|
|
101
|
+
draft: text("draft").notNull().default(""), // 用户稿件(只有用户能写)
|
|
102
|
+
feedback: text("feedback"), // 点评卡 JSON(AI 产出;NULL = 未点评)
|
|
103
|
+
created_at: text("created_at").notNull(), // ISO 8601,应用层写入
|
|
104
|
+
updated_at: text("updated_at").notNull(),
|
|
105
|
+
});
|
|
106
|
+
/**
|
|
107
|
+
* practice_style_packs:风格说明素材包(2026-10)——只存**用户对作家风格说明的覆盖**;
|
|
108
|
+
* 无覆盖 = 无行(读侧回退 shared 预置常量),删除行 = 恢复预置。主键 = shared `AUTHOR_CATALOG` 的键。
|
|
109
|
+
*/
|
|
110
|
+
export const practiceStylePacks = sqliteTable("practice_style_packs", {
|
|
111
|
+
author_id: text("author_id").primaryKey(), // 预置作家 id
|
|
112
|
+
content: text("content").notNull(), // 用户覆盖内容
|
|
113
|
+
updated_at: text("updated_at").notNull(), // ISO 8601,应用层写入
|
|
114
|
+
});
|
|
76
115
|
/**
|
|
77
116
|
* 全部业务表 + 索引的建表 SQL(幂等:CREATE TABLE/INDEX IF NOT EXISTS)——建表执行的事实来源。
|
|
78
117
|
* 与上方 sqliteTable 定义必须同步(schema.test.ts 对齐断言覆盖)。
|
|
@@ -136,5 +175,36 @@ CREATE TABLE IF NOT EXISTS document_records (
|
|
|
136
175
|
PRIMARY KEY (owner_kind, owner_id) -- 一 owner 一行(upsert 覆盖,行随 owner 生命周期)
|
|
137
176
|
);
|
|
138
177
|
|
|
178
|
+
-- practice_samples:范文样本(练习工作区专属,2026-10)
|
|
179
|
+
CREATE TABLE IF NOT EXISTS practice_samples (
|
|
180
|
+
id TEXT PRIMARY KEY, -- 'ps-*'
|
|
181
|
+
work_id TEXT, -- 关联预置作品 id(NULL = 「其他」;无 FK,存在性由写入侧守卫)
|
|
182
|
+
excerpt_label TEXT NOT NULL DEFAULT '', -- 片段说明(空串 = 未填;上限 = 常量 MAX_PRACTICE_EXCERPT_LABEL_CHARS)
|
|
183
|
+
text TEXT NOT NULL, -- 范文快照(不可变;上限 = 常量 MAX_PRACTICE_SAMPLE_CHARS)
|
|
184
|
+
draft TEXT NOT NULL DEFAULT '', -- 用户仿写稿(**只有用户能写**)
|
|
185
|
+
feedback TEXT, -- 点评卡 JSON(AI 产出;NULL = 未点评)
|
|
186
|
+
created_at TEXT NOT NULL,
|
|
187
|
+
updated_at TEXT NOT NULL
|
|
188
|
+
);
|
|
189
|
+
|
|
190
|
+
-- practice_free_pieces:自由练习篇(练习工作区专属,2026-10)
|
|
191
|
+
CREATE TABLE IF NOT EXISTS practice_free_pieces (
|
|
192
|
+
id TEXT PRIMARY KEY, -- 'pf-*'
|
|
193
|
+
topic TEXT NOT NULL DEFAULT '', -- 题目(空串 = 待出题;上限 = 常量 MAX_PRACTICE_TOPIC_CHARS)
|
|
194
|
+
brief TEXT NOT NULL DEFAULT '', -- 写作要求(空串 = 无;上限 = 常量 MAX_PRACTICE_BRIEF_CHARS)
|
|
195
|
+
topic_source TEXT NOT NULL, -- 'user' | 'ai'(出题来源;也是「待出题」状态的判据)
|
|
196
|
+
draft TEXT NOT NULL DEFAULT '', -- 用户稿件(**只有用户能写**;上限同仿写稿常量)
|
|
197
|
+
feedback TEXT, -- 点评卡 JSON(AI 产出;NULL = 未点评)
|
|
198
|
+
created_at TEXT NOT NULL,
|
|
199
|
+
updated_at TEXT NOT NULL
|
|
200
|
+
);
|
|
201
|
+
|
|
202
|
+
-- practice_style_packs:风格说明素材包(2026-10)
|
|
203
|
+
CREATE TABLE IF NOT EXISTS practice_style_packs (
|
|
204
|
+
author_id TEXT PRIMARY KEY, -- 预置作家 id(shared AUTHOR_CATALOG 的键)
|
|
205
|
+
content TEXT NOT NULL, -- 用户对作家风格说明的覆盖(上限 = 常量 MAX_PRACTICE_STYLE_PACK_CHARS)
|
|
206
|
+
updated_at TEXT NOT NULL -- 无覆盖 = 无行(读侧回退 shared 常量里的预置文本)
|
|
207
|
+
);
|
|
208
|
+
|
|
139
209
|
`;
|
|
140
210
|
//# sourceMappingURL=tables.js.map
|
package/dist/tables.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tables.js","sourceRoot":"","sources":["../src/tables.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tables.js","sourceRoot":"","sources":["../src/tables.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@whispering233/ai-editor-db",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.58",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "数据库层:better-sqlite3 连接 / 建表 / 查询",
|
|
6
6
|
"type": "module",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"postpack": "node ../../scripts/restore-package-json.mjs"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@whispering233/ai-editor-shared": "0.0.
|
|
29
|
+
"@whispering233/ai-editor-shared": "0.0.58",
|
|
30
30
|
"better-sqlite3": "^13.0.0",
|
|
31
31
|
"drizzle-orm": "0.45.2"
|
|
32
32
|
},
|