@luxorbots/fac-shared-db 1.27.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.
Files changed (95) hide show
  1. package/README.md +62 -0
  2. package/dist/connection.d.ts +16 -0
  3. package/dist/connection.js +23 -0
  4. package/dist/connection.js.map +1 -0
  5. package/dist/index.d.ts +2 -0
  6. package/dist/index.js +3 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/models/AcaoMarcada.d.ts +165 -0
  9. package/dist/models/AcaoMarcada.js +24 -0
  10. package/dist/models/AcaoMarcada.js.map +1 -0
  11. package/dist/models/AcoesConfig.d.ts +83 -0
  12. package/dist/models/AcoesConfig.js +36 -0
  13. package/dist/models/AcoesConfig.js.map +1 -0
  14. package/dist/models/Advertencia.d.ts +46 -0
  15. package/dist/models/Advertencia.js +22 -0
  16. package/dist/models/Advertencia.js.map +1 -0
  17. package/dist/models/BaqueMarcado.d.ts +387 -0
  18. package/dist/models/BaqueMarcado.js +42 -0
  19. package/dist/models/BaqueMarcado.js.map +1 -0
  20. package/dist/models/Blacklist.d.ts +106 -0
  21. package/dist/models/Blacklist.js +12 -0
  22. package/dist/models/Blacklist.js.map +1 -0
  23. package/dist/models/BotConfig.d.ts +62 -0
  24. package/dist/models/BotConfig.js +53 -0
  25. package/dist/models/BotConfig.js.map +1 -0
  26. package/dist/models/Caixa2Item.d.ts +69 -0
  27. package/dist/models/Caixa2Item.js +9 -0
  28. package/dist/models/Caixa2Item.js.map +1 -0
  29. package/dist/models/CanalConfig.d.ts +19 -0
  30. package/dist/models/CanalConfig.js +10 -0
  31. package/dist/models/CanalConfig.js.map +1 -0
  32. package/dist/models/CargoConfig.d.ts +18 -0
  33. package/dist/models/CargoConfig.js +13 -0
  34. package/dist/models/CargoConfig.js.map +1 -0
  35. package/dist/models/Cidade.d.ts +160 -0
  36. package/dist/models/Cidade.js +24 -0
  37. package/dist/models/Cidade.js.map +1 -0
  38. package/dist/models/CidadeCache.d.ts +127 -0
  39. package/dist/models/CidadeCache.js +17 -0
  40. package/dist/models/CidadeCache.js.map +1 -0
  41. package/dist/models/CraftConfig.d.ts +41 -0
  42. package/dist/models/CraftConfig.js +34 -0
  43. package/dist/models/CraftConfig.js.map +1 -0
  44. package/dist/models/Farm.d.ts +24 -0
  45. package/dist/models/Farm.js +20 -0
  46. package/dist/models/Farm.js.map +1 -0
  47. package/dist/models/FarmValidacaoState.d.ts +47 -0
  48. package/dist/models/FarmValidacaoState.js +31 -0
  49. package/dist/models/FarmValidacaoState.js.map +1 -0
  50. package/dist/models/FeatureTogglesConfig.d.ts +54 -0
  51. package/dist/models/FeatureTogglesConfig.js +7 -0
  52. package/dist/models/FeatureTogglesConfig.js.map +1 -0
  53. package/dist/models/History.d.ts +14 -0
  54. package/dist/models/History.js +8 -0
  55. package/dist/models/History.js.map +1 -0
  56. package/dist/models/KeyValue.d.ts +41 -0
  57. package/dist/models/KeyValue.js +7 -0
  58. package/dist/models/KeyValue.js.map +1 -0
  59. package/dist/models/LoadRequest.d.ts +95 -0
  60. package/dist/models/LoadRequest.js +25 -0
  61. package/dist/models/LoadRequest.js.map +1 -0
  62. package/dist/models/LogsExporterGuildConfig.d.ts +126 -0
  63. package/dist/models/LogsExporterGuildConfig.js +26 -0
  64. package/dist/models/LogsExporterGuildConfig.js.map +1 -0
  65. package/dist/models/MembroCadastro.d.ts +16 -0
  66. package/dist/models/MembroCadastro.js +10 -0
  67. package/dist/models/MembroCadastro.js.map +1 -0
  68. package/dist/models/MensagemRecrutamento.d.ts +71 -0
  69. package/dist/models/MensagemRecrutamento.js +10 -0
  70. package/dist/models/MensagemRecrutamento.js.map +1 -0
  71. package/dist/models/MensagemRotacao.d.ts +18 -0
  72. package/dist/models/MensagemRotacao.js +12 -0
  73. package/dist/models/MensagemRotacao.js.map +1 -0
  74. package/dist/models/PedirRecGuildConfig.d.ts +153 -0
  75. package/dist/models/PedirRecGuildConfig.js +17 -0
  76. package/dist/models/PedirRecGuildConfig.js.map +1 -0
  77. package/dist/models/RegistroOlheiro.d.ts +34 -0
  78. package/dist/models/RegistroOlheiro.js +25 -0
  79. package/dist/models/RegistroOlheiro.js.map +1 -0
  80. package/dist/models/Servidor.d.ts +145 -0
  81. package/dist/models/Servidor.js +15 -0
  82. package/dist/models/Servidor.js.map +1 -0
  83. package/dist/models/SolicitacaoUp.d.ts +29 -0
  84. package/dist/models/SolicitacaoUp.js +23 -0
  85. package/dist/models/SolicitacaoUp.js.map +1 -0
  86. package/dist/models/Venda.d.ts +22 -0
  87. package/dist/models/Venda.js +14 -0
  88. package/dist/models/Venda.js.map +1 -0
  89. package/dist/models/VendaConfig.d.ts +23 -0
  90. package/dist/models/VendaConfig.js +16 -0
  91. package/dist/models/VendaConfig.js.map +1 -0
  92. package/dist/models/index.d.ts +56 -0
  93. package/dist/models/index.js +29 -0
  94. package/dist/models/index.js.map +1 -0
  95. package/package.json +58 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BotConfig.js","sourceRoot":"","sources":["../../src/models/BotConfig.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,EAAE,EAAE,MAAM,EAAiB,MAAM,UAAU,CAAC;AAmF3D,MAAM,eAAe,GAAG,IAAI,MAAM,CAAa;IAC7C,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;IAEzD,OAAO;IACP,kBAAkB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE;IAEhD,eAAe;IACf,0BAA0B,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IACzD,sBAAsB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE;IAEpD,WAAW;IACX,yBAAyB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,oBAAoB;IAE7E,eAAe;IACf,6BAA6B,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE;IAEjE,gCAAgC;IAChC,eAAe,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IAC9C,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;IAEjD,wBAAwB;IACxB,yBAAyB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE;IAE7D,oBAAoB;IACpB,cAAc,EAAE;QACd,IAAI,EAAE;YACJ;gBACE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACtC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACvC,KAAK,EAAE;oBACL,IAAI,EAAE;wBACJ;4BACE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;4BACzC,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;4BAC5C,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;yBACvC;qBACF;oBACD,OAAO,EAAE,EAAE;iBACZ;aACF;SACF;QACD,OAAO,EAAE,EAAE;KACZ;IAED,YAAY;IACZ,sBAAsB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IACrD,8BAA8B,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IAC7D,gBAAgB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IAE/C,eAAe;IACf,yBAAyB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IACxD,0BAA0B,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE;IAE1D,oCAAoC;IACpC,oBAAoB,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IAErD,mBAAmB;IACnB,eAAe,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE;IAEhE,YAAY;IACZ,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;CAC5C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAa,WAAW,EAAE,eAAe,CAAC,CAAC"}
