fac-shared-db 1.1.1 → 1.3.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.
@@ -1,4 +1,4 @@
1
- import mongoose from "mongoose";
1
+ import mongoose, { type Connection, type Model, type Schema } from "mongoose";
2
2
  /**
3
3
  * Conecta ao MongoDB via Mongoose a partir de uma connection string já montada
4
4
  * pelo bot consumidor. Este pacote não conhece cluster, host ou appName de
@@ -6,4 +6,11 @@ import mongoose from "mongoose";
6
6
  * env vars e decide como lidar com falha de conexão (retry, log, exit, etc).
7
7
  */
8
8
  export declare function connectDatabase(uri: string, dbName?: string): Promise<typeof mongoose>;
9
+ /**
10
+ * Vincula um schema deste pacote a uma connection diferente da default — usado
11
+ * pelo padrão `mongoose.connection.useDb(dbName)` pra ler/escrever no banco de
12
+ * um tenant específico (ou no banco do fac-control-bot) sem abrir uma conexão
13
+ * nova nem duplicar a definição do schema em cada bot consumidor.
14
+ */
15
+ export declare function modelOn<T>(conn: Connection, name: string, schema: Schema<T>): Model<T>;
9
16
  export { mongoose };
@@ -10,4 +10,13 @@ export async function connectDatabase(uri, dbName) {
10
10
  return mongoose;
11
11
  return mongoose.connect(uri, dbName ? { dbName } : undefined);
12
12
  }
13
+ /**
14
+ * Vincula um schema deste pacote a uma connection diferente da default — usado
15
+ * pelo padrão `mongoose.connection.useDb(dbName)` pra ler/escrever no banco de
16
+ * um tenant específico (ou no banco do fac-control-bot) sem abrir uma conexão
17
+ * nova nem duplicar a definição do schema em cada bot consumidor.
18
+ */
19
+ export function modelOn(conn, name, schema) {
20
+ return conn.models[name] ?? conn.model(name, schema);
21
+ }
13
22
  export { mongoose };
@@ -29,6 +29,133 @@ export interface IAcaoMarcada extends Document {
29
29
  /** Data/hora da ação como Date (para queries eficientes no MongoDB) */
30
30
  dataHoraAcao: Date;
31
31
  }
