@ntalmagor/3drise-common 1.0.14 → 1.0.16

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,6 +1,13 @@
1
1
  import { Model } from 'sequelize-typescript';
2
2
  import { User } from './User';
3
3
  import { Conversation } from './Conversation';
4
+ export declare enum BudgetChargeStatus {
5
+ QUEUED = "queued",
6
+ CHARGED = "charged",
7
+ ZERO_COST = "zero_cost",
8
+ PENDING_PRICING = "pending_pricing",
9
+ CHARGE_FAILED = "charge_failed"
10
+ }
4
11
  export declare class LlmRequest extends Model {
5
12
  id: string;
6
13
  conversationId?: string;
@@ -15,6 +22,14 @@ export declare class LlmRequest extends Model {
15
22
  responseTimeMs?: number;
16
23
  userRating?: number;
17
24
  tokenUsageBreakdown?: object;
25
+ requestCostUsd?: number;
26
+ currencyCode?: string;
27
+ pricingSource?: string;
28
+ pricingVersion?: string;
29
+ pricingSnapshot?: object;
30
+ budgetTransactionId?: string;
31
+ budgetChargeStatus: BudgetChargeStatus;
32
+ chargeError?: string;
18
33
  skillName?: string;
19
34
  success: boolean;
20
35
  createdAt: Date;
@@ -9,10 +9,18 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.LlmRequest = void 0;
12
+ exports.LlmRequest = exports.BudgetChargeStatus = void 0;
13
13
  const sequelize_typescript_1 = require("sequelize-typescript");
14
14
  const User_1 = require("./User");
15
15
  const Conversation_1 = require("./Conversation");
16
+ var BudgetChargeStatus;
17
+ (function (BudgetChargeStatus) {
18
+ BudgetChargeStatus["QUEUED"] = "queued";
19
+ BudgetChargeStatus["CHARGED"] = "charged";
20
+ BudgetChargeStatus["ZERO_COST"] = "zero_cost";
21
+ BudgetChargeStatus["PENDING_PRICING"] = "pending_pricing";
22
+ BudgetChargeStatus["CHARGE_FAILED"] = "charge_failed";
23
+ })(BudgetChargeStatus || (exports.BudgetChargeStatus = BudgetChargeStatus = {}));
16
24
  let LlmRequest = class LlmRequest extends sequelize_typescript_1.Model {
17
25
  };
18
26
  exports.LlmRequest = LlmRequest;
@@ -88,6 +96,48 @@ __decorate([
88
96
  (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.JSON),
89
97
  __metadata("design:type", Object)
90
98
  ], LlmRequest.prototype, "tokenUsageBreakdown", void 0);
99
+ __decorate([
100
+ (0, sequelize_typescript_1.AllowNull)(true),
101
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.DECIMAL(12, 6)),
102
+ __metadata("design:type", Number)
103
+ ], LlmRequest.prototype, "requestCostUsd", void 0);
104
+ __decorate([
105
+ (0, sequelize_typescript_1.AllowNull)(true),
106
+ (0, sequelize_typescript_1.Default)('USD'),
107
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.STRING(10)),
108
+ __metadata("design:type", String)
109
+ ], LlmRequest.prototype, "currencyCode", void 0);
110
+ __decorate([
111
+ (0, sequelize_typescript_1.AllowNull)(true),
112
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.STRING(50)),
113
+ __metadata("design:type", String)
114
+ ], LlmRequest.prototype, "pricingSource", void 0);
115
+ __decorate([
116
+ (0, sequelize_typescript_1.AllowNull)(true),
117
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.STRING(50)),
118
+ __metadata("design:type", String)
119
+ ], LlmRequest.prototype, "pricingVersion", void 0);
120
+ __decorate([
121
+ (0, sequelize_typescript_1.AllowNull)(true),
122
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.JSON),
123
+ __metadata("design:type", Object)
124
+ ], LlmRequest.prototype, "pricingSnapshot", void 0);
125
+ __decorate([
126
+ (0, sequelize_typescript_1.AllowNull)(true),
127
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.UUID),
128
+ __metadata("design:type", String)
129
+ ], LlmRequest.prototype, "budgetTransactionId", void 0);
130
+ __decorate([
131
+ (0, sequelize_typescript_1.AllowNull)(false),
132
+ (0, sequelize_typescript_1.Default)(BudgetChargeStatus.QUEUED),
133
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.STRING(30)),
134
+ __metadata("design:type", String)
135
+ ], LlmRequest.prototype, "budgetChargeStatus", void 0);
136
+ __decorate([
137
+ (0, sequelize_typescript_1.AllowNull)(true),
138
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.TEXT),
139
+ __metadata("design:type", String)
140
+ ], LlmRequest.prototype, "chargeError", void 0);
91
141
  __decorate([
92
142
  (0, sequelize_typescript_1.AllowNull)(true),
93
143
  (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.STRING(100)),
@@ -0,0 +1,22 @@
1
+ import { Model } from 'sequelize-typescript';
2
+ import { UserSubscription } from './UserSubscription';
3
+ export declare enum PlanName {
4
+ FREE = "FREE",
5
+ BASIC = "BASIC",
6
+ PREMIUM = "PREMIUM",
7
+ BUDGET = "BUDGET"
8
+ }
9
+ export declare class SubscriptionPlan extends Model {
10
+ id: string;
11
+ name: PlanName;
12
+ storageSpaceGB: number;
13
+ maxProjects: number;
14
+ maxAssets: number;
15
+ tokens: number;
16
+ monthlyPrice: number;
17
+ isActive: boolean;
18
+ paddlePriceId?: string;
19
+ createdAt: Date;
20
+ updatedAt: Date;
21
+ userSubscriptions: UserSubscription[];
22
+ }
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SubscriptionPlan = exports.PlanName = void 0;
13
+ const sequelize_typescript_1 = require("sequelize-typescript");
14
+ const UserSubscription_1 = require("./UserSubscription");
15
+ var PlanName;
16
+ (function (PlanName) {
17
+ PlanName["FREE"] = "FREE";
18
+ PlanName["BASIC"] = "BASIC";
19
+ PlanName["PREMIUM"] = "PREMIUM";
20
+ PlanName["BUDGET"] = "BUDGET";
21
+ })(PlanName || (exports.PlanName = PlanName = {}));
22
+ let SubscriptionPlan = class SubscriptionPlan extends sequelize_typescript_1.Model {
23
+ };
24
+ exports.SubscriptionPlan = SubscriptionPlan;
25
+ __decorate([
26
+ sequelize_typescript_1.PrimaryKey,
27
+ (0, sequelize_typescript_1.Default)(sequelize_typescript_1.DataType.UUIDV4),
28
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.UUID),
29
+ __metadata("design:type", String)
30
+ ], SubscriptionPlan.prototype, "id", void 0);
31
+ __decorate([
32
+ (0, sequelize_typescript_1.AllowNull)(false),
33
+ (0, sequelize_typescript_1.Column)({
34
+ type: sequelize_typescript_1.DataType.ENUM(...Object.values(PlanName)),
35
+ }),
36
+ __metadata("design:type", String)
37
+ ], SubscriptionPlan.prototype, "name", void 0);
38
+ __decorate([
39
+ (0, sequelize_typescript_1.AllowNull)(false),
40
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.INTEGER),
41
+ __metadata("design:type", Number)
42
+ ], SubscriptionPlan.prototype, "storageSpaceGB", void 0);
43
+ __decorate([
44
+ (0, sequelize_typescript_1.AllowNull)(false),
45
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.INTEGER),
46
+ __metadata("design:type", Number)
47
+ ], SubscriptionPlan.prototype, "maxProjects", void 0);
48
+ __decorate([
49
+ (0, sequelize_typescript_1.AllowNull)(false),
50
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.INTEGER),
51
+ __metadata("design:type", Number)
52
+ ], SubscriptionPlan.prototype, "maxAssets", void 0);
53
+ __decorate([
54
+ (0, sequelize_typescript_1.AllowNull)(false),
55
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.INTEGER),
56
+ __metadata("design:type", Number)
57
+ ], SubscriptionPlan.prototype, "tokens", void 0);
58
+ __decorate([
59
+ (0, sequelize_typescript_1.AllowNull)(false),
60
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.DECIMAL(10, 2)),
61
+ __metadata("design:type", Number)
62
+ ], SubscriptionPlan.prototype, "monthlyPrice", void 0);
63
+ __decorate([
64
+ (0, sequelize_typescript_1.Default)(true),
65
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.BOOLEAN),
66
+ __metadata("design:type", Boolean)
67
+ ], SubscriptionPlan.prototype, "isActive", void 0);
68
+ __decorate([
69
+ (0, sequelize_typescript_1.AllowNull)(true),
70
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.STRING),
71
+ __metadata("design:type", String)
72
+ ], SubscriptionPlan.prototype, "paddlePriceId", void 0);
73
+ __decorate([
74
+ sequelize_typescript_1.CreatedAt,
75
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.DATE),
76
+ __metadata("design:type", Date)
77
+ ], SubscriptionPlan.prototype, "createdAt", void 0);
78
+ __decorate([
79
+ sequelize_typescript_1.UpdatedAt,
80
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.DATE),
81
+ __metadata("design:type", Date)
82
+ ], SubscriptionPlan.prototype, "updatedAt", void 0);
83
+ __decorate([
84
+ (0, sequelize_typescript_1.HasMany)(() => UserSubscription_1.UserSubscription),
85
+ __metadata("design:type", Array)
86
+ ], SubscriptionPlan.prototype, "userSubscriptions", void 0);
87
+ exports.SubscriptionPlan = SubscriptionPlan = __decorate([
88
+ (0, sequelize_typescript_1.Table)({
89
+ tableName: 'subscription_plans',
90
+ timestamps: true,
91
+ })
92
+ ], SubscriptionPlan);
@@ -0,0 +1,22 @@
1
+ import { Model } from 'sequelize-typescript';
2
+ import { User } from './User';
3
+ export declare enum UserBudgetStatus {
4
+ ACTIVE = "active",
5
+ INACTIVE = "inactive"
6
+ }
7
+ export declare class UserBudget extends Model {
8
+ id: string;
9
+ userId: string;
10
+ activeSubscriptionId?: string;
11
+ currencyCode: string;
12
+ totalFunded: number;
13
+ totalSpent: number;
14
+ availableBalance: number;
15
+ lowBalanceThreshold: number;
16
+ status: UserBudgetStatus;
17
+ lastChargedAt?: Date;
18
+ lastTopUpAt?: Date;
19
+ createdAt: Date;
20
+ updatedAt: Date;
21
+ user: User;
22
+ }
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UserBudget = exports.UserBudgetStatus = void 0;
13
+ const sequelize_typescript_1 = require("sequelize-typescript");
14
+ const User_1 = require("./User");
15
+ var UserBudgetStatus;
16
+ (function (UserBudgetStatus) {
17
+ UserBudgetStatus["ACTIVE"] = "active";
18
+ UserBudgetStatus["INACTIVE"] = "inactive";
19
+ })(UserBudgetStatus || (exports.UserBudgetStatus = UserBudgetStatus = {}));
20
+ let UserBudget = class UserBudget extends sequelize_typescript_1.Model {
21
+ };
22
+ exports.UserBudget = UserBudget;
23
+ __decorate([
24
+ sequelize_typescript_1.PrimaryKey,
25
+ (0, sequelize_typescript_1.Default)(sequelize_typescript_1.DataType.UUIDV4),
26
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.UUID),
27
+ __metadata("design:type", String)
28
+ ], UserBudget.prototype, "id", void 0);
29
+ __decorate([
30
+ (0, sequelize_typescript_1.ForeignKey)(() => User_1.User),
31
+ sequelize_typescript_1.Unique,
32
+ (0, sequelize_typescript_1.AllowNull)(false),
33
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.UUID),
34
+ __metadata("design:type", String)
35
+ ], UserBudget.prototype, "userId", void 0);
36
+ __decorate([
37
+ (0, sequelize_typescript_1.AllowNull)(true),
38
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.UUID),
39
+ __metadata("design:type", String)
40
+ ], UserBudget.prototype, "activeSubscriptionId", void 0);
41
+ __decorate([
42
+ (0, sequelize_typescript_1.AllowNull)(false),
43
+ (0, sequelize_typescript_1.Default)('USD'),
44
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.STRING(10)),
45
+ __metadata("design:type", String)
46
+ ], UserBudget.prototype, "currencyCode", void 0);
47
+ __decorate([
48
+ (0, sequelize_typescript_1.AllowNull)(false),
49
+ (0, sequelize_typescript_1.Default)(0),
50
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.DECIMAL(12, 6)),
51
+ __metadata("design:type", Number)
52
+ ], UserBudget.prototype, "totalFunded", void 0);
53
+ __decorate([
54
+ (0, sequelize_typescript_1.AllowNull)(false),
55
+ (0, sequelize_typescript_1.Default)(0),
56
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.DECIMAL(12, 6)),
57
+ __metadata("design:type", Number)
58
+ ], UserBudget.prototype, "totalSpent", void 0);
59
+ __decorate([
60
+ (0, sequelize_typescript_1.AllowNull)(false),
61
+ (0, sequelize_typescript_1.Default)(0),
62
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.DECIMAL(12, 6)),
63
+ __metadata("design:type", Number)
64
+ ], UserBudget.prototype, "availableBalance", void 0);
65
+ __decorate([
66
+ (0, sequelize_typescript_1.AllowNull)(false),
67
+ (0, sequelize_typescript_1.Default)(5),
68
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.DECIMAL(12, 6)),
69
+ __metadata("design:type", Number)
70
+ ], UserBudget.prototype, "lowBalanceThreshold", void 0);
71
+ __decorate([
72
+ (0, sequelize_typescript_1.AllowNull)(false),
73
+ (0, sequelize_typescript_1.Default)(UserBudgetStatus.ACTIVE),
74
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.STRING(20)),
75
+ __metadata("design:type", String)
76
+ ], UserBudget.prototype, "status", void 0);
77
+ __decorate([
78
+ (0, sequelize_typescript_1.AllowNull)(true),
79
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.DATE),
80
+ __metadata("design:type", Date)
81
+ ], UserBudget.prototype, "lastChargedAt", void 0);
82
+ __decorate([
83
+ (0, sequelize_typescript_1.AllowNull)(true),
84
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.DATE),
85
+ __metadata("design:type", Date)
86
+ ], UserBudget.prototype, "lastTopUpAt", void 0);
87
+ __decorate([
88
+ sequelize_typescript_1.CreatedAt,
89
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.DATE),
90
+ __metadata("design:type", Date)
91
+ ], UserBudget.prototype, "createdAt", void 0);
92
+ __decorate([
93
+ sequelize_typescript_1.UpdatedAt,
94
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.DATE),
95
+ __metadata("design:type", Date)
96
+ ], UserBudget.prototype, "updatedAt", void 0);
97
+ __decorate([
98
+ (0, sequelize_typescript_1.BelongsTo)(() => User_1.User),
99
+ __metadata("design:type", User_1.User)
100
+ ], UserBudget.prototype, "user", void 0);
101
+ exports.UserBudget = UserBudget = __decorate([
102
+ (0, sequelize_typescript_1.Table)({
103
+ tableName: 'user_budgets',
104
+ timestamps: true,
105
+ })
106
+ ], UserBudget);
@@ -0,0 +1,34 @@
1
+ import { Model } from 'sequelize-typescript';
2
+ import { User } from './User';
3
+ import { UserBudget } from './UserBudget';
4
+ import { LlmRequest } from './LlmRequest';
5
+ export declare enum UserBudgetTransactionType {
6
+ TOPUP = "topup",
7
+ LLM_CHARGE = "llm_charge",
8
+ REFUND = "refund",
9
+ MANUAL_ADJUSTMENT = "manual_adjustment"
10
+ }
11
+ export declare class UserBudgetTransaction extends Model {
12
+ id: string;
13
+ userBudgetId: string;
14
+ userId: string;
15
+ llmRequestId?: string;
16
+ sourceType: UserBudgetTransactionType;
17
+ amountDelta: number;
18
+ balanceBefore: number;
19
+ balanceAfter: number;
20
+ currencyCode: string;
21
+ provider?: string;
22
+ modelName?: string;
23
+ pricingSource?: string;
24
+ pricingVersion?: string;
25
+ pricingSnapshot?: object;
26
+ externalReference?: string;
27
+ idempotencyKey: string;
28
+ metadata?: object;
29
+ createdAt: Date;
30
+ updatedAt: Date;
31
+ userBudget: UserBudget;
32
+ user: User;
33
+ llmRequest?: LlmRequest;
34
+ }
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UserBudgetTransaction = exports.UserBudgetTransactionType = void 0;
13
+ const sequelize_typescript_1 = require("sequelize-typescript");
14
+ const User_1 = require("./User");
15
+ const UserBudget_1 = require("./UserBudget");
16
+ const LlmRequest_1 = require("./LlmRequest");
17
+ var UserBudgetTransactionType;
18
+ (function (UserBudgetTransactionType) {
19
+ UserBudgetTransactionType["TOPUP"] = "topup";
20
+ UserBudgetTransactionType["LLM_CHARGE"] = "llm_charge";
21
+ UserBudgetTransactionType["REFUND"] = "refund";
22
+ UserBudgetTransactionType["MANUAL_ADJUSTMENT"] = "manual_adjustment";
23
+ })(UserBudgetTransactionType || (exports.UserBudgetTransactionType = UserBudgetTransactionType = {}));
24
+ let UserBudgetTransaction = class UserBudgetTransaction extends sequelize_typescript_1.Model {
25
+ };
26
+ exports.UserBudgetTransaction = UserBudgetTransaction;
27
+ __decorate([
28
+ sequelize_typescript_1.PrimaryKey,
29
+ (0, sequelize_typescript_1.Default)(sequelize_typescript_1.DataType.UUIDV4),
30
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.UUID),
31
+ __metadata("design:type", String)
32
+ ], UserBudgetTransaction.prototype, "id", void 0);
33
+ __decorate([
34
+ (0, sequelize_typescript_1.ForeignKey)(() => UserBudget_1.UserBudget),
35
+ (0, sequelize_typescript_1.AllowNull)(false),
36
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.UUID),
37
+ __metadata("design:type", String)
38
+ ], UserBudgetTransaction.prototype, "userBudgetId", void 0);
39
+ __decorate([
40
+ (0, sequelize_typescript_1.ForeignKey)(() => User_1.User),
41
+ (0, sequelize_typescript_1.AllowNull)(false),
42
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.UUID),
43
+ __metadata("design:type", String)
44
+ ], UserBudgetTransaction.prototype, "userId", void 0);
45
+ __decorate([
46
+ (0, sequelize_typescript_1.ForeignKey)(() => LlmRequest_1.LlmRequest),
47
+ (0, sequelize_typescript_1.AllowNull)(true),
48
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.UUID),
49
+ __metadata("design:type", String)
50
+ ], UserBudgetTransaction.prototype, "llmRequestId", void 0);
51
+ __decorate([
52
+ (0, sequelize_typescript_1.AllowNull)(false),
53
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.STRING(30)),
54
+ __metadata("design:type", String)
55
+ ], UserBudgetTransaction.prototype, "sourceType", void 0);
56
+ __decorate([
57
+ (0, sequelize_typescript_1.AllowNull)(false),
58
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.DECIMAL(12, 6)),
59
+ __metadata("design:type", Number)
60
+ ], UserBudgetTransaction.prototype, "amountDelta", void 0);
61
+ __decorate([
62
+ (0, sequelize_typescript_1.AllowNull)(false),
63
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.DECIMAL(12, 6)),
64
+ __metadata("design:type", Number)
65
+ ], UserBudgetTransaction.prototype, "balanceBefore", void 0);
66
+ __decorate([
67
+ (0, sequelize_typescript_1.AllowNull)(false),
68
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.DECIMAL(12, 6)),
69
+ __metadata("design:type", Number)
70
+ ], UserBudgetTransaction.prototype, "balanceAfter", void 0);
71
+ __decorate([
72
+ (0, sequelize_typescript_1.AllowNull)(false),
73
+ (0, sequelize_typescript_1.Default)('USD'),
74
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.STRING(10)),
75
+ __metadata("design:type", String)
76
+ ], UserBudgetTransaction.prototype, "currencyCode", void 0);
77
+ __decorate([
78
+ (0, sequelize_typescript_1.AllowNull)(true),
79
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.STRING(50)),
80
+ __metadata("design:type", String)
81
+ ], UserBudgetTransaction.prototype, "provider", void 0);
82
+ __decorate([
83
+ (0, sequelize_typescript_1.AllowNull)(true),
84
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.STRING(100)),
85
+ __metadata("design:type", String)
86
+ ], UserBudgetTransaction.prototype, "modelName", void 0);
87
+ __decorate([
88
+ (0, sequelize_typescript_1.AllowNull)(true),
89
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.STRING(50)),
90
+ __metadata("design:type", String)
91
+ ], UserBudgetTransaction.prototype, "pricingSource", void 0);
92
+ __decorate([
93
+ (0, sequelize_typescript_1.AllowNull)(true),
94
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.STRING(50)),
95
+ __metadata("design:type", String)
96
+ ], UserBudgetTransaction.prototype, "pricingVersion", void 0);
97
+ __decorate([
98
+ (0, sequelize_typescript_1.AllowNull)(true),
99
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.JSON),
100
+ __metadata("design:type", Object)
101
+ ], UserBudgetTransaction.prototype, "pricingSnapshot", void 0);
102
+ __decorate([
103
+ (0, sequelize_typescript_1.AllowNull)(true),
104
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.STRING(255)),
105
+ __metadata("design:type", String)
106
+ ], UserBudgetTransaction.prototype, "externalReference", void 0);
107
+ __decorate([
108
+ sequelize_typescript_1.Unique,
109
+ (0, sequelize_typescript_1.AllowNull)(false),
110
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.STRING(255)),
111
+ __metadata("design:type", String)
112
+ ], UserBudgetTransaction.prototype, "idempotencyKey", void 0);
113
+ __decorate([
114
+ (0, sequelize_typescript_1.AllowNull)(true),
115
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.JSON),
116
+ __metadata("design:type", Object)
117
+ ], UserBudgetTransaction.prototype, "metadata", void 0);
118
+ __decorate([
119
+ sequelize_typescript_1.CreatedAt,
120
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.DATE),
121
+ __metadata("design:type", Date)
122
+ ], UserBudgetTransaction.prototype, "createdAt", void 0);
123
+ __decorate([
124
+ sequelize_typescript_1.UpdatedAt,
125
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.DATE),
126
+ __metadata("design:type", Date)
127
+ ], UserBudgetTransaction.prototype, "updatedAt", void 0);
128
+ __decorate([
129
+ (0, sequelize_typescript_1.BelongsTo)(() => UserBudget_1.UserBudget),
130
+ __metadata("design:type", UserBudget_1.UserBudget)
131
+ ], UserBudgetTransaction.prototype, "userBudget", void 0);
132
+ __decorate([
133
+ (0, sequelize_typescript_1.BelongsTo)(() => User_1.User),
134
+ __metadata("design:type", User_1.User)
135
+ ], UserBudgetTransaction.prototype, "user", void 0);
136
+ __decorate([
137
+ (0, sequelize_typescript_1.BelongsTo)(() => LlmRequest_1.LlmRequest),
138
+ __metadata("design:type", LlmRequest_1.LlmRequest)
139
+ ], UserBudgetTransaction.prototype, "llmRequest", void 0);
140
+ exports.UserBudgetTransaction = UserBudgetTransaction = __decorate([
141
+ (0, sequelize_typescript_1.Table)({
142
+ tableName: 'user_budget_transactions',
143
+ timestamps: true,
144
+ })
145
+ ], UserBudgetTransaction);
@@ -0,0 +1,24 @@
1
+ import { Model } from 'sequelize-typescript';
2
+ import { SubscriptionPlan } from './SubscriptionPlan';
3
+ import { User } from './User';
4
+ export declare enum SubscriptionStatus {
5
+ ACTIVE = "active",
6
+ CANCELLED = "cancelled",
7
+ EXPIRED = "expired"
8
+ }
9
+ export declare class UserSubscription extends Model {
10
+ id: string;
11
+ userId: string;
12
+ planId: string;
13
+ status: SubscriptionStatus;
14
+ startDate: Date;
15
+ endDate?: Date;
16
+ autoRenew: boolean;
17
+ budget?: number;
18
+ paddleSubscriptionId?: string;
19
+ paddleCustomerId?: string;
20
+ createdAt: Date;
21
+ updatedAt: Date;
22
+ user: User;
23
+ plan: SubscriptionPlan;
24
+ }
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UserSubscription = exports.SubscriptionStatus = void 0;
13
+ const sequelize_typescript_1 = require("sequelize-typescript");
14
+ const SubscriptionPlan_1 = require("./SubscriptionPlan");
15
+ const User_1 = require("./User");
16
+ var SubscriptionStatus;
17
+ (function (SubscriptionStatus) {
18
+ SubscriptionStatus["ACTIVE"] = "active";
19
+ SubscriptionStatus["CANCELLED"] = "cancelled";
20
+ SubscriptionStatus["EXPIRED"] = "expired";
21
+ })(SubscriptionStatus || (exports.SubscriptionStatus = SubscriptionStatus = {}));
22
+ let UserSubscription = class UserSubscription extends sequelize_typescript_1.Model {
23
+ };
24
+ exports.UserSubscription = UserSubscription;
25
+ __decorate([
26
+ sequelize_typescript_1.PrimaryKey,
27
+ (0, sequelize_typescript_1.Default)(sequelize_typescript_1.DataType.UUIDV4),
28
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.UUID),
29
+ __metadata("design:type", String)
30
+ ], UserSubscription.prototype, "id", void 0);
31
+ __decorate([
32
+ (0, sequelize_typescript_1.ForeignKey)(() => User_1.User),
33
+ (0, sequelize_typescript_1.AllowNull)(false),
34
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.UUID),
35
+ __metadata("design:type", String)
36
+ ], UserSubscription.prototype, "userId", void 0);
37
+ __decorate([
38
+ (0, sequelize_typescript_1.ForeignKey)(() => SubscriptionPlan_1.SubscriptionPlan),
39
+ (0, sequelize_typescript_1.AllowNull)(false),
40
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.UUID),
41
+ __metadata("design:type", String)
42
+ ], UserSubscription.prototype, "planId", void 0);
43
+ __decorate([
44
+ (0, sequelize_typescript_1.AllowNull)(false),
45
+ (0, sequelize_typescript_1.Column)({
46
+ type: sequelize_typescript_1.DataType.ENUM(...Object.values(SubscriptionStatus)),
47
+ defaultValue: SubscriptionStatus.ACTIVE,
48
+ }),
49
+ __metadata("design:type", String)
50
+ ], UserSubscription.prototype, "status", void 0);
51
+ __decorate([
52
+ (0, sequelize_typescript_1.AllowNull)(false),
53
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.DATE),
54
+ __metadata("design:type", Date)
55
+ ], UserSubscription.prototype, "startDate", void 0);
56
+ __decorate([
57
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.DATE),
58
+ __metadata("design:type", Date)
59
+ ], UserSubscription.prototype, "endDate", void 0);
60
+ __decorate([
61
+ (0, sequelize_typescript_1.Default)(true),
62
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.BOOLEAN),
63
+ __metadata("design:type", Boolean)
64
+ ], UserSubscription.prototype, "autoRenew", void 0);
65
+ __decorate([
66
+ (0, sequelize_typescript_1.AllowNull)(true),
67
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.DECIMAL(10, 2)),
68
+ __metadata("design:type", Number)
69
+ ], UserSubscription.prototype, "budget", void 0);
70
+ __decorate([
71
+ (0, sequelize_typescript_1.AllowNull)(true),
72
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.STRING),
73
+ __metadata("design:type", String)
74
+ ], UserSubscription.prototype, "paddleSubscriptionId", void 0);
75
+ __decorate([
76
+ (0, sequelize_typescript_1.AllowNull)(true),
77
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.STRING),
78
+ __metadata("design:type", String)
79
+ ], UserSubscription.prototype, "paddleCustomerId", void 0);
80
+ __decorate([
81
+ sequelize_typescript_1.CreatedAt,
82
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.DATE),
83
+ __metadata("design:type", Date)
84
+ ], UserSubscription.prototype, "createdAt", void 0);
85
+ __decorate([
86
+ sequelize_typescript_1.UpdatedAt,
87
+ (0, sequelize_typescript_1.Column)(sequelize_typescript_1.DataType.DATE),
88
+ __metadata("design:type", Date)
89
+ ], UserSubscription.prototype, "updatedAt", void 0);
90
+ __decorate([
91
+ (0, sequelize_typescript_1.BelongsTo)(() => User_1.User),
92
+ __metadata("design:type", User_1.User)
93
+ ], UserSubscription.prototype, "user", void 0);
94
+ __decorate([
95
+ (0, sequelize_typescript_1.BelongsTo)(() => SubscriptionPlan_1.SubscriptionPlan),
96
+ __metadata("design:type", SubscriptionPlan_1.SubscriptionPlan)
97
+ ], UserSubscription.prototype, "plan", void 0);
98
+ exports.UserSubscription = UserSubscription = __decorate([
99
+ (0, sequelize_typescript_1.Table)({
100
+ tableName: 'user_subscriptions',
101
+ timestamps: true,
102
+ })
103
+ ], UserSubscription);
@@ -4,4 +4,6 @@ export { Asset, AssetType, Privacy } from './Asset';
4
4
  export type { AssetPayload } from './Asset';