@@ -0,0 +1,69 @@
1
+ import mongoose, { type Document } from "mongoose";
2
+ export interface ICaixa2Item extends Document {
3
+ nome: string;
4
+ emoji: string;
5
+ minAdv: number;
6
+ maxAdv: number;
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
+ }>;
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
+ }>;
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
+ }>;
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
+ }>;
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
+ }>;
62
+ }, ICaixa2Item>;
63
+ export declare const Caixa2ItemModel: mongoose.Model<ICaixa2Item, {}, {}, {}, mongoose.Document<unknown, {}, ICaixa2Item, {}, mongoose.DefaultSchemaOptions> & ICaixa2Item & Required<{
64
+ _id: mongoose.Types.ObjectId;
65
+ }> & {
66
+ __v: number;
67
+ } & {
68
+ id: string;
69
+ }, any, ICaixa2Item>;
@@ -0,0 +1,9 @@
1
+ import mongoose, { Schema } from "mongoose";
2
+ export const Caixa2ItemSchema = new Schema({
3
+ nome: { type: String, required: true, unique: true },
4
+ emoji: { type: String, required: true },
5
+ minAdv: { type: Number, required: true },
6
+ maxAdv: { type: Number, required: true },
7
+ }, { collection: "caixa2itens" });
8
+ export const Caixa2ItemModel = mongoose.model("Caixa2Item", Caixa2ItemSchema);
9
+ //# sourceMappingURL=Caixa2Item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Caixa2Item.js","sourceRoot":"","sources":["../../src/models/Caixa2Item.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,EAAE,EAAE,MAAM,EAAiB,MAAM,UAAU,CAAC;AAS3D,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,MAAM,CACxC;IACE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACpD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACxC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;CACzC,EACD,EAAE,UAAU,EAAE,aAAa,EAAE,CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAc,YAAY,EAAE,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ export interface ICanalConfig {
2
+ /** Chave lógica usada como _id (ex: "CANAL_ENTREGA_FARM") */
3
+ _id: string;
4
+ /** ID do canal Discord (snowflake). Vazio = não configurado */
5
+ channelId: string;
6
+ /** Label para exibição no painel admin */
7
+ label: string;
8
+ /** Descrição da funcionalidade do canal */
9
+ descricao: string;
10
+ /** Nome exato do canal no Discord para auto-detect */
11
+ discordName: string;
12
+ }
13
+ export declare const CanalConfigModel: import("mongoose").Model<ICanalConfig, {}, {}, {}, import("mongoose").Document<unknown, {}, ICanalConfig, {}, import("mongoose").DefaultSchemaOptions> & ICanalConfig & Required<{
14
+ _id: string;
15
+ }> & {
16
+ __v: number;
17
+ } & {
18
+ id: string;
19
+ }, any, ICanalConfig>;
@@ -0,0 +1,10 @@
1
+ import { Schema, model } from "mongoose";
2
+ const CanalConfigSchema = new Schema({
3
+ _id: { type: String },
4
+ channelId: { type: String, default: "" },
5
+ label: { type: String, required: true },
6
+ descricao: { type: String, required: true },
7
+ discordName: { type: String, default: "" },
8
+ }, { timestamps: false, versionKey: false });
9
+ export const CanalConfigModel = model("CanalConfig", CanalConfigSchema);
10
+ //# sourceMappingURL=CanalConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CanalConfig.js","sourceRoot":"","sources":["../../src/models/CanalConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAezC,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAClC;IACE,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;IACrB,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IACxC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvC,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3C,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;CAC3C,EACD,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CACzC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAe,aAAa,EAAE,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import mongoose, { type Document } from "mongoose";
2
+ export interface ICargoConfig extends Document {
3
+ key: string;
4
+ /** ID do cargo no Discord (quando sincronizado do servidor) */
5
+ discordRoleId: string;
6
+ nome: string;
7
+ sigla: string;
8
+ ordem: number;
9
+ /** Tags de permissão/grupo ativas para este cargo */
10
+ tags: string[];
11
+ }
12
+ export declare const CargoConfigModel: mongoose.Model<ICargoConfig, {}, {}, {}, mongoose.Document<unknown, {}, ICargoConfig, {}, mongoose.DefaultSchemaOptions> & ICargoConfig & Required<{
13
+ _id: mongoose.Types.ObjectId;
14
+ }> & {
15
+ __v: number;
16
+ } & {
17
+ id: string;
18
+ }, any, ICargoConfig>;
@@ -0,0 +1,13 @@
1
+ import mongoose, { Schema } from "mongoose";
2
+ const CargoConfigSchema = new Schema({
3
+ key: { type: String, required: true, unique: true },
4
+ discordRoleId: { type: String, default: "" },
5
+ nome: { type: String, required: true },
6
+ sigla: { type: String, default: "" },
7
+ ordem: { type: Number, required: true },
8
+ tags: { type: [String], default: [] },
9
+ }, { timestamps: true, strict: false });
10
+ CargoConfigSchema.index({ discordRoleId: 1 });
11
+ CargoConfigSchema.index({ ordem: 1 });
12
+ export const CargoConfigModel = mongoose.model("CargoConfig", CargoConfigSchema);
13
+ //# sourceMappingURL=CargoConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CargoConfig.js","sourceRoot":"","sources":["../../src/models/CargoConfig.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,EAAE,EAAE,MAAM,EAAiB,MAAM,UAAU,CAAC;AAa3D,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAClC;IACE,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACnD,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IAC5C,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACtC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IACpC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;CACtC,EACD,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CACpC,CAAC;AAEF,iBAAiB,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9C,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AAEtC,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAe,aAAa,EAAE,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,160 @@
1
+ import type { Document } from "mongoose";
2
+ import mongoose from "mongoose";
3
+ /**
4
+ * Cidade RP (ex: Fluxo Roleplay, Valley Roleplay) — agrupa a config que é
5
+ * compartilhada entre todos os Servidores (facções) que operam nela: guild(s)
6
+ * Discord, cargo de menção fixo das ações, catálogo de cargos de facção e
7
+ * canais centralizados (marcar ação, castigo, etc). Sem isso esses mesmos IDs
8
+ * teriam que ser recadastrados em todo Servidor que atua na mesma cidade.
9
+ * Vive no banco PRÓPRIO do fac-control-bot, igual ao Servidor.
10
+ */
11
+ export interface ICidadeFaccao {
12
+ /** Nome de exibição da facção (ex: "🧙‍♀️Lords") */
13
+ nome: string;
14
+ /** ID do cargo Discord dessa facção, dentro do guildId da cidade */
15
+ cargoFaccaoId: string;
16
+ }
17
+ export interface ICidadeCanal {
18
+ /** Chave lógica usada como identificador (ex: "MARCAR_ACAO", "CASTIGO") */
19
+ key: string;
20
+ /** Label para exibição no painel admin */
21
+ label: string;
22
+ /** ID do canal Discord (snowflake). Vazio = não configurado */
23
+ channelId: string;
24
+ }
25
+ export interface ICidade extends Document {
26
+ /** Nome de exibição da cidade (ex: "Fluxo Roleplay") */
27
+ nome: string;
28
+ /** Guild Discord principal — onde vivem os cargos de facção, ações e castigo */
29
+ guildId: string;
30
+ /** Guild Discord dedicado a logs, quando a cidade usa um servidor separado do principal */
31
+ logsGuildId?: string;
32
+ /** Cargo pingado nas mensagens de ação — fixo por cidade (ex: cargo da PM) */
33
+ cargoComandoMilitarId: string;
34
+ /** Catálogo de cargos de facção conhecidos nessa cidade */
35
+ faccoes: ICidadeFaccao[];
36
+ /** Canais centralizados da cidade (marcar ação, castigo, etc) */
37
+ canais: ICidadeCanal[];
38
+ ativo: boolean;
39
+ criadoEm: Date;
40
+ /** Se no futuro, todos os workers do fac-helper-bot ficam pausados pra essa cidade até essa data */
41
+ workersPausedUntil?: Date | null;
42
+ /** Motivo opcional exibido no painel enquanto os workers estiverem pausados */
43
+ workersPausedReason?: string | null;
44
+ }
45
+ export declare const CidadeSchema: mongoose.Schema<ICidade, mongoose.Model<ICidade, any, any, any, any, any, ICidade>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, ICidade, Document<unknown, {}, ICidade, {
46
+ id: string;
47
+ }, mongoose.DefaultSchemaOptions> & Omit<ICidade & Required<{
48
+ _id: mongoose.Types.ObjectId;
49
+ }> & {
50
+ __v: number;
51
+ }, "id"> & {
52
+ id: string;
53
+ }, {
54
+ _id?: mongoose.SchemaDefinitionProperty<mongoose.Types.ObjectId, ICidade, Document<unknown, {}, ICidade, {
55
+ id: string;
56
+ }, mongoose.DefaultSchemaOptions> & Omit<ICidade & Required<{
57
+ _id: mongoose.Types.ObjectId;
58
+ }> & {
59
+ __v: number;
60
+ }, "id"> & {
61
+ id: string;
62
+ }>;
63
+ nome?: mongoose.SchemaDefinitionProperty<string, ICidade, Document<unknown, {}, ICidade, {
64
+ id: string;
65
+ }, mongoose.DefaultSchemaOptions> & Omit<ICidade & Required<{
66
+ _id: mongoose.Types.ObjectId;
67
+ }> & {
68
+ __v: number;
69
+ }, "id"> & {
70
+ id: string;
71
+ }>;
72
+ criadoEm?: mongoose.SchemaDefinitionProperty<Date, ICidade, Document<unknown, {}, ICidade, {
73
+ id: string;
74
+ }, mongoose.DefaultSchemaOptions> & Omit<ICidade & Required<{
75
+ _id: mongoose.Types.ObjectId;
76
+ }> & {
77
+ __v: number;
78
+ }, "id"> & {
79
+ id: string;
80
+ }>;
81
+ guildId?: mongoose.SchemaDefinitionProperty<string, ICidade, Document<unknown, {}, ICidade, {
82
+ id: string;
83
+ }, mongoose.DefaultSchemaOptions> & Omit<ICidade & Required<{
84
+ _id: mongoose.Types.ObjectId;
85
+ }> & {
86
+ __v: number;
87
+ }, "id"> & {
88
+ id: string;
89
+ }>;
90
+ logsGuildId?: mongoose.SchemaDefinitionProperty<string | undefined, ICidade, Document<unknown, {}, ICidade, {
91
+ id: string;
92
+ }, mongoose.DefaultSchemaOptions> & Omit<ICidade & Required<{
93
+ _id: mongoose.Types.ObjectId;
94
+ }> & {
95
+ __v: number;
96
+ }, "id"> & {
97
+ id: string;
98
+ }>;
99
+ cargoComandoMilitarId?: mongoose.SchemaDefinitionProperty<string, ICidade, Document<unknown, {}, ICidade, {
100
+ id: string;
101
+ }, mongoose.DefaultSchemaOptions> & Omit<ICidade & Required<{
102
+ _id: mongoose.Types.ObjectId;
103
+ }> & {
104
+ __v: number;
105
+ }, "id"> & {
106
+ id: string;
107
+ }>;
108
+ faccoes?: mongoose.SchemaDefinitionProperty<ICidadeFaccao[], ICidade, Document<unknown, {}, ICidade, {
109
+ id: string;
110
+ }, mongoose.DefaultSchemaOptions> & Omit<ICidade & Required<{
111
+ _id: mongoose.Types.ObjectId;
112
+ }> & {
113
+ __v: number;
114
+ }, "id"> & {
115
+ id: string;
116
+ }>;
117
+ canais?: mongoose.SchemaDefinitionProperty<ICidadeCanal[], ICidade, Document<unknown, {}, ICidade, {
118
+ id: string;
119
+ }, mongoose.DefaultSchemaOptions> & Omit<ICidade & Required<{
120
+ _id: mongoose.Types.ObjectId;
121
+ }> & {
122
+ __v: number;
123
+ }, "id"> & {
124
+ id: string;
125
+ }>;
126
+ ativo?: mongoose.SchemaDefinitionProperty<boolean, ICidade, Document<unknown, {}, ICidade, {
127
+ id: string;
128
+ }, mongoose.DefaultSchemaOptions> & Omit<ICidade & Required<{
129
+ _id: mongoose.Types.ObjectId;
130
+ }> & {
131
+ __v: number;
132
+ }, "id"> & {
133
+ id: string;
134
+ }>;
135
+ workersPausedUntil?: mongoose.SchemaDefinitionProperty<Date | null | undefined, ICidade, Document<unknown, {}, ICidade, {
136
+ id: string;
137
+ }, mongoose.DefaultSchemaOptions> & Omit<ICidade & Required<{
138
+ _id: mongoose.Types.ObjectId;
139
+ }> & {
140
+ __v: number;
141
+ }, "id"> & {
142
+ id: string;
143
+ }>;
144
+ workersPausedReason?: mongoose.SchemaDefinitionProperty<string | null | undefined, ICidade, Document<unknown, {}, ICidade, {
145
+ id: string;
146
+ }, mongoose.DefaultSchemaOptions> & Omit<ICidade & Required<{
147
+ _id: mongoose.Types.ObjectId;
148
+ }> & {
149
+ __v: number;
150
+ }, "id"> & {
151
+ id: string;
152
+ }>;
153
+ }, ICidade>;
154
+ export declare const CidadeModel: mongoose.Model<ICidade, {}, {}, {}, Document<unknown, {}, ICidade, {}, mongoose.DefaultSchemaOptions> & ICidade & Required<{
155
+ _id: mongoose.Types.ObjectId;
156
+ }> & {
157
+ __v: number;
158
+ } & {
159
+ id: string;
160
+ }, any, ICidade>;
@@ -0,0 +1,24 @@
1
+ import mongoose, { Schema } from "mongoose";
2
+ const CidadeFaccaoSchema = new Schema({
3
+ nome: { type: String, required: true },
4
+ cargoFaccaoId: { type: String, required: true },
5
+ }, { _id: false });
6
+ const CidadeCanalSchema = new Schema({
7
+ key: { type: String, required: true },
8
+ label: { type: String, required: true },
9
+ channelId: { type: String, default: "" },
10
+ }, { _id: false });
11
+ export const CidadeSchema = new Schema({
12
+ nome: { type: String, required: true },
13
+ guildId: { type: String, required: true },
14
+ logsGuildId: { type: String },
15
+ cargoComandoMilitarId: { type: String, required: true },
16
+ faccoes: { type: [CidadeFaccaoSchema], default: [] },
17
+ canais: { type: [CidadeCanalSchema], default: [] },
18
+ ativo: { type: Boolean, default: true },
19
+ criadoEm: { type: Date, default: Date.now },
20
+ workersPausedUntil: { type: Date, default: null },
21
+ workersPausedReason: { type: String, default: null },
22
+ });
23
+ export const CidadeModel = mongoose.model("Cidade", CidadeSchema);
24
+ //# sourceMappingURL=Cidade.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cidade.js","sourceRoot":"","sources":["../../src/models/Cidade.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAgD5C,MAAM,kBAAkB,GAAG,IAAI,MAAM,CACnC;IACE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACtC,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;CAChD,EACD,EAAE,GAAG,EAAE,KAAK,EAAE,CACf,CAAC;AAEF,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAClC;IACE,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvC,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;CACzC,EACD,EAAE,GAAG,EAAE,KAAK,EAAE,CACf,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,MAAM,CAAU;IAC9C,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACtC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzC,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;IAC7B,qBAAqB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvD,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IACpD,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IAClD,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;IACvC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;IAC3C,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IACjD,mBAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;CACrD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAU,QAAQ,EAAE,YAAY,CAAC,CAAC"}
@@ -0,0 +1,127 @@
1
+ import mongoose, { type Document } from "mongoose";
2
+ /**
3
+ * Cópia somente-leitura, no banco do PRÓPRIO tenant, do que ele precisa saber
4
+ * da Cidade (@luxorbots/fac-shared-db) — catálogo de facções e qual é a própria facção.
5
+ * Escrita pelo fac-control-bot (dono da Cidade) sempre que o catálogo ou o
6
+ * vínculo Servidor→Cidade muda; o tenant só lê. Existe pra evitar que cada
7
+ * bot consumidor (ex: fac-assist-bot) precise abrir uma connection cross-db
8
+ * pro banco do fac-control-bot só pra ler isso. Singleton via configId fixo,
9
+ * mesmo padrão de MarcarAcaoGuildConfig/PedirRecGuildConfig.
10
+ */
11
+ export interface ICidadeCacheFaccao {
12
+ nome: string;
13
+ cargoFaccaoId: string;
14
+ }
15
+ export interface ICidadeCache extends Document {
16
+ configId: string;
17
+ cidadeNome: string;
18
+ /** Catálogo completo de facções da cidade (inclui a própria) */
19
+ faccoes: ICidadeCacheFaccao[];
20
+ /** Nome da própria facção dentro do catálogo (Servidor.faccaoNome) */
21
+ minhaFaccaoNome?: string;
22
+ /** Cargo Discord da própria facção — denormalizado pra não precisar buscar em `faccoes` */
23
+ minhaFaccaoCargoId?: string;
24
+ /** Espelho de Cidade.workersPausedUntil — se no futuro, workers do fac-helper-bot ficam pausados pra essa cidade */
25
+ workersPausedUntil?: Date | null;
26
+ /** Espelho de Cidade.workersPausedReason */
27
+ workersPausedReason?: string | null;
28
+ atualizadoEm: Date;
29
+ }
30
+ export declare const CidadeCacheSchema: mongoose.Schema<ICidadeCache, mongoose.Model<ICidadeCache, any, any, any, any, any, ICidadeCache>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, ICidadeCache, mongoose.Document<unknown, {}, ICidadeCache, {
31
+ id: string;
32
+ }, mongoose.DefaultSchemaOptions> & Omit<ICidadeCache & Required<{
33
+ _id: mongoose.Types.ObjectId;
34
+ }> & {
35
+ __v: number;
36
+ }, "id"> & {
37
+ id: string;
38
+ }, {
39
+ _id?: mongoose.SchemaDefinitionProperty<mongoose.Types.ObjectId, ICidadeCache, mongoose.Document<unknown, {}, ICidadeCache, {
40
+ id: string;
41
+ }, mongoose.DefaultSchemaOptions> & Omit<ICidadeCache & Required<{
42
+ _id: mongoose.Types.ObjectId;
43
+ }> & {
44
+ __v: number;
45
+ }, "id"> & {
46
+ id: string;
47
+ }>;
48
+ configId?: mongoose.SchemaDefinitionProperty<string, ICidadeCache, mongoose.Document<unknown, {}, ICidadeCache, {
49
+ id: string;
50
+ }, mongoose.DefaultSchemaOptions> & Omit<ICidadeCache & Required<{
51
+ _id: mongoose.Types.ObjectId;
52
+ }> & {
53
+ __v: number;
54
+ }, "id"> & {
55
+ id: string;
56
+ }>;
57
+ atualizadoEm?: mongoose.SchemaDefinitionProperty<Date, ICidadeCache, mongoose.Document<unknown, {}, ICidadeCache, {
58
+ id: string;
59
+ }, mongoose.DefaultSchemaOptions> & Omit<ICidadeCache & Required<{
60
+ _id: mongoose.Types.ObjectId;
61
+ }> & {
62
+ __v: number;
63
+ }, "id"> & {
64
+ id: string;
65
+ }>;
66
+ faccoes?: mongoose.SchemaDefinitionProperty<ICidadeCacheFaccao[], ICidadeCache, mongoose.Document<unknown, {}, ICidadeCache, {
67
+ id: string;
68
+ }, mongoose.DefaultSchemaOptions> & Omit<ICidadeCache & Required<{
69
+ _id: mongoose.Types.ObjectId;
70
+ }> & {
71
+ __v: number;
72
+ }, "id"> & {
73
+ id: string;
74
+ }>;
75
+ workersPausedUntil?: mongoose.SchemaDefinitionProperty<Date | null | undefined, ICidadeCache, mongoose.Document<unknown, {}, ICidadeCache, {
76
+ id: string;
77
+ }, mongoose.DefaultSchemaOptions> & Omit<ICidadeCache & Required<{
78
+ _id: mongoose.Types.ObjectId;
79
+ }> & {
80
+ __v: number;
81
+ }, "id"> & {
82
+ id: string;
83
+ }>;
84
+ workersPausedReason?: mongoose.SchemaDefinitionProperty<string | null | undefined, ICidadeCache, mongoose.Document<unknown, {}, ICidadeCache, {
85
+ id: string;
86
+ }, mongoose.DefaultSchemaOptions> & Omit<ICidadeCache & Required<{
87
+ _id: mongoose.Types.ObjectId;
88
+ }> & {
89
+ __v: number;
90
+ }, "id"> & {
91
+ id: string;
92
+ }>;
93
+ cidadeNome?: mongoose.SchemaDefinitionProperty<string, ICidadeCache, mongoose.Document<unknown, {}, ICidadeCache, {
94
+ id: string;
95
+ }, mongoose.DefaultSchemaOptions> & Omit<ICidadeCache & Required<{
96
+ _id: mongoose.Types.ObjectId;
97
+ }> & {
98
+ __v: number;
99
+ }, "id"> & {
100
+ id: string;
101
+ }>;
102
+ minhaFaccaoNome?: mongoose.SchemaDefinitionProperty<string | undefined, ICidadeCache, mongoose.Document<unknown, {}, ICidadeCache, {
103
+ id: string;
104
+ }, mongoose.DefaultSchemaOptions> & Omit<ICidadeCache & Required<{
105
+ _id: mongoose.Types.ObjectId;
106
+ }> & {
107
+ __v: number;
108
+ }, "id"> & {
109
+ id: string;
110
+ }>;
111
+ minhaFaccaoCargoId?: mongoose.SchemaDefinitionProperty<string | undefined, ICidadeCache, mongoose.Document<unknown, {}, ICidadeCache, {
112
+ id: string;
113
+ }, mongoose.DefaultSchemaOptions> & Omit<ICidadeCache & Required<{
114
+ _id: mongoose.Types.ObjectId;
115
+ }> & {
116
+ __v: number;
117
+ }, "id"> & {
118
+ id: string;
119
+ }>;
120
+ }, ICidadeCache>;
121
+ export declare const CidadeCacheModel: mongoose.Model<ICidadeCache, {}, {}, {}, mongoose.Document<unknown, {}, ICidadeCache, {}, mongoose.DefaultSchemaOptions> & ICidadeCache & Required<{
122
+ _id: mongoose.Types.ObjectId;
123
+ }> & {
124
+ __v: number;
125
+ } & {
126
+ id: string;
127
+ }, any, ICidadeCache>;
@@ -0,0 +1,17 @@
1
+ import mongoose, { Schema } from "mongoose";
2
+ const CidadeCacheFaccaoSchema = new Schema({
3
+ nome: { type: String, required: true },
4
+ cargoFaccaoId: { type: String, required: true },
5
+ }, { _id: false });
6
+ export const CidadeCacheSchema = new Schema({
7
+ configId: { type: String, default: "main", unique: true },
8
+ cidadeNome: { type: String, required: true },
9
+ faccoes: { type: [CidadeCacheFaccaoSchema], default: [] },
10
+ minhaFaccaoNome: { type: String },
11
+ minhaFaccaoCargoId: { type: String },
12
+ workersPausedUntil: { type: Date, default: null },
13
+ workersPausedReason: { type: String, default: null },
14
+ atualizadoEm: { type: Date, default: Date.now },
15
+ });
16
+ export const CidadeCacheModel = mongoose.model("CidadeCache", CidadeCacheSchema);
17
+ //# sourceMappingURL=CidadeCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CidadeCache.js","sourceRoot":"","sources":["../../src/models/CidadeCache.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,EAAE,EAAE,MAAM,EAAiB,MAAM,UAAU,CAAC;AAoC3D,MAAM,uBAAuB,GAAG,IAAI,MAAM,CACxC;IACE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACtC,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;CAChD,EACD,EAAE,GAAG,EAAE,KAAK,EAAE,CACf,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAAe;IACxD,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;IAEzD,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC5C,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IACzD,eAAe,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;IACjC,kBAAkB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;IAEpC,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IACjD,mBAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;IAEpD,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;CAChD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAe,aAAa,EAAE,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,41 @@
1
+ import mongoose, { type Document } from "mongoose";
2
+ /**
3
+ * Configuração de Craft (peso máximo de mochila + receitas).
4
+ * Extraído de BotConfig — uso Singleton via configId fixo ("main").
5
+ */
6
+ export interface ICraftConfig extends Document {
7
+ configId: string;
8
+ /** Peso máximo da mochila em kg */
9
+ pesoMaxMochila: number;
10
+ /** Receitas de craft por tipo de munição (pesos, receitas de carga/munição, tempos) */
11
+ craftReceitas: {
12
+ tipo: string;
13
+ pesos: {
14
+ polvora: number;
15
+ cartucho: number;
16
+ projetil: number;
17
+ municao: number;
18
+ };
19
+ receitaCarga: {
20
+ polvora: number;
21
+ cartucho: number;
22
+ produz: number;
23
+ };
24
+ receitaMunicao: {
25
+ projetil: number;
26
+ carga: number;
27
+ produz: number;
28
+ };
29
+ tempoCraft: {
30
+ carga: number;
31
+ municao: number;
32
+ };
33
+ }[];
34
+ }
35
+ export declare const CraftConfigModel: mongoose.Model<ICraftConfig, {}, {}, {}, mongoose.Document<unknown, {}, ICraftConfig, {}, mongoose.DefaultSchemaOptions> & ICraftConfig & Required<{
36
+ _id: mongoose.Types.ObjectId;
37
+ }> & {
38
+ __v: number;
39
+ } & {
40
+ id: string;
41
+ }, any, ICraftConfig>;
@@ -0,0 +1,34 @@
1
+ import mongoose, { Schema } from "mongoose";
2
+ const CraftConfigSchema = new Schema({
3
+ configId: { type: String, default: "main", unique: true },
4
+ pesoMaxMochila: { type: Number, default: 150 },
5
+ craftReceitas: {
6
+ type: [
7
+ {
8
+ tipo: { type: String, required: true },
9
+ pesos: {
10
+ polvora: { type: Number, required: true },
11
+ cartucho: { type: Number, required: true },
12
+ projetil: { type: Number, required: true },
13
+ municao: { type: Number, required: true },
14
+ },
15
+ receitaCarga: {
16
+ polvora: { type: Number, required: true },
17
+ cartucho: { type: Number, required: true },
18
+ produz: { type: Number, required: true },
19
+ },
20
+ receitaMunicao: {
21
+ projetil: { type: Number, required: true },
22
+ carga: { type: Number, required: true },
23
+ produz: { type: Number, required: true },
24
+ },
25
+ tempoCraft: {
26
+ carga: { type: Number, required: true },
27
+ municao: { type: Number, required: true },
28
+ },
29
+ },
30
+ ],
31
+ },
32
+ });
33
+ export const CraftConfigModel = mongoose.model("CraftConfig", CraftConfigSchema);
34
+ //# sourceMappingURL=CraftConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CraftConfig.js","sourceRoot":"","sources":["../../src/models/CraftConfig.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,EAAE,EAAE,MAAM,EAAiB,MAAM,UAAU,CAAC;AAsB3D,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAAe;IACjD,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;IAEzD,cAAc,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE;IAC9C,aAAa,EAAE;QACb,IAAI,EAAE;YACJ;gBACE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACtC,KAAK,EAAE;oBACL,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;oBACzC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC1C,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC1C,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;iBAC1C;gBACD,YAAY,EAAE;oBACZ,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;oBACzC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC1C,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;iBACzC;gBACD,cAAc,EAAE;oBACd,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC1C,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;oBACvC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;iBACzC;gBACD,UAAU,EAAE;oBACV,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;oBACvC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;iBAC1C;aACF;SACF;KACF;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAe,aAAa,EAAE,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { Document } from "mongoose";
2
+ import mongoose from "mongoose";
3
+ export interface IFarm extends Document {
4
+ odiscordId: string;
5
+ nomeInGame: string;
6
+ idInGame: string;
7
+ cargo: string;
8
+ dataEntrega: string;
9
+ dataVencimento: string;
10
+ registradoPor: string;
11
+ status: "ativo" | "vencido" | "entregue";
12
+ cargoAnterior?: string;
13
+ cargosAnterioresIds?: string[];
14
+ rebaixado?: boolean;
15
+ notificadoDmVencimento?: boolean;
16
+ manual?: boolean;
17
+ }
18
+ export declare const FarmModel: mongoose.Model<IFarm, {}, {}, {}, Document<unknown, {}, IFarm, {}, mongoose.DefaultSchemaOptions> & IFarm & Required<{
19
+ _id: mongoose.Types.ObjectId;
20
+ }> & {
21
+ __v: number;
22
+ } & {
23
+ id: string;
24
+ }, any, IFarm>;
@@ -0,0 +1,20 @@
1
+ import mongoose, { Schema } from "mongoose";
2
+ const FarmSchema = new Schema({
3
+ odiscordId: { type: String, required: true, unique: true, index: true },
4
+ nomeInGame: { type: String, required: true },
5
+ idInGame: { type: String, required: true, index: true },
6
+ cargo: { type: String, required: true },
7
+ dataEntrega: { type: String, required: true },
8
+ dataVencimento: { type: String, required: true, index: true },
9
+ registradoPor: { type: String, required: true },
10
+ status: { type: String, enum: ["ativo", "vencido", "entregue"], default: "ativo", index: true },
11
+ cargoAnterior: { type: String },
12
+ cargosAnterioresIds: { type: [String], default: undefined },
13
+ rebaixado: { type: Boolean, default: false },
14
+ notificadoDmVencimento: { type: Boolean, default: false },
15
+ manual: { type: Boolean, default: false, index: true },
16
+ }, { timestamps: true });
17
+ // Índice composto para consultas frequentes
18
+ FarmSchema.index({ status: 1, dataVencimento: 1 });
19
+ export const FarmModel = mongoose.model("Farm", FarmSchema);
20
+ //# sourceMappingURL=Farm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Farm.js","sourceRoot":"","sources":["../../src/models/Farm.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAkB5C,MAAM,UAAU,GAAG,IAAI,MAAM,CAC3B;IACE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;IACvE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC5C,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;IACvD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvC,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC7C,cAAc,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;IAC7D,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC/C,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE;IAC/F,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;IAC/B,mBAAmB,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE;IAC3D,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;IAC5C,sBAAsB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;IACzD,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;CACvD,EACD,EAAE,UAAU,EAAE,IAAI,EAAE,CACrB,CAAC;AAEF,4CAA4C;AAC5C,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC;AAEnD,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAQ,MAAM,EAAE,UAAU,CAAC,CAAC"}