32
+ export declare const AcaoMarcadaSchema: mongoose.Schema<IAcaoMarcada, mongoose.Model<IAcaoMarcada, any, any, any, any, any, IAcaoMarcada>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, IAcaoMarcada, mongoose.Document<unknown, {}, IAcaoMarcada, {
33
+ id: string;
34
+ }, mongoose.DefaultSchemaOptions> & Omit<IAcaoMarcada & Required<{
35
+ _id: mongoose.Types.ObjectId;
36
+ }> & {
37
+ __v: number;
38
+ }, "id"> & {
39
+ id: string;
40
+ }, {
41
+ _id?: mongoose.SchemaDefinitionProperty<mongoose.Types.ObjectId, IAcaoMarcada, mongoose.Document<unknown, {}, IAcaoMarcada, {
42
+ id: string;
43
+ }, mongoose.DefaultSchemaOptions> & Omit<IAcaoMarcada & Required<{
44
+ _id: mongoose.Types.ObjectId;
45
+ }> & {
46
+ __v: number;
47
+ }, "id"> & {
48
+ id: string;
49
+ }> | undefined;
50
+ data?: mongoose.SchemaDefinitionProperty<string, IAcaoMarcada, mongoose.Document<unknown, {}, IAcaoMarcada, {
51
+ id: string;
52
+ }, mongoose.DefaultSchemaOptions> & Omit<IAcaoMarcada & Required<{
53
+ _id: mongoose.Types.ObjectId;
54
+ }> & {
55
+ __v: number;
56
+ }, "id"> & {
57
+ id: string;
58
+ }> | undefined;
59
+ hora?: mongoose.SchemaDefinitionProperty<string, IAcaoMarcada, mongoose.Document<unknown, {}, IAcaoMarcada, {
60
+ id: string;
61
+ }, mongoose.DefaultSchemaOptions> & Omit<IAcaoMarcada & Required<{
62
+ _id: mongoose.Types.ObjectId;
63
+ }> & {
64
+ __v: number;
65
+ }, "id"> & {
66
+ id: string;
67
+ }> | undefined;
68
+ maxMembros?: mongoose.SchemaDefinitionProperty<number, IAcaoMarcada, mongoose.Document<unknown, {}, IAcaoMarcada, {
69
+ id: string;
70
+ }, mongoose.DefaultSchemaOptions> & Omit<IAcaoMarcada & Required<{
71
+ _id: mongoose.Types.ObjectId;
72
+ }> & {
73
+ __v: number;
74
+ }, "id"> & {
75
+ id: string;
76
+ }> | undefined;
77
+ participantes?: mongoose.SchemaDefinitionProperty<string[], IAcaoMarcada, mongoose.Document<unknown, {}, IAcaoMarcada, {
78
+ id: string;
79
+ }, mongoose.DefaultSchemaOptions> & Omit<IAcaoMarcada & Required<{
80
+ _id: mongoose.Types.ObjectId;
81
+ }> & {
82
+ __v: number;
83
+ }, "id"> & {
84
+ id: string;
85
+ }> | undefined;
86
+ escalados?: mongoose.SchemaDefinitionProperty<string[], IAcaoMarcada, mongoose.Document<unknown, {}, IAcaoMarcada, {
87
+ id: string;
88
+ }, mongoose.DefaultSchemaOptions> & Omit<IAcaoMarcada & Required<{
89
+ _id: mongoose.Types.ObjectId;
90
+ }> & {
91
+ __v: number;
92
+ }, "id"> & {
93
+ id: string;
94
+ }> | undefined;
95
+ criadoPor?: mongoose.SchemaDefinitionProperty<string, IAcaoMarcada, mongoose.Document<unknown, {}, IAcaoMarcada, {
96
+ id: string;
97
+ }, mongoose.DefaultSchemaOptions> & Omit<IAcaoMarcada & Required<{
98
+ _id: mongoose.Types.ObjectId;
99
+ }> & {
100
+ __v: number;
101
+ }, "id"> & {
102
+ id: string;
103
+ }> | undefined;
104
+ resultado?: mongoose.SchemaDefinitionProperty<"ganhou" | "perdeu" | "pendente", IAcaoMarcada, mongoose.Document<unknown, {}, IAcaoMarcada, {
105
+ id: string;
106
+ }, mongoose.DefaultSchemaOptions> & Omit<IAcaoMarcada & Required<{
107
+ _id: mongoose.Types.ObjectId;
108
+ }> & {
109
+ __v: number;
110
+ }, "id"> & {
111
+ id: string;
112
+ }> | undefined;
113
+ mensagemId?: mongoose.SchemaDefinitionProperty<string, IAcaoMarcada, mongoose.Document<unknown, {}, IAcaoMarcada, {
114
+ id: string;
115
+ }, mongoose.DefaultSchemaOptions> & Omit<IAcaoMarcada & Required<{
116
+ _id: mongoose.Types.ObjectId;
117
+ }> & {
118
+ __v: number;
119
+ }, "id"> & {
120
+ id: string;
121
+ }> | undefined;
122
+ nome?: mongoose.SchemaDefinitionProperty<string, IAcaoMarcada, mongoose.Document<unknown, {}, IAcaoMarcada, {
123
+ id: string;
124
+ }, mongoose.DefaultSchemaOptions> & Omit<IAcaoMarcada & Required<{
125
+ _id: mongoose.Types.ObjectId;
126
+ }> & {
127
+ __v: number;
128
+ }, "id"> & {
129
+ id: string;
130
+ }> | undefined;
131
+ criadoEm?: mongoose.SchemaDefinitionProperty<Date, IAcaoMarcada, mongoose.Document<unknown, {}, IAcaoMarcada, {
132
+ id: string;
133
+ }, mongoose.DefaultSchemaOptions> & Omit<IAcaoMarcada & Required<{
134
+ _id: mongoose.Types.ObjectId;
135
+ }> & {
136
+ __v: number;
137
+ }, "id"> & {
138
+ id: string;
139
+ }> | undefined;
140
+ finalizadoEm?: mongoose.SchemaDefinitionProperty<Date | undefined, IAcaoMarcada, mongoose.Document<unknown, {}, IAcaoMarcada, {
141
+ id: string;
142
+ }, mongoose.DefaultSchemaOptions> & Omit<IAcaoMarcada & Required<{
143
+ _id: mongoose.Types.ObjectId;
144
+ }> & {
145
+ __v: number;
146
+ }, "id"> & {
147
+ id: string;
148
+ }> | undefined;
149
+ dataHoraAcao?: mongoose.SchemaDefinitionProperty<Date, IAcaoMarcada, mongoose.Document<unknown, {}, IAcaoMarcada, {
150
+ id: string;
151
+ }, mongoose.DefaultSchemaOptions> & Omit<IAcaoMarcada & Required<{
152
+ _id: mongoose.Types.ObjectId;
153
+ }> & {
154
+ __v: number;
155
+ }, "id"> & {
156
+ id: string;
157
+ }> | undefined;
158
+ }, IAcaoMarcada>;
32
159
  export declare const AcaoMarcadaModel: mongoose.Model<IAcaoMarcada, {}, {}, {}, mongoose.Document<unknown, {}, IAcaoMarcada, {}, mongoose.DefaultSchemaOptions> & IAcaoMarcada & Required<{
33
160
  _id: mongoose.Types.ObjectId;
34
161
  }> & {
@@ -1,5 +1,5 @@
1
1
  import mongoose, { Schema } from "mongoose";
2
- const AcaoMarcadaSchema = new Schema({
2
+ export const AcaoMarcadaSchema = new Schema({
3
3
  data: { type: String, required: true },
4
4
  hora: { type: String, required: true },
5
5
  maxMembros: { type: Number, required: true },
@@ -21,6 +21,70 @@ export interface IAcoesConfig extends Document {
21
21
  /** Data (YYYY-MM-DD) do último envio automático do calendário */
22
22
  calendarioUltimoEnvio: string;
23
23
  }
24
+ export declare const AcoesConfigSchema: mongoose.Schema<IAcoesConfig, mongoose.Model<IAcoesConfig, any, any, any, any, any, IAcoesConfig>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, IAcoesConfig, mongoose.Document<unknown, {}, IAcoesConfig, {
25
+ id: string;
26
+ }, mongoose.DefaultSchemaOptions> & Omit<IAcoesConfig & Required<{
27
+ _id: mongoose.Types.ObjectId;
28
+ }> & {
29
+ __v: number;
30
+ }, "id"> & {
31
+ id: string;
32
+ }, {
33
+ _id?: mongoose.SchemaDefinitionProperty<mongoose.Types.ObjectId, IAcoesConfig, mongoose.Document<unknown, {}, IAcoesConfig, {
34
+ id: string;
35
+ }, mongoose.DefaultSchemaOptions> & Omit<IAcoesConfig & Required<{
36
+ _id: mongoose.Types.ObjectId;
37
+ }> & {
38
+ __v: number;
39
+ }, "id"> & {
40
+ id: string;
41
+ }> | undefined;
42
+ configId?: mongoose.SchemaDefinitionProperty<string, IAcoesConfig, mongoose.Document<unknown, {}, IAcoesConfig, {
43
+ id: string;
44
+ }, mongoose.DefaultSchemaOptions> & Omit<IAcoesConfig & Required<{
45
+ _id: mongoose.Types.ObjectId;
46
+ }> & {
47
+ __v: number;
48
+ }, "id"> & {
49
+ id: string;
50
+ }> | undefined;
51
+ acoesDisponiveis?: mongoose.SchemaDefinitionProperty<{
52
+ chave: string;
53
+ nome: string;
54
+ maxParticipantes: number;
55
+ }[], IAcoesConfig, mongoose.Document<unknown, {}, IAcoesConfig, {
56
+ id: string;
57
+ }, mongoose.DefaultSchemaOptions> & Omit<IAcoesConfig & Required<{
58
+ _id: mongoose.Types.ObjectId;
59
+ }> & {
60
+ __v: number;
61
+ }, "id"> & {
62
+ id: string;
63
+ }> | undefined;
64
+ calendarioSemanal?: mongoose.SchemaDefinitionProperty<{
65
+ dia: number;
66
+ acaoChave: string;
67
+ hora: string;
68
+ escalados: number;
69
+ }[], IAcoesConfig, mongoose.Document<unknown, {}, IAcoesConfig, {
70
+ id: string;
71
+ }, mongoose.DefaultSchemaOptions> & Omit<IAcoesConfig & Required<{
72
+ _id: mongoose.Types.ObjectId;
73
+ }> & {
74
+ __v: number;
75
+ }, "id"> & {
76
+ id: string;
77
+ }> | undefined;
78
+ calendarioUltimoEnvio?: mongoose.SchemaDefinitionProperty<string, IAcoesConfig, mongoose.Document<unknown, {}, IAcoesConfig, {
79
+ id: string;
80
+ }, mongoose.DefaultSchemaOptions> & Omit<IAcoesConfig & Required<{
81
+ _id: mongoose.Types.ObjectId;
82
+ }> & {
83
+ __v: number;
84
+ }, "id"> & {
85
+ id: string;
86
+ }> | undefined;
87
+ }, IAcoesConfig>;
24
88
  export declare const AcoesConfigModel: mongoose.Model<IAcoesConfig, {}, {}, {}, mongoose.Document<unknown, {}, IAcoesConfig, {}, mongoose.DefaultSchemaOptions> & IAcoesConfig & Required<{
25
89
  _id: mongoose.Types.ObjectId;
26
90
  }> & {
@@ -1,5 +1,5 @@
1
1
  import mongoose, { Schema } from "mongoose";
2
- const AcoesConfigSchema = new Schema({
2
+ export const AcoesConfigSchema = new Schema({
3
3
  configId: { type: String, default: "main", unique: true },
4
4
  acoesDisponiveis: {
5
5
  type: [{
@@ -7,6 +7,79 @@ export interface IBlacklist extends Document {
7
7
  criadoEm: Date;
8
8
  atualizadoEm: Date;
9
9
  }
10
+ export declare const BlacklistSchema: mongoose.Schema<IBlacklist, mongoose.Model<IBlacklist, any, any, any, any, any, IBlacklist>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, IBlacklist, mongoose.Document<unknown, {}, IBlacklist, {
11
+ id: string;
12
+ }, mongoose.DefaultSchemaOptions> & Omit<IBlacklist & Required<{
13
+ _id: mongoose.Types.ObjectId;
14
+ }> & {
15
+ __v: number;
16
+ }, "id"> & {
17
+ id: string;
18
+ }, {
19
+ _id?: mongoose.SchemaDefinitionProperty<mongoose.Types.ObjectId, IBlacklist, mongoose.Document<unknown, {}, IBlacklist, {
20
+ id: string;
21
+ }, mongoose.DefaultSchemaOptions> & Omit<IBlacklist & Required<{
22
+ _id: mongoose.Types.ObjectId;
23
+ }> & {
24
+ __v: number;
25
+ }, "id"> & {
26
+ id: string;
27
+ }> | undefined;
28
+ criadoEm?: mongoose.SchemaDefinitionProperty<Date, IBlacklist, mongoose.Document<unknown, {}, IBlacklist, {
29
+ id: string;
30
+ }, mongoose.DefaultSchemaOptions> & Omit<IBlacklist & Required<{
31
+ _id: mongoose.Types.ObjectId;
32
+ }> & {
33
+ __v: number;
34
+ }, "id"> & {
35
+ id: string;
36
+ }> | undefined;
37
+ playerId?: mongoose.SchemaDefinitionProperty<string, IBlacklist, mongoose.Document<unknown, {}, IBlacklist, {
38
+ id: string;
39
+ }, mongoose.DefaultSchemaOptions> & Omit<IBlacklist & Required<{
40
+ _id: mongoose.Types.ObjectId;
41
+ }> & {
42
+ __v: number;
43
+ }, "id"> & {
44
+ id: string;
45
+ }> | undefined;
46
+ organizacao?: mongoose.SchemaDefinitionProperty<string | undefined, IBlacklist, mongoose.Document<unknown, {}, IBlacklist, {
47
+ id: string;
48
+ }, mongoose.DefaultSchemaOptions> & Omit<IBlacklist & Required<{
49
+ _id: mongoose.Types.ObjectId;
50
+ }> & {
51
+ __v: number;
52
+ }, "id"> & {
53
+ id: string;
54
+ }> | undefined;
55
+ cargo?: mongoose.SchemaDefinitionProperty<string | undefined, IBlacklist, mongoose.Document<unknown, {}, IBlacklist, {
56
+ id: string;
57
+ }, mongoose.DefaultSchemaOptions> & Omit<IBlacklist & Required<{
58
+ _id: mongoose.Types.ObjectId;
59
+ }> & {
60
+ __v: number;
61
+ }, "id"> & {
62
+ id: string;
63
+ }> | undefined;
64
+ vencimento?: mongoose.SchemaDefinitionProperty<Date, IBlacklist, mongoose.Document<unknown, {}, IBlacklist, {
65
+ id: string;
66
+ }, mongoose.DefaultSchemaOptions> & Omit<IBlacklist & Required<{
67
+ _id: mongoose.Types.ObjectId;
68
+ }> & {
69
+ __v: number;
70
+ }, "id"> & {
71
+ id: string;
72
+ }> | undefined;
73
+ atualizadoEm?: mongoose.SchemaDefinitionProperty<Date, IBlacklist, mongoose.Document<unknown, {}, IBlacklist, {
74
+ id: string;
75
+ }, mongoose.DefaultSchemaOptions> & Omit<IBlacklist & Required<{
76
+ _id: mongoose.Types.ObjectId;
77
+ }> & {
78
+ __v: number;
79
+ }, "id"> & {
80
+ id: string;
81
+ }> | undefined;
82
+ }, IBlacklist>;
10
83
  export declare const BlacklistModel: mongoose.Model<IBlacklist, {}, {}, {}, mongoose.Document<unknown, {}, IBlacklist, {}, mongoose.DefaultSchemaOptions> & IBlacklist & Required<{
11
84
  _id: mongoose.Types.ObjectId;
12
85
  }> & {
@@ -1,10 +1,10 @@
1
1
  import mongoose, { Schema } from "mongoose";
2
- const BlacklistSchema = new Schema({
2
+ export const BlacklistSchema = new Schema({
3
3
  playerId: { type: String, required: true, unique: true },
4
4
  organizacao: { type: String },
5
5
  cargo: { type: String },
6
6
  vencimento: { type: Date, required: true, index: { expireAfterSeconds: 0 } },
7
7
  criadoEm: { type: Date, default: Date.now },
8
8
  atualizadoEm: { type: Date, default: Date.now },
9
- });
10
- export const BlacklistModel = mongoose.model("Blacklist", BlacklistSchema, "blacklist");
9
+ }, { collection: "blacklist" });
10
+ export const BlacklistModel = mongoose.model("Blacklist", BlacklistSchema);
@@ -5,6 +5,61 @@ export interface ICaixa2Item extends Document {
5
5
  minAdv: number;
6
6
  maxAdv: number;
7
7
  }
8
+ export declare const Caixa2ItemSchema: mongoose.Schema<ICaixa2Item, mongoose.Model<ICaixa2Item, any, any, any, any, any, ICaixa2Item>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, ICaixa2Item, mongoose.Document<unknown, {}, ICaixa2Item, {
9
+ id: string;
10
+ }, mongoose.DefaultSchemaOptions> & Omit<ICaixa2Item & Required<{
11
+ _id: mongoose.Types.ObjectId;
12
+ }> & {
13
+ __v: number;
14
+ }, "id"> & {
15
+ id: string;
16
+ }, {
17
+ _id?: mongoose.SchemaDefinitionProperty<mongoose.Types.ObjectId, ICaixa2Item, mongoose.Document<unknown, {}, ICaixa2Item, {
18
+ id: string;
19
+ }, mongoose.DefaultSchemaOptions> & Omit<ICaixa2Item & Required<{
20
+ _id: mongoose.Types.ObjectId;
21
+ }> & {
22
+ __v: number;
23
+ }, "id"> & {
24
+ id: string;
25
+ }> | undefined;
26
+ nome?: mongoose.SchemaDefinitionProperty<string, ICaixa2Item, mongoose.Document<unknown, {}, ICaixa2Item, {
27
+ id: string;
28
+ }, mongoose.DefaultSchemaOptions> & Omit<ICaixa2Item & Required<{
29
+ _id: mongoose.Types.ObjectId;
30
+ }> & {
31
+ __v: number;
32
+ }, "id"> & {
33
+ id: string;
34
+ }> | undefined;
35
+ emoji?: mongoose.SchemaDefinitionProperty<string, ICaixa2Item, mongoose.Document<unknown, {}, ICaixa2Item, {
36
+ id: string;
37
+ }, mongoose.DefaultSchemaOptions> & Omit<ICaixa2Item & Required<{
38
+ _id: mongoose.Types.ObjectId;
39
+ }> & {
40
+ __v: number;
41
+ }, "id"> & {
42
+ id: string;
43
+ }> | undefined;
44
+ minAdv?: mongoose.SchemaDefinitionProperty<number, ICaixa2Item, mongoose.Document<unknown, {}, ICaixa2Item, {
45
+ id: string;
46
+ }, mongoose.DefaultSchemaOptions> & Omit<ICaixa2Item & Required<{
47
+ _id: mongoose.Types.ObjectId;
48
+ }> & {
49
+ __v: number;
50
+ }, "id"> & {
51
+ id: string;
52
+ }> | undefined;
53
+ maxAdv?: mongoose.SchemaDefinitionProperty<number, ICaixa2Item, mongoose.Document<unknown, {}, ICaixa2Item, {
54
+ id: string;
55
+ }, mongoose.DefaultSchemaOptions> & Omit<ICaixa2Item & Required<{
56
+ _id: mongoose.Types.ObjectId;
57
+ }> & {
58
+ __v: number;
59
+ }, "id"> & {
60
+ id: string;
61
+ }> | undefined;
62
+ }, ICaixa2Item>;
8
63
  export declare const Caixa2ItemModel: mongoose.Model<ICaixa2Item, {}, {}, {}, mongoose.Document<unknown, {}, ICaixa2Item, {}, mongoose.DefaultSchemaOptions> & ICaixa2Item & Required<{
9
64
  _id: mongoose.Types.ObjectId;
10
65
  }> & {
@@ -1,5 +1,5 @@
1
1
  import mongoose, { Schema } from "mongoose";
2
- const Caixa2ItemSchema = new Schema({
2
+ export const Caixa2ItemSchema = new Schema({
3
3
  nome: { type: String, required: true, unique: true },
4
4
  emoji: { type: String, required: true },
5
5
  minAdv: { type: Number, required: true },
@@ -8,6 +8,43 @@ export interface IFeatureTogglesConfig extends Document {
8
8
  /** Override de feature toggles via MongoDB (sobrescreve .env quando definido) */
9
9
  toggles: Map<string, boolean>;
10
10
  }
11
+ export declare const FeatureTogglesConfigSchema: mongoose.Schema<IFeatureTogglesConfig, mongoose.Model<IFeatureTogglesConfig, any, any, any, any, any, IFeatureTogglesConfig>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, IFeatureTogglesConfig, mongoose.Document<unknown, {}, IFeatureTogglesConfig, {
12
+ id: string;
13
+ }, mongoose.DefaultSchemaOptions> & Omit<IFeatureTogglesConfig & Required<{
14
+ _id: mongoose.Types.ObjectId;
15
+ }> & {
16
+ __v: number;
17
+ }, "id"> & {
18
+ id: string;
19
+ }, {
20
+ _id?: mongoose.SchemaDefinitionProperty<mongoose.Types.ObjectId, IFeatureTogglesConfig, mongoose.Document<unknown, {}, IFeatureTogglesConfig, {
21
+ id: string;
22
+ }, mongoose.DefaultSchemaOptions> & Omit<IFeatureTogglesConfig & Required<{
23
+ _id: mongoose.Types.ObjectId;
24
+ }> & {
25
+ __v: number;
26
+ }, "id"> & {
27
+ id: string;
28
+ }> | undefined;
29
+ configId?: mongoose.SchemaDefinitionProperty<string, IFeatureTogglesConfig, mongoose.Document<unknown, {}, IFeatureTogglesConfig, {
30
+ id: string;
31
+ }, mongoose.DefaultSchemaOptions> & Omit<IFeatureTogglesConfig & Required<{
32
+ _id: mongoose.Types.ObjectId;
33
+ }> & {
34
+ __v: number;
35
+ }, "id"> & {
36
+ id: string;
37
+ }> | undefined;
38
+ toggles?: mongoose.SchemaDefinitionProperty<Map<string, boolean>, IFeatureTogglesConfig, mongoose.Document<unknown, {}, IFeatureTogglesConfig, {
39
+ id: string;
40
+ }, mongoose.DefaultSchemaOptions> & Omit<IFeatureTogglesConfig & Required<{
41
+ _id: mongoose.Types.ObjectId;
42
+ }> & {
43
+ __v: number;
44
+ }, "id"> & {
45
+ id: string;
46
+ }> | undefined;
47
+ }, IFeatureTogglesConfig>;
11
48
  export declare const FeatureTogglesConfigModel: mongoose.Model<IFeatureTogglesConfig, {}, {}, {}, mongoose.Document<unknown, {}, IFeatureTogglesConfig, {}, mongoose.DefaultSchemaOptions> & IFeatureTogglesConfig & Required<{
12
49
  _id: mongoose.Types.ObjectId;
13
50
  }> & {
@@ -1,5 +1,5 @@
1
1
  import mongoose, { Schema } from "mongoose";
2
- const FeatureTogglesConfigSchema = new Schema({
2
+ export const FeatureTogglesConfigSchema = new Schema({
3
3
  configId: { type: String, default: "main", unique: true },
4
4
  toggles: { type: Map, of: Boolean, default: new Map() },
5
5
  });
@@ -0,0 +1,116 @@
1
+ import mongoose, { type Document } from "mongoose";
2
+ /**
3
+ * Config do domínio logsExporter (fac-helper-bot), por tenant — mesmo padrão
4
+ * de MarcarAcaoGuildConfig. Singleton via configId fixo.
5
+ */
6
+ export interface ILogsExporterChannel {
7
+ id: string;
8
+ name: string;
9
+ }
10
+ export interface ILogsExporterSplitRule {
11
+ sourceChannel: string;
12
+ destFolder: string;
13
+ splitType: string;
14
+ keyword: string;
15
+ ignoredPlayerIds: string[];
16
+ }
17
+ export interface ILogsExporterGuildConfig extends Document {
18
+ configId: string;
19
+ channels: ILogsExporterChannel[];
20
+ /** Webhooks por canal — chave é o nome do canal (ex.: "BAU", "BAU-TATICO") */
21
+ webhooks: Map<string, string>;
22
+ exportIntervalMinutes: number;
23
+ splitRules: ILogsExporterSplitRule[];
24
+ caixa2JanelaMinutos: number;
25
+ /** IDs ignorados na detecção de Caixa 2 — chave é o nome do canal */
26
+ caixa2IgnoredIds: Map<string, string[]>;
27
+ }
28
+ export declare const LogsExporterGuildConfigSchema: mongoose.Schema<ILogsExporterGuildConfig, mongoose.Model<ILogsExporterGuildConfig, any, any, any, any, any, ILogsExporterGuildConfig>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, ILogsExporterGuildConfig, mongoose.Document<unknown, {}, ILogsExporterGuildConfig, {
29
+ id: string;
30
+ }, mongoose.DefaultSchemaOptions> & Omit<ILogsExporterGuildConfig & Required<{
31
+ _id: mongoose.Types.ObjectId;
32
+ }> & {
33
+ __v: number;
34
+ }, "id"> & {
35
+ id: string;
36
+ }, {
37
+ _id?: mongoose.SchemaDefinitionProperty<mongoose.Types.ObjectId, ILogsExporterGuildConfig, mongoose.Document<unknown, {}, ILogsExporterGuildConfig, {
38
+ id: string;
39
+ }, mongoose.DefaultSchemaOptions> & Omit<ILogsExporterGuildConfig & Required<{
40
+ _id: mongoose.Types.ObjectId;
41
+ }> & {
42
+ __v: number;
43
+ }, "id"> & {
44
+ id: string;
45
+ }> | undefined;
46
+ configId?: mongoose.SchemaDefinitionProperty<string, ILogsExporterGuildConfig, mongoose.Document<unknown, {}, ILogsExporterGuildConfig, {
47
+ id: string;
48
+ }, mongoose.DefaultSchemaOptions> & Omit<ILogsExporterGuildConfig & Required<{
49
+ _id: mongoose.Types.ObjectId;
50
+ }> & {
51
+ __v: number;
52
+ }, "id"> & {
53
+ id: string;
54
+ }> | undefined;
55
+ channels?: mongoose.SchemaDefinitionProperty<ILogsExporterChannel[], ILogsExporterGuildConfig, mongoose.Document<unknown, {}, ILogsExporterGuildConfig, {
56
+ id: string;
57
+ }, mongoose.DefaultSchemaOptions> & Omit<ILogsExporterGuildConfig & Required<{
58
+ _id: mongoose.Types.ObjectId;
59
+ }> & {
60
+ __v: number;
61
+ }, "id"> & {
62
+ id: string;
63
+ }> | undefined;
64
+ webhooks?: mongoose.SchemaDefinitionProperty<Map<string, string>, ILogsExporterGuildConfig, mongoose.Document<unknown, {}, ILogsExporterGuildConfig, {
65
+ id: string;
66
+ }, mongoose.DefaultSchemaOptions> & Omit<ILogsExporterGuildConfig & Required<{
67
+ _id: mongoose.Types.ObjectId;
68
+ }> & {
69
+ __v: number;
70
+ }, "id"> & {
71
+ id: string;
72
+ }> | undefined;
73
+ exportIntervalMinutes?: mongoose.SchemaDefinitionProperty<number, ILogsExporterGuildConfig, mongoose.Document<unknown, {}, ILogsExporterGuildConfig, {
74
+ id: string;
75
+ }, mongoose.DefaultSchemaOptions> & Omit<ILogsExporterGuildConfig & Required<{
76
+ _id: mongoose.Types.ObjectId;
77
+ }> & {
78
+ __v: number;
79
+ }, "id"> & {
80
+ id: string;
81
+ }> | undefined;
82
+ splitRules?: mongoose.SchemaDefinitionProperty<ILogsExporterSplitRule[], ILogsExporterGuildConfig, mongoose.Document<unknown, {}, ILogsExporterGuildConfig, {
83
+ id: string;
84
+ }, mongoose.DefaultSchemaOptions> & Omit<ILogsExporterGuildConfig & Required<{
85
+ _id: mongoose.Types.ObjectId;
86
+ }> & {
87
+ __v: number;
88
+ }, "id"> & {
89
+ id: string;
90
+ }> | undefined;
91
+ caixa2JanelaMinutos?: mongoose.SchemaDefinitionProperty<number, ILogsExporterGuildConfig, mongoose.Document<unknown, {}, ILogsExporterGuildConfig, {
92
+ id: string;
93
+ }, mongoose.DefaultSchemaOptions> & Omit<ILogsExporterGuildConfig & Required<{
94
+ _id: mongoose.Types.ObjectId;
95
+ }> & {
96
+ __v: number;
97
+ }, "id"> & {
98
+ id: string;
99
+ }> | undefined;
100
+ caixa2IgnoredIds?: mongoose.SchemaDefinitionProperty<Map<string, string[]>, ILogsExporterGuildConfig, mongoose.Document<unknown, {}, ILogsExporterGuildConfig, {
101
+ id: string;
102
+ }, mongoose.DefaultSchemaOptions> & Omit<ILogsExporterGuildConfig & Required<{
103
+ _id: mongoose.Types.ObjectId;
104
+ }> & {
105
+ __v: number;
106
+ }, "id"> & {
107
+ id: string;
108
+ }> | undefined;
109
+ }, ILogsExporterGuildConfig>;
110
+ export declare const LogsExporterGuildConfigModel: mongoose.Model<ILogsExporterGuildConfig, {}, {}, {}, mongoose.Document<unknown, {}, ILogsExporterGuildConfig, {}, mongoose.DefaultSchemaOptions> & ILogsExporterGuildConfig & Required<{
111
+ _id: mongoose.Types.ObjectId;
112
+ }> & {
113
+ __v: number;
114
+ } & {
115
+ id: string;
116
+ }, any, ILogsExporterGuildConfig>;
@@ -0,0 +1,23 @@
1
+ import mongoose, { Schema } from "mongoose";
2
+ export const LogsExporterGuildConfigSchema = new Schema({
3
+ configId: { type: String, default: "main", unique: true },
4
+ channels: {
5
+ type: [{ id: { type: String, required: true }, name: { type: String, required: true } }],
6
+ default: [],
7
+ },
8
+ webhooks: { type: Map, of: String, default: new Map() },
9
+ exportIntervalMinutes: { type: Number, default: 10 },
10
+ splitRules: {
11
+ type: [{
12
+ sourceChannel: { type: String, required: true },
13
+ destFolder: { type: String, required: true },
14
+ splitType: { type: String, required: true },
15
+ keyword: { type: String, default: "" },
16
+ ignoredPlayerIds: { type: [String], default: [] },
17
+ }],
18
+ default: [],
19
+ },
20
+ caixa2JanelaMinutos: { type: Number, default: 15 },
21
+ caixa2IgnoredIds: { type: Map, of: [String], default: new Map() },
22
+ });
23
+ export const LogsExporterGuildConfigModel = mongoose.model("LogsExporterGuildConfig", LogsExporterGuildConfigSchema);
@@ -0,0 +1,74 @@
1
+ import mongoose, { type Document } from "mongoose";
2
+ /**
3
+ * Config do domínio marcarAcao (fac-helper-bot), por tenant — vive dentro do
4
+ * banco do próprio cliente (mesmo padrão de BotConfig/CanalConfig). Singleton
5
+ * via configId fixo, vinculado a uma connection alternativa via modelOn().
6
+ */
7
+ export interface IMarcarAcaoGuildConfig extends Document {
8
+ configId: string;
9
+ channelId: string;
10
+ cargoFaccaoId: string;
11
+ cargoMentionId: string;
12
+ }
13
+ export declare const MarcarAcaoGuildConfigSchema: mongoose.Schema<IMarcarAcaoGuildConfig, mongoose.Model<IMarcarAcaoGuildConfig, any, any, any, any, any, IMarcarAcaoGuildConfig>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, IMarcarAcaoGuildConfig, mongoose.Document<unknown, {}, IMarcarAcaoGuildConfig, {
14
+ id: string;
15
+ }, mongoose.DefaultSchemaOptions> & Omit<IMarcarAcaoGuildConfig & Required<{
16
+ _id: mongoose.Types.ObjectId;
17
+ }> & {
18
+ __v: number;
19
+ }, "id"> & {
20
+ id: string;
21
+ }, {
22
+ _id?: mongoose.SchemaDefinitionProperty<mongoose.Types.ObjectId, IMarcarAcaoGuildConfig, mongoose.Document<unknown, {}, IMarcarAcaoGuildConfig, {
23
+ id: string;
24
+ }, mongoose.DefaultSchemaOptions> & Omit<IMarcarAcaoGuildConfig & Required<{
25
+ _id: mongoose.Types.ObjectId;
26
+ }> & {
27
+ __v: number;
28
+ }, "id"> & {
29
+ id: string;
30
+ }> | undefined;
31
+ configId?: mongoose.SchemaDefinitionProperty<string, IMarcarAcaoGuildConfig, mongoose.Document<unknown, {}, IMarcarAcaoGuildConfig, {
32
+ id: string;
33
+ }, mongoose.DefaultSchemaOptions> & Omit<IMarcarAcaoGuildConfig & Required<{
34
+ _id: mongoose.Types.ObjectId;
35
+ }> & {
36
+ __v: number;
37
+ }, "id"> & {
38
+ id: string;
39
+ }> | undefined;
40
+ channelId?: mongoose.SchemaDefinitionProperty<string, IMarcarAcaoGuildConfig, mongoose.Document<unknown, {}, IMarcarAcaoGuildConfig, {
41
+ id: string;
42
+ }, mongoose.DefaultSchemaOptions> & Omit<IMarcarAcaoGuildConfig & Required<{
43
+ _id: mongoose.Types.ObjectId;
44
+ }> & {
45
+ __v: number;
46
+ }, "id"> & {
47
+ id: string;
48
+ }> | undefined;
49
+ cargoFaccaoId?: mongoose.SchemaDefinitionProperty<string, IMarcarAcaoGuildConfig, mongoose.Document<unknown, {}, IMarcarAcaoGuildConfig, {
50
+ id: string;
51
+ }, mongoose.DefaultSchemaOptions> & Omit<IMarcarAcaoGuildConfig & Required<{
52
+ _id: mongoose.Types.ObjectId;
53
+ }> & {
54
+ __v: number;
55
+ }, "id"> & {
56
+ id: string;
57
+ }> | undefined;
58
+ cargoMentionId?: mongoose.SchemaDefinitionProperty<string, IMarcarAcaoGuildConfig, mongoose.Document<unknown, {}, IMarcarAcaoGuildConfig, {
59
+ id: string;
60
+ }, mongoose.DefaultSchemaOptions> & Omit<IMarcarAcaoGuildConfig & Required<{
61
+ _id: mongoose.Types.ObjectId;
62
+ }> & {
63
+ __v: number;
64
+ }, "id"> & {
65
+ id: string;
66
+ }> | undefined;
67
+ }, IMarcarAcaoGuildConfig>;
68
+ export declare const MarcarAcaoGuildConfigModel: mongoose.Model<IMarcarAcaoGuildConfig, {}, {}, {}, mongoose.Document<unknown, {}, IMarcarAcaoGuildConfig, {}, mongoose.DefaultSchemaOptions> & IMarcarAcaoGuildConfig & Required<{
69
+ _id: mongoose.Types.ObjectId;
70
+ }> & {
71
+ __v: number;
72
+ } & {
73
+ id: string;
74
+ }, any, IMarcarAcaoGuildConfig>;
@@ -0,0 +1,8 @@
1
+ import mongoose, { Schema } from "mongoose";
2
+ export const MarcarAcaoGuildConfigSchema = new Schema({
3
+ configId: { type: String, default: "main", unique: true },
4
+ channelId: { type: String, required: true },
5
+ cargoFaccaoId: { type: String, required: true },
6
+ cargoMentionId: { type: String, required: true },
7
+ });
8
+ export const MarcarAcaoGuildConfigModel = mongoose.model("MarcarAcaoGuildConfig", MarcarAcaoGuildConfigSchema);
@@ -1,3 +1,4 @@
1
+ import { Schema } from "mongoose";
1
2
  export interface IMensagemRecrutamento {
2
3
  /** Chave fixa do documento (singleton) */
3
4
  _id: string;
@@ -6,6 +7,61 @@ export interface IMensagemRecrutamento {
6
7
  mensagemId: string;
7
8
  atualizadoEm: Date;
8
9
  }
10
+ export declare const MensagemRecrutamentoSchema: Schema<IMensagemRecrutamento, import("mongoose").Model<IMensagemRecrutamento, any, any, any, any, any, IMensagemRecrutamento>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, IMensagemRecrutamento, import("mongoose").Document<unknown, {}, IMensagemRecrutamento, {
11
+ id: string;
12
+ }, import("mongoose").DefaultSchemaOptions> & Omit<IMensagemRecrutamento & Required<{
13
+ _id: string;
14
+ }> & {
15
+ __v: number;
16
+ }, "id"> & {
17
+ id: string;
18
+ }, {
19
+ _id?: import("mongoose").SchemaDefinitionProperty<string, IMensagemRecrutamento, import("mongoose").Document<unknown, {}, IMensagemRecrutamento, {
20
+ id: string;
21
+ }, import("mongoose").DefaultSchemaOptions> & Omit<IMensagemRecrutamento & Required<{
22
+ _id: string;
23
+ }> & {
24
+ __v: number;
25
+ }, "id"> & {
26
+ id: string;
27
+ }> | undefined;
28
+ conteudo?: import("mongoose").SchemaDefinitionProperty<string, IMensagemRecrutamento, import("mongoose").Document<unknown, {}, IMensagemRecrutamento, {
29
+ id: string;
30
+ }, import("mongoose").DefaultSchemaOptions> & Omit<IMensagemRecrutamento & Required<{
31
+ _id: string;
32
+ }> & {
33
+ __v: number;
34
+ }, "id"> & {
35
+ id: string;
36
+ }> | undefined;
37
+ autorId?: import("mongoose").SchemaDefinitionProperty<string, IMensagemRecrutamento, import("mongoose").Document<unknown, {}, IMensagemRecrutamento, {
38
+ id: string;
39
+ }, import("mongoose").DefaultSchemaOptions> & Omit<IMensagemRecrutamento & Required<{
40
+ _id: string;
41
+ }> & {
42
+ __v: number;
43
+ }, "id"> & {
44
+ id: string;
45
+ }> | undefined;
46
+ mensagemId?: import("mongoose").SchemaDefinitionProperty<string, IMensagemRecrutamento, import("mongoose").Document<unknown, {}, IMensagemRecrutamento, {
47
+ id: string;
48
+ }, import("mongoose").DefaultSchemaOptions> & Omit<IMensagemRecrutamento & Required<{
49
+ _id: string;
50
+ }> & {
51
+ __v: number;
52
+ }, "id"> & {
53
+ id: string;
54
+ }> | undefined;
55
+ atualizadoEm?: import("mongoose").SchemaDefinitionProperty<Date, IMensagemRecrutamento, import("mongoose").Document<unknown, {}, IMensagemRecrutamento, {
56
+ id: string;
57
+ }, import("mongoose").DefaultSchemaOptions> & Omit<IMensagemRecrutamento & Required<{
58
+ _id: string;
59
+ }> & {
60
+ __v: number;
61
+ }, "id"> & {
62
+ id: string;
63
+ }> | undefined;
64
+ }, IMensagemRecrutamento>;
9
65
  export declare const MensagemRecrutamentoModel: import("mongoose").Model<IMensagemRecrutamento, {}, {}, {}, import("mongoose").Document<unknown, {}, IMensagemRecrutamento, {}, import("mongoose").DefaultSchemaOptions> & IMensagemRecrutamento & Required<{
10
66
  _id: string;
11
67
  }> & {
@@ -1,5 +1,5 @@
1
1
  import { Schema, model } from "mongoose";
2
- const MensagemRecrutamentoSchema = new Schema({
2
+ export const MensagemRecrutamentoSchema = new Schema({
3
3
  _id: { type: String },
4
4
  conteudo: { type: String, default: "" },
5
5
  autorId: { type: String, default: "" },
@@ -0,0 +1,153 @@
1
+ import mongoose, { type Document } from "mongoose";
2
+ /**
3
+ * Config do domínio pedirRec (fac-helper-bot), por tenant — mesmo padrão de
4
+ * MarcarAcaoGuildConfig. Singleton via configId fixo.
5
+ */
6
+ export interface IPedirRecGuildConfig extends Document {
7
+ configId: string;
8
+ slashGuildId: string;
9
+ slashChannelId: string;
10
+ slashCommandName: string;
11
+ mentionPollInterval: number;
12
+ scheduleTimes: string;
13
+ scheduleTimezone: string;
14
+ triggerMessage: string;
15
+ triggerUserId: string;
16
+ recGuildId: string;
17
+ recChannelId: string;
18
+ recIntervalMinutes: number;
19
+ }
20
+ export declare const PedirRecGuildConfigSchema: mongoose.Schema<IPedirRecGuildConfig, mongoose.Model<IPedirRecGuildConfig, any, any, any, any, any, IPedirRecGuildConfig>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, IPedirRecGuildConfig, mongoose.Document<unknown, {}, IPedirRecGuildConfig, {
21
+ id: string;
22
+ }, mongoose.DefaultSchemaOptions> & Omit<IPedirRecGuildConfig & Required<{
23
+ _id: mongoose.Types.ObjectId;
24
+ }> & {
25
+ __v: number;
26
+ }, "id"> & {
27
+ id: string;
28
+ }, {
29
+ _id?: mongoose.SchemaDefinitionProperty<mongoose.Types.ObjectId, IPedirRecGuildConfig, mongoose.Document<unknown, {}, IPedirRecGuildConfig, {
30
+ id: string;
31
+ }, mongoose.DefaultSchemaOptions> & Omit<IPedirRecGuildConfig & Required<{
32
+ _id: mongoose.Types.ObjectId;
33
+ }> & {
34
+ __v: number;
35
+ }, "id"> & {
36
+ id: string;
37
+ }> | undefined;
38
+ configId?: mongoose.SchemaDefinitionProperty<string, IPedirRecGuildConfig, mongoose.Document<unknown, {}, IPedirRecGuildConfig, {
39
+ id: string;
40
+ }, mongoose.DefaultSchemaOptions> & Omit<IPedirRecGuildConfig & Required<{
41
+ _id: mongoose.Types.ObjectId;
42
+ }> & {
43
+ __v: number;
44
+ }, "id"> & {
45
+ id: string;
46
+ }> | undefined;
47
+ slashGuildId?: mongoose.SchemaDefinitionProperty<string, IPedirRecGuildConfig, mongoose.Document<unknown, {}, IPedirRecGuildConfig, {
48
+ id: string;
49
+ }, mongoose.DefaultSchemaOptions> & Omit<IPedirRecGuildConfig & Required<{
50
+ _id: mongoose.Types.ObjectId;
51
+ }> & {
52
+ __v: number;
53
+ }, "id"> & {
54
+ id: string;
55
+ }> | undefined;
56
+ slashChannelId?: mongoose.SchemaDefinitionProperty<string, IPedirRecGuildConfig, mongoose.Document<unknown, {}, IPedirRecGuildConfig, {
57
+ id: string;
58
+ }, mongoose.DefaultSchemaOptions> & Omit<IPedirRecGuildConfig & Required<{
59
+ _id: mongoose.Types.ObjectId;
60
+ }> & {
61
+ __v: number;
62
+ }, "id"> & {
63
+ id: string;
64
+ }> | undefined;
65
+ slashCommandName?: mongoose.SchemaDefinitionProperty<string, IPedirRecGuildConfig, mongoose.Document<unknown, {}, IPedirRecGuildConfig, {
66
+ id: string;
67
+ }, mongoose.DefaultSchemaOptions> & Omit<IPedirRecGuildConfig & Required<{
68
+ _id: mongoose.Types.ObjectId;
69
+ }> & {
70
+ __v: number;
71
+ }, "id"> & {
72
+ id: string;
73
+ }> | undefined;
74
+ mentionPollInterval?: mongoose.SchemaDefinitionProperty<number, IPedirRecGuildConfig, mongoose.Document<unknown, {}, IPedirRecGuildConfig, {
75
+ id: string;
76
+ }, mongoose.DefaultSchemaOptions> & Omit<IPedirRecGuildConfig & Required<{
77
+ _id: mongoose.Types.ObjectId;
78
+ }> & {
79
+ __v: number;
80
+ }, "id"> & {
81
+ id: string;
82
+ }> | undefined;
83
+ scheduleTimes?: mongoose.SchemaDefinitionProperty<string, IPedirRecGuildConfig, mongoose.Document<unknown, {}, IPedirRecGuildConfig, {
84
+ id: string;
85
+ }, mongoose.DefaultSchemaOptions> & Omit<IPedirRecGuildConfig & Required<{
86
+ _id: mongoose.Types.ObjectId;
87
+ }> & {
88
+ __v: number;
89
+ }, "id"> & {
90
+ id: string;
91
+ }> | undefined;
92
+ scheduleTimezone?: mongoose.SchemaDefinitionProperty<string, IPedirRecGuildConfig, mongoose.Document<unknown, {}, IPedirRecGuildConfig, {
93
+ id: string;
94
+ }, mongoose.DefaultSchemaOptions> & Omit<IPedirRecGuildConfig & Required<{
95
+ _id: mongoose.Types.ObjectId;
96
+ }> & {
97
+ __v: number;
98
+ }, "id"> & {
99
+ id: string;
100
+ }> | undefined;
101
+ triggerMessage?: mongoose.SchemaDefinitionProperty<string, IPedirRecGuildConfig, mongoose.Document<unknown, {}, IPedirRecGuildConfig, {
102
+ id: string;
103
+ }, mongoose.DefaultSchemaOptions> & Omit<IPedirRecGuildConfig & Required<{
104
+ _id: mongoose.Types.ObjectId;
105
+ }> & {
106
+ __v: number;
107
+ }, "id"> & {
108
+ id: string;
109
+ }> | undefined;
110
+ triggerUserId?: mongoose.SchemaDefinitionProperty<string, IPedirRecGuildConfig, mongoose.Document<unknown, {}, IPedirRecGuildConfig, {
111
+ id: string;
112
+ }, mongoose.DefaultSchemaOptions> & Omit<IPedirRecGuildConfig & Required<{
113
+ _id: mongoose.Types.ObjectId;
114
+ }> & {
115
+ __v: number;
116
+ }, "id"> & {
117
+ id: string;
118
+ }> | undefined;
119
+ recGuildId?: mongoose.SchemaDefinitionProperty<string, IPedirRecGuildConfig, mongoose.Document<unknown, {}, IPedirRecGuildConfig, {
120
+ id: string;
121
+ }, mongoose.DefaultSchemaOptions> & Omit<IPedirRecGuildConfig & Required<{
122
+ _id: mongoose.Types.ObjectId;
123
+ }> & {
124
+ __v: number;
125
+ }, "id"> & {
126
+ id: string;
127
+ }> | undefined;
128
+ recChannelId?: mongoose.SchemaDefinitionProperty<string, IPedirRecGuildConfig, mongoose.Document<unknown, {}, IPedirRecGuildConfig, {
129
+ id: string;
130
+ }, mongoose.DefaultSchemaOptions> & Omit<IPedirRecGuildConfig & Required<{
131
+ _id: mongoose.Types.ObjectId;
132
+ }> & {
133
+ __v: number;
134
+ }, "id"> & {
135
+ id: string;
136
+ }> | undefined;
137
+ recIntervalMinutes?: mongoose.SchemaDefinitionProperty<number, IPedirRecGuildConfig, mongoose.Document<unknown, {}, IPedirRecGuildConfig, {
138
+ id: string;
139
+ }, mongoose.DefaultSchemaOptions> & Omit<IPedirRecGuildConfig & Required<{
140
+ _id: mongoose.Types.ObjectId;
141
+ }> & {
142
+ __v: number;
143
+ }, "id"> & {
144
+ id: string;
145
+ }> | undefined;
146
+ }, IPedirRecGuildConfig>;
147
+ export declare const PedirRecGuildConfigModel: mongoose.Model<IPedirRecGuildConfig, {}, {}, {}, mongoose.Document<unknown, {}, IPedirRecGuildConfig, {}, mongoose.DefaultSchemaOptions> & IPedirRecGuildConfig & Required<{
148
+ _id: mongoose.Types.ObjectId;
149
+ }> & {
150
+ __v: number;
151
+ } & {
152
+ id: string;
153
+ }, any, IPedirRecGuildConfig>;
@@ -0,0 +1,16 @@
1
+ import mongoose, { Schema } from "mongoose";
2
+ export const PedirRecGuildConfigSchema = new Schema({
3
+ configId: { type: String, default: "main", unique: true },
4
+ slashGuildId: { type: String, required: true },
5
+ slashChannelId: { type: String, required: true },
6
+ slashCommandName: { type: String, default: "pedirrec" },
7
+ mentionPollInterval: { type: Number, default: 10 },
8
+ scheduleTimes: { type: String, default: "11:30,18:30" },
9
+ scheduleTimezone: { type: String, default: "America/Sao_Paulo" },
10
+ triggerMessage: { type: String, default: "" },
11
+ triggerUserId: { type: String, default: "" },
12
+ recGuildId: { type: String, default: "" },
13
+ recChannelId: { type: String, default: "" },
14
+ recIntervalMinutes: { type: Number, default: 15 },
15
+ });
16
+ export const PedirRecGuildConfigModel = mongoose.model("PedirRecGuildConfig", PedirRecGuildConfigSchema);
@@ -0,0 +1,122 @@
1
+ import mongoose, { Document } from "mongoose";
2
+ /**
3
+ * Registro central de servidores/clientes gerenciados pelo fac-control-bot.
4
+ * Vive no banco PRÓPRIO do fac-control-bot (não no banco de nenhum tenant) —
5
+ * por isso o Schema é exportado separadamente: outros bots (ex. fac-helper-bot)
6
+ * vinculam esse schema numa connection `useDb("fac-control-bot")` pra descobrir
7
+ * quais servidores existem, sem duplicar a definição do shape.
8
+ */
9
+ export interface IServidor extends Document {
10
+ /** Nome de exibição do servidor/cliente gerenciado */
11
+ nome: string;
12
+ /** ID do app na Discloud (mesma conta, um token cobre todos os apps) */
13
+ discloudAppId: string;
14
+ /** Nome do banco MongoDB do cliente, no mesmo cluster (acesso direto via useDb) */
15
+ dbName: string;
16
+ /** URL do webhook do Discord para o canal de avisos (envio de embed sem o bot precisar estar no servidor) */
17
+ webhookAvisosUrl: string;
18
+ /** ID do canal dedicado deste servidor no servidor do bot de controle (painel fixo com embed) */
19
+ channelId: string;
20
+ /** Token do self-bot dedicado deste servidor, usado pelo fac-helper-bot pra operar nele */
21
+ helperBotToken?: string;
22
+ ativo: boolean;
23
+ criadoEm: Date;
24
+ }
25
+ export declare const ServidorSchema: mongoose.Schema<IServidor, mongoose.Model<IServidor, any, any, any, any, any, IServidor>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, IServidor, mongoose.Document<unknown, {}, IServidor, {
26
+ id: string;
27
+ }, mongoose.DefaultSchemaOptions> & Omit<IServidor & Required<{
28
+ _id: mongoose.Types.ObjectId;
29
+ }> & {
30
+ __v: number;
31
+ }, "id"> & {
32
+ id: string;
33
+ }, {
34
+ dbName?: mongoose.SchemaDefinitionProperty<string, IServidor, mongoose.Document<unknown, {}, IServidor, {
35
+ id: string;
36
+ }, mongoose.DefaultSchemaOptions> & Omit<IServidor & Required<{
37
+ _id: mongoose.Types.ObjectId;
38
+ }> & {
39
+ __v: number;
40
+ }, "id"> & {
41
+ id: string;
42
+ }> | undefined;
43
+ _id?: mongoose.SchemaDefinitionProperty<mongoose.Types.ObjectId, IServidor, mongoose.Document<unknown, {}, IServidor, {
44
+ id: string;
45
+ }, mongoose.DefaultSchemaOptions> & Omit<IServidor & Required<{
46
+ _id: mongoose.Types.ObjectId;
47
+ }> & {
48
+ __v: number;
49
+ }, "id"> & {
50
+ id: string;
51
+ }> | undefined;
52
+ nome?: mongoose.SchemaDefinitionProperty<string, IServidor, mongoose.Document<unknown, {}, IServidor, {
53
+ id: string;
54
+ }, mongoose.DefaultSchemaOptions> & Omit<IServidor & Required<{
55
+ _id: mongoose.Types.ObjectId;
56
+ }> & {
57
+ __v: number;
58
+ }, "id"> & {
59
+ id: string;
60
+ }> | undefined;
61
+ criadoEm?: mongoose.SchemaDefinitionProperty<Date, IServidor, mongoose.Document<unknown, {}, IServidor, {
62
+ id: string;
63
+ }, mongoose.DefaultSchemaOptions> & Omit<IServidor & Required<{
64
+ _id: mongoose.Types.ObjectId;
65
+ }> & {
66
+ __v: number;
67
+ }, "id"> & {
68
+ id: string;
69
+ }> | undefined;
70
+ channelId?: mongoose.SchemaDefinitionProperty<string, IServidor, mongoose.Document<unknown, {}, IServidor, {
71
+ id: string;
72
+ }, mongoose.DefaultSchemaOptions> & Omit<IServidor & Required<{
73
+ _id: mongoose.Types.ObjectId;
74
+ }> & {
75
+ __v: number;
76
+ }, "id"> & {
77
+ id: string;
78
+ }> | undefined;
79
+ ativo?: mongoose.SchemaDefinitionProperty<boolean, IServidor, mongoose.Document<unknown, {}, IServidor, {
80
+ id: string;
81
+ }, mongoose.DefaultSchemaOptions> & Omit<IServidor & Required<{
82
+ _id: mongoose.Types.ObjectId;
83
+ }> & {
84
+ __v: number;
85
+ }, "id"> & {
86
+ id: string;
87
+ }> | undefined;
88
+ discloudAppId?: mongoose.SchemaDefinitionProperty<string, IServidor, mongoose.Document<unknown, {}, IServidor, {
89
+ id: string;
90
+ }, mongoose.DefaultSchemaOptions> & Omit<IServidor & Required<{
91
+ _id: mongoose.Types.ObjectId;
92
+ }> & {
93
+ __v: number;
94
+ }, "id"> & {
95
+ id: string;
96
+ }> | undefined;
97
+ webhookAvisosUrl?: mongoose.SchemaDefinitionProperty<string, IServidor, mongoose.Document<unknown, {}, IServidor, {
98
+ id: string;
99
+ }, mongoose.DefaultSchemaOptions> & Omit<IServidor & Required<{
100
+ _id: mongoose.Types.ObjectId;
101
+ }> & {
102
+ __v: number;
103
+ }, "id"> & {
104
+ id: string;
105
+ }> | undefined;
106
+ helperBotToken?: mongoose.SchemaDefinitionProperty<string | undefined, IServidor, mongoose.Document<unknown, {}, IServidor, {
107
+ id: string;
108
+ }, mongoose.DefaultSchemaOptions> & Omit<IServidor & Required<{
109
+ _id: mongoose.Types.ObjectId;
110
+ }> & {
111
+ __v: number;
112
+ }, "id"> & {
113
+ id: string;
114
+ }> | undefined;
115
+ }, IServidor>;
116
+ export declare const ServidorModel: mongoose.Model<IServidor, {}, {}, {}, mongoose.Document<unknown, {}, IServidor, {}, mongoose.DefaultSchemaOptions> & IServidor & Required<{
117
+ _id: mongoose.Types.ObjectId;
118
+ }> & {
119
+ __v: number;
120
+ } & {
121
+ id: string;
122
+ }, any, IServidor>;
@@ -0,0 +1,12 @@
1
+ import mongoose, { Schema } from "mongoose";
2
+ export const ServidorSchema = new Schema({
3
+ nome: { type: String, required: true },
4
+ discloudAppId: { type: String, required: true },
5
+ dbName: { type: String, required: true },
6
+ webhookAvisosUrl: { type: String, required: true },
7
+ channelId: { type: String, required: true },
8
+ helperBotToken: { type: String },
9
+ ativo: { type: Boolean, default: true },
10
+ criadoEm: { type: Date, default: Date.now },
11
+ });
12
+ export const ServidorModel = mongoose.model("Servidor", ServidorSchema);
@@ -1,6 +1,6 @@
1
- export { AcaoMarcadaModel } from "./AcaoMarcada.js";
1
+ export { AcaoMarcadaModel, AcaoMarcadaSchema } from "./AcaoMarcada.js";
2
2
  export type { IAcaoMarcada } from "./AcaoMarcada.js";
3
- export { AcoesConfigModel } from "./AcoesConfig.js";
3
+ export { AcoesConfigModel, AcoesConfigSchema } from "./AcoesConfig.js";
4
4
  export type { IAcoesConfig } from "./AcoesConfig.js";
5
5
  export { AdvertenciaModel } from "./Advertencia.js";
6
6
  export type { IAdvertencia, TipoAdvertencia } from "./Advertencia.js";
@@ -8,11 +8,11 @@ export { AntiGrabberConfigModel } from "./AntiGrabberConfig.js";
8
8
  export type { IAntiGrabberConfig } from "./AntiGrabberConfig.js";
9
9
  export { BindsRoupaConfigModel } from "./BindsRoupaConfig.js";
10
10
  export type { IBindsRoupaConfig } from "./BindsRoupaConfig.js";
11
- export { BlacklistModel } from "./Blacklist.js";
11
+ export { BlacklistModel, BlacklistSchema } from "./Blacklist.js";
12
12
  export type { IBlacklist } from "./Blacklist.js";
13
13
  export { BotConfigModel } from "./BotConfig.js";
14
14
  export type { CargoHierarchyConfigEntry, IBotConfig } from "./BotConfig.js";
15
- export { Caixa2ItemModel } from "./Caixa2Item.js";
15
+ export { Caixa2ItemModel, Caixa2ItemSchema } from "./Caixa2Item.js";
16
16
  export type { ICaixa2Item } from "./Caixa2Item.js";
17
17
  export { CanalConfigModel } from "./CanalConfig.js";
18
18
  export type { ICanalConfig } from "./CanalConfig.js";
@@ -24,14 +24,22 @@ export { FarmModel } from "./Farm.js";
24
24
  export type { IFarm } from "./Farm.js";
25
25
  export { FarmValidacaoStateModel } from "./FarmValidacaoState.js";
26
26
  export type { IFarmPendenteDoc, IFarmValidacaoState, IItemOrfaoDoc } from "./FarmValidacaoState.js";
27
- export { FeatureTogglesConfigModel } from "./FeatureTogglesConfig.js";
27
+ export { FeatureTogglesConfigModel, FeatureTogglesConfigSchema } from "./FeatureTogglesConfig.js";
28
28
  export type { IFeatureTogglesConfig } from "./FeatureTogglesConfig.js";
29
29
  export { MembroCadastroModel } from "./MembroCadastro.js";
30
30
  export type { IMembroCadastro } from "./MembroCadastro.js";
31
- export { MensagemRecrutamentoModel } from "./MensagemRecrutamento.js";
31
+ export { MensagemRecrutamentoModel, MensagemRecrutamentoSchema } from "./MensagemRecrutamento.js";
32
32
  export type { IMensagemRecrutamento } from "./MensagemRecrutamento.js";
33
33
  export { MensagemRotacaoModel } from "./MensagemRotacao.js";
34
34
  export type { IMensagemRotacao } from "./MensagemRotacao.js";
35
+ export { ServidorModel, ServidorSchema } from "./Servidor.js";
36
+ export type { IServidor } from "./Servidor.js";
37
+ export { MarcarAcaoGuildConfigModel, MarcarAcaoGuildConfigSchema } from "./MarcarAcaoGuildConfig.js";
38
+ export type { IMarcarAcaoGuildConfig } from "./MarcarAcaoGuildConfig.js";
39
+ export { PedirRecGuildConfigModel, PedirRecGuildConfigSchema } from "./PedirRecGuildConfig.js";
40
+ export type { IPedirRecGuildConfig } from "./PedirRecGuildConfig.js";
41
+ export { LogsExporterGuildConfigModel, LogsExporterGuildConfigSchema } from "./LogsExporterGuildConfig.js";
42
+ export type { ILogsExporterChannel, ILogsExporterGuildConfig, ILogsExporterSplitRule, } from "./LogsExporterGuildConfig.js";
35
43
  export { RegistroOlheiroModel } from "./RegistroOlheiro.js";
36
44
  export type { IRegistroOlheiro } from "./RegistroOlheiro.js";
37
45
  export { SolicitacaoUpModel } from "./SolicitacaoUp.js";
@@ -1,20 +1,24 @@
1
- export { AcaoMarcadaModel } from "./AcaoMarcada.js";
2
- export { AcoesConfigModel } from "./AcoesConfig.js";
1
+ export { AcaoMarcadaModel, AcaoMarcadaSchema } from "./AcaoMarcada.js";
2
+ export { AcoesConfigModel, AcoesConfigSchema } from "./AcoesConfig.js";
3
3
  export { AdvertenciaModel } from "./Advertencia.js";
4
4
  export { AntiGrabberConfigModel } from "./AntiGrabberConfig.js";
5
5
  export { BindsRoupaConfigModel } from "./BindsRoupaConfig.js";
6
- export { BlacklistModel } from "./Blacklist.js";
6
+ export { BlacklistModel, BlacklistSchema } from "./Blacklist.js";
7
7
  export { BotConfigModel } from "./BotConfig.js";
8
- export { Caixa2ItemModel } from "./Caixa2Item.js";
8
+ export { Caixa2ItemModel, Caixa2ItemSchema } from "./Caixa2Item.js";
9
9
  export { CanalConfigModel } from "./CanalConfig.js";
10
10
  export { CargoConfigModel } from "./CargoConfig.js";
11
11
  export { CraftConfigModel } from "./CraftConfig.js";
12
12
  export { FarmModel } from "./Farm.js";
13
13
  export { FarmValidacaoStateModel } from "./FarmValidacaoState.js";
14
- export { FeatureTogglesConfigModel } from "./FeatureTogglesConfig.js";
14
+ export { FeatureTogglesConfigModel, FeatureTogglesConfigSchema } from "./FeatureTogglesConfig.js";
15
15
  export { MembroCadastroModel } from "./MembroCadastro.js";
16
- export { MensagemRecrutamentoModel } from "./MensagemRecrutamento.js";
16
+ export { MensagemRecrutamentoModel, MensagemRecrutamentoSchema } from "./MensagemRecrutamento.js";
17
17
  export { MensagemRotacaoModel } from "./MensagemRotacao.js";
18
+ export { ServidorModel, ServidorSchema } from "./Servidor.js";
19
+ export { MarcarAcaoGuildConfigModel, MarcarAcaoGuildConfigSchema } from "./MarcarAcaoGuildConfig.js";
20
+ export { PedirRecGuildConfigModel, PedirRecGuildConfigSchema } from "./PedirRecGuildConfig.js";
21
+ export { LogsExporterGuildConfigModel, LogsExporterGuildConfigSchema } from "./LogsExporterGuildConfig.js";
18
22
  export { RegistroOlheiroModel } from "./RegistroOlheiro.js";
19
23
  export { SolicitacaoUpModel } from "./SolicitacaoUp.js";
20
24
  export { UpRegistroModel } from "./UpRegistro.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fac-shared-db",
3
- "version": "1.1.1",
3
+ "version": "1.3.0",
4
4
  "type": "module",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",