5
5
  export { Conversation } from './Conversation';
6
6
  export { ConversationMessage, MessageRole } from './ConversationMessage';
7
- export { LlmRequest } from './LlmRequest';
7
+ export { LlmRequest, BudgetChargeStatus } from './LlmRequest';
8
+ export { UserBudget, UserBudgetStatus } from './UserBudget';
9
+ export { UserBudgetTransaction, UserBudgetTransactionType } from './UserBudgetTransaction';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LlmRequest = exports.MessageRole = exports.ConversationMessage = exports.Conversation = exports.Privacy = exports.AssetType = exports.Asset = exports.ProjectStatus = exports.Project = exports.User = void 0;
3
+ exports.UserBudgetTransactionType = exports.UserBudgetTransaction = exports.UserBudgetStatus = exports.UserBudget = exports.BudgetChargeStatus = exports.LlmRequest = exports.MessageRole = exports.ConversationMessage = exports.Conversation = exports.Privacy = exports.AssetType = exports.Asset = exports.ProjectStatus = exports.Project = exports.User = void 0;
4
4
  var User_1 = require("./User");
5
5
  Object.defineProperty(exports, "User", { enumerable: true, get: function () { return User_1.User; } });
6
6
  var Project_1 = require("./Project");
@@ -17,3 +17,10 @@ Object.defineProperty(exports, "ConversationMessage", { enumerable: true, get: f
17
17
  Object.defineProperty(exports, "MessageRole", { enumerable: true, get: function () { return ConversationMessage_1.MessageRole; } });
18
18
  var LlmRequest_1 = require("./LlmRequest");
19
19
  Object.defineProperty(exports, "LlmRequest", { enumerable: true, get: function () { return LlmRequest_1.LlmRequest; } });
20
+ Object.defineProperty(exports, "BudgetChargeStatus", { enumerable: true, get: function () { return LlmRequest_1.BudgetChargeStatus; } });
21
+ var UserBudget_1 = require("./UserBudget");
22
+ Object.defineProperty(exports, "UserBudget", { enumerable: true, get: function () { return UserBudget_1.UserBudget; } });
23
+ Object.defineProperty(exports, "UserBudgetStatus", { enumerable: true, get: function () { return UserBudget_1.UserBudgetStatus; } });
24
+ var UserBudgetTransaction_1 = require("./UserBudgetTransaction");
25
+ Object.defineProperty(exports, "UserBudgetTransaction", { enumerable: true, get: function () { return UserBudgetTransaction_1.UserBudgetTransaction; } });
26
+ Object.defineProperty(exports, "UserBudgetTransactionType", { enumerable: true, get: function () { return UserBudgetTransaction_1.UserBudgetTransactionType; } });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ntalmagor/3drise-common",
3
- "version": "1.0.14",
3
+ "version": "1.0.16",
4
4
  "description": "",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",