an5-client 0.1.4__tar.gz

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.
@@ -0,0 +1,179 @@
1
+ Metadata-Version: 2.4
2
+ Name: an5-client
3
+ Version: 0.1.4
4
+ Summary: Python client models for AN5 ORM.
5
+ Author: an5ORM
6
+ License: MIT
7
+ Keywords: an5,client,orm
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Requires-Python: >=3.8
11
+ Description-Content-Type: text/markdown
12
+
13
+ # an5Client
14
+
15
+ Auto-generated client artifacts for AN5 ORM. Contains TypeScript, Python, .NET (C#), Golang, and Rust model types, metadata, and entity classes generated from `.an5` schema files.
16
+
17
+ ## Structure
18
+
19
+ ```
20
+ an5Client/
21
+ ├── typescript/ # TypeScript types and metadata
22
+ │ ├── index.ts # Barrel exports & An5Client class
23
+ │ ├── base.ts # Base types, filters, error classes
24
+ │ ├── an5Metadata.ts # Model-table mappings, relations
25
+ │ ├── User.ts # Generated User model & TableClient
26
+ │ └── Order.ts # Generated Order model & TableClient
27
+ ├── python/ # Python metadata, dataclasses, and ORM client
28
+ │ ├── __init__.py
29
+ │ ├── an5_metadata.py # Model-table mappings & field metadata
30
+ │ ├── an5_models.py # Python @dataclass model definitions
31
+ │ └── an5_client.py # Typed An5Client ORM class
32
+ ├── dotnet/ # .NET entity classes & DbContext
33
+ │ ├── User.cs
34
+ │ ├── Order.cs
35
+ │ ├── An5DbContext.cs # Complete DbContext & TableClient<T> repository
36
+ │ └── An5Config.cs
37
+ └── golang/ # Golang models & DbContext repository
38
+ ├── User.go # Generated User struct + WhereInput/OrderBy/Args
39
+ ├── Order.go # Generated Order struct + WhereInput/OrderBy/Args
40
+ ├── client.go # An5DbContext & generic TableClient[T]
41
+ └── config.go # Environment connection string helper
42
+ └── rust/ # Rust crate (serde + chrono)
43
+ ├── Cargo.toml # Crate manifest (an5-client)
44
+ └── src/
45
+ ├── lib.rs # Module exports
46
+ ├── models.rs # Structs + WhereInput/OrderBy/FindManyArgs
47
+ ├── filters.rs # StringFilter/IntFilter/NumberFilter/Bool/DateTime + Dialect
48
+ ├── metadata.rs # model_to_table / model_primary_key
49
+ ├── config.rs # DATABASE_URL helper
50
+ └── client.rs # An5Client (adapter-backed) + typed <Model>Table handles + vector math
51
+ ```
52
+
53
+ ## Usage
54
+
55
+ ### TypeScript
56
+
57
+ ```typescript
58
+ import { An5Client, User, Order } from './an5Client/typescript';
59
+
60
+ const db = new An5Client();
61
+
62
+ // Supports flex property casing (db.User, db.user, db.Users, db.users)
63
+ const users = await db.User.findMany({
64
+ where: { email: { contains: '@example.com' } }
65
+ });
66
+ ```
67
+
68
+ ### Python
69
+
70
+ ```python
71
+ from an5Client.python import An5Client, User
72
+
73
+ db = An5Client()
74
+
75
+ # Supports flexible property casing (db.User, db.user, db.Users, db.users)
76
+ users = db.User.find_many(where={"email": {"contains": "@example.com"}})
77
+ user = db.User.create({"email": "john@example.com", "name": "John"})
78
+ ```
79
+
80
+ ### .NET (C#)
81
+
82
+ ```csharp
83
+ using An5Orm;
84
+ using An5Orm.Entities;
85
+
86
+ var db = new An5DbContext(connectionString);
87
+
88
+ // Supports flexible property access (db.User, db.Users)
89
+ var users = db.User.FindMany("Email LIKE '%@example.com%'");
90
+ var count = db.User.Count();
91
+ db.User.Create(new User { Email = "john@example.com", Name = "John" });
92
+ ```
93
+
94
+ ### Golang
95
+
96
+ ```go
97
+ package main
98
+
99
+ import (
100
+ "context"
101
+ "database/sql"
102
+ "fmt"
103
+ "an5Client/golang"
104
+ )
105
+
106
+ func main() {
107
+ db, _ := sql.Open("sqlserver", an5client.GetDefaultConnectionString())
108
+ ctx := an5client.NewAn5DbContext(db)
109
+
110
+ // Supports flexible property access (ctx.User, ctx.Users)
111
+ users, _ := ctx.User.FindMany(context.Background(), "email LIKE ?", "%@example.com%")
112
+ fmt.Printf("Found %d users\n", len(users))
113
+ }
114
+ ```
115
+
116
+ ### Rust
117
+
118
+ ```rust
119
+ use an5_client::{An5Client, StringFilter, UserFindManyArgs, UserWhereInput};
120
+
121
+ #[tokio::main]
122
+ async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
123
+ // Register the sqlx drivers you need before connecting.
124
+ sqlx::any::install_drivers(&[sqlx::sqlite::any::DRIVER])?;
125
+ let db = An5Client::connect("sqlite:file:app.sqlite?mode=rwc").await?;
126
+
127
+ // Typed per-model handle.
128
+ let args = UserFindManyArgs {
129
+ where_: Some(UserWhereInput {
130
+ email: Some(StringFilter {
131
+ contains: Some("@example.com".to_string()),
132
+ ..Default::default()
133
+ }),
134
+ ..Default::default()
135
+ }),
136
+ take: Some(10),
137
+ ..Default::default()
138
+ };
139
+ let users = db.user().find_many(&args).await?;
140
+ println!("{} users", users.len());
141
+
142
+ // Or dynamic access, like `db.User` in TypeScript.
143
+ let all = db.table("User").find_many(&Default::default()).await?;
144
+ println!("{} total", all.len());
145
+ Ok(())
146
+ }
147
+ ```
148
+
149
+ Rust has no dynamic property access, so a generated method (`db.user()`) is
150
+ the equivalent of `db.User` — matching Go, where the generator emits a real
151
+ `ctx.User` field.
152
+
153
+ ## Generation
154
+
155
+ This package is auto-generated by `an5Orm/generator`. Do not edit files manually.
156
+
157
+ ```bash
158
+ # Regenerate from schema
159
+ cd ../an5Orm
160
+ npm run generate
161
+ ```
162
+
163
+ ## Testing
164
+
165
+ The package ships generated sources for multiple languages, so the local checks
166
+ compile each target surface:
167
+
168
+ ```bash
169
+ npm test
170
+ npm run test:package:smoke
171
+ npm run test:python
172
+ npm run test:dotnet
173
+ npm run test:go
174
+ npm run test:rust
175
+ ```
176
+
177
+ ## License
178
+
179
+ MIT
@@ -0,0 +1,167 @@
1
+ # an5Client
2
+
3
+ Auto-generated client artifacts for AN5 ORM. Contains TypeScript, Python, .NET (C#), Golang, and Rust model types, metadata, and entity classes generated from `.an5` schema files.
4
+
5
+ ## Structure
6
+
7
+ ```
8
+ an5Client/
9
+ ├── typescript/ # TypeScript types and metadata
10
+ │ ├── index.ts # Barrel exports & An5Client class
11
+ │ ├── base.ts # Base types, filters, error classes
12
+ │ ├── an5Metadata.ts # Model-table mappings, relations
13
+ │ ├── User.ts # Generated User model & TableClient
14
+ │ └── Order.ts # Generated Order model & TableClient
15
+ ├── python/ # Python metadata, dataclasses, and ORM client
16
+ │ ├── __init__.py
17
+ │ ├── an5_metadata.py # Model-table mappings & field metadata
18
+ │ ├── an5_models.py # Python @dataclass model definitions
19
+ │ └── an5_client.py # Typed An5Client ORM class
20
+ ├── dotnet/ # .NET entity classes & DbContext
21
+ │ ├── User.cs
22
+ │ ├── Order.cs
23
+ │ ├── An5DbContext.cs # Complete DbContext & TableClient<T> repository
24
+ │ └── An5Config.cs
25
+ └── golang/ # Golang models & DbContext repository
26
+ ├── User.go # Generated User struct + WhereInput/OrderBy/Args
27
+ ├── Order.go # Generated Order struct + WhereInput/OrderBy/Args
28
+ ├── client.go # An5DbContext & generic TableClient[T]
29
+ └── config.go # Environment connection string helper
30
+ └── rust/ # Rust crate (serde + chrono)
31
+ ├── Cargo.toml # Crate manifest (an5-client)
32
+ └── src/
33
+ ├── lib.rs # Module exports
34
+ ├── models.rs # Structs + WhereInput/OrderBy/FindManyArgs
35
+ ├── filters.rs # StringFilter/IntFilter/NumberFilter/Bool/DateTime + Dialect
36
+ ├── metadata.rs # model_to_table / model_primary_key
37
+ ├── config.rs # DATABASE_URL helper
38
+ └── client.rs # An5Client (adapter-backed) + typed <Model>Table handles + vector math
39
+ ```
40
+
41
+ ## Usage
42
+
43
+ ### TypeScript
44
+
45
+ ```typescript
46
+ import { An5Client, User, Order } from './an5Client/typescript';
47
+
48
+ const db = new An5Client();
49
+
50
+ // Supports flex property casing (db.User, db.user, db.Users, db.users)
51
+ const users = await db.User.findMany({
52
+ where: { email: { contains: '@example.com' } }
53
+ });
54
+ ```
55
+
56
+ ### Python
57
+
58
+ ```python
59
+ from an5Client.python import An5Client, User
60
+
61
+ db = An5Client()
62
+
63
+ # Supports flexible property casing (db.User, db.user, db.Users, db.users)
64
+ users = db.User.find_many(where={"email": {"contains": "@example.com"}})
65
+ user = db.User.create({"email": "john@example.com", "name": "John"})
66
+ ```
67
+
68
+ ### .NET (C#)
69
+
70
+ ```csharp
71
+ using An5Orm;
72
+ using An5Orm.Entities;
73
+
74
+ var db = new An5DbContext(connectionString);
75
+
76
+ // Supports flexible property access (db.User, db.Users)
77
+ var users = db.User.FindMany("Email LIKE '%@example.com%'");
78
+ var count = db.User.Count();
79
+ db.User.Create(new User { Email = "john@example.com", Name = "John" });
80
+ ```
81
+
82
+ ### Golang
83
+
84
+ ```go
85
+ package main
86
+
87
+ import (
88
+ "context"
89
+ "database/sql"
90
+ "fmt"
91
+ "an5Client/golang"
92
+ )
93
+
94
+ func main() {
95
+ db, _ := sql.Open("sqlserver", an5client.GetDefaultConnectionString())
96
+ ctx := an5client.NewAn5DbContext(db)
97
+
98
+ // Supports flexible property access (ctx.User, ctx.Users)
99
+ users, _ := ctx.User.FindMany(context.Background(), "email LIKE ?", "%@example.com%")
100
+ fmt.Printf("Found %d users\n", len(users))
101
+ }
102
+ ```
103
+
104
+ ### Rust
105
+
106
+ ```rust
107
+ use an5_client::{An5Client, StringFilter, UserFindManyArgs, UserWhereInput};
108
+
109
+ #[tokio::main]
110
+ async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
111
+ // Register the sqlx drivers you need before connecting.
112
+ sqlx::any::install_drivers(&[sqlx::sqlite::any::DRIVER])?;
113
+ let db = An5Client::connect("sqlite:file:app.sqlite?mode=rwc").await?;
114
+
115
+ // Typed per-model handle.
116
+ let args = UserFindManyArgs {
117
+ where_: Some(UserWhereInput {
118
+ email: Some(StringFilter {
119
+ contains: Some("@example.com".to_string()),
120
+ ..Default::default()
121
+ }),
122
+ ..Default::default()
123
+ }),
124
+ take: Some(10),
125
+ ..Default::default()
126
+ };
127
+ let users = db.user().find_many(&args).await?;
128
+ println!("{} users", users.len());
129
+
130
+ // Or dynamic access, like `db.User` in TypeScript.
131
+ let all = db.table("User").find_many(&Default::default()).await?;
132
+ println!("{} total", all.len());
133
+ Ok(())
134
+ }
135
+ ```
136
+
137
+ Rust has no dynamic property access, so a generated method (`db.user()`) is
138
+ the equivalent of `db.User` — matching Go, where the generator emits a real
139
+ `ctx.User` field.
140
+
141
+ ## Generation
142
+
143
+ This package is auto-generated by `an5Orm/generator`. Do not edit files manually.
144
+
145
+ ```bash
146
+ # Regenerate from schema
147
+ cd ../an5Orm
148
+ npm run generate
149
+ ```
150
+
151
+ ## Testing
152
+
153
+ The package ships generated sources for multiple languages, so the local checks
154
+ compile each target surface:
155
+
156
+ ```bash
157
+ npm test
158
+ npm run test:package:smoke
159
+ npm run test:python
160
+ npm run test:dotnet
161
+ npm run test:go
162
+ npm run test:rust
163
+ ```
164
+
165
+ ## License
166
+
167
+ MIT
@@ -0,0 +1,22 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "an5-client"
7
+ version = "0.1.4"
8
+ description = "Python client models for AN5 ORM."
9
+ readme = "README.md"
10
+ requires-python = ">=3.8"
11
+ authors = [{ name = "an5ORM" }]
12
+ license = { text = "MIT" }
13
+ keywords = ["an5", "client", "orm"]
14
+ classifiers = [
15
+ "Programming Language :: Python :: 3",
16
+ "License :: OSI Approved :: MIT License"
17
+ ]
18
+ dependencies = []
19
+
20
+ [tool.setuptools]
21
+ package-dir = {"" = "python"}
22
+ py-modules = ["an5_metadata"]
@@ -0,0 +1,179 @@
1
+ Metadata-Version: 2.4
2
+ Name: an5-client
3
+ Version: 0.1.4
4
+ Summary: Python client models for AN5 ORM.
5
+ Author: an5ORM
6
+ License: MIT
7
+ Keywords: an5,client,orm
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Requires-Python: >=3.8
11
+ Description-Content-Type: text/markdown
12
+
13
+ # an5Client
14
+
15
+ Auto-generated client artifacts for AN5 ORM. Contains TypeScript, Python, .NET (C#), Golang, and Rust model types, metadata, and entity classes generated from `.an5` schema files.
16
+
17
+ ## Structure
18
+
19
+ ```
20
+ an5Client/
21
+ ├── typescript/ # TypeScript types and metadata
22
+ │ ├── index.ts # Barrel exports & An5Client class
23
+ │ ├── base.ts # Base types, filters, error classes
24
+ │ ├── an5Metadata.ts # Model-table mappings, relations
25
+ │ ├── User.ts # Generated User model & TableClient
26
+ │ └── Order.ts # Generated Order model & TableClient
27
+ ├── python/ # Python metadata, dataclasses, and ORM client
28
+ │ ├── __init__.py
29
+ │ ├── an5_metadata.py # Model-table mappings & field metadata
30
+ │ ├── an5_models.py # Python @dataclass model definitions
31
+ │ └── an5_client.py # Typed An5Client ORM class
32
+ ├── dotnet/ # .NET entity classes & DbContext
33
+ │ ├── User.cs
34
+ │ ├── Order.cs
35
+ │ ├── An5DbContext.cs # Complete DbContext & TableClient<T> repository
36
+ │ └── An5Config.cs
37
+ └── golang/ # Golang models & DbContext repository
38
+ ├── User.go # Generated User struct + WhereInput/OrderBy/Args
39
+ ├── Order.go # Generated Order struct + WhereInput/OrderBy/Args
40
+ ├── client.go # An5DbContext & generic TableClient[T]
41
+ └── config.go # Environment connection string helper
42
+ └── rust/ # Rust crate (serde + chrono)
43
+ ├── Cargo.toml # Crate manifest (an5-client)
44
+ └── src/
45
+ ├── lib.rs # Module exports
46
+ ├── models.rs # Structs + WhereInput/OrderBy/FindManyArgs
47
+ ├── filters.rs # StringFilter/IntFilter/NumberFilter/Bool/DateTime + Dialect
48
+ ├── metadata.rs # model_to_table / model_primary_key
49
+ ├── config.rs # DATABASE_URL helper
50
+ └── client.rs # An5Client (adapter-backed) + typed <Model>Table handles + vector math
51
+ ```
52
+
53
+ ## Usage
54
+
55
+ ### TypeScript
56
+
57
+ ```typescript
58
+ import { An5Client, User, Order } from './an5Client/typescript';
59
+
60
+ const db = new An5Client();
61
+
62
+ // Supports flex property casing (db.User, db.user, db.Users, db.users)
63
+ const users = await db.User.findMany({
64
+ where: { email: { contains: '@example.com' } }
65
+ });
66
+ ```
67
+
68
+ ### Python
69
+
70
+ ```python
71
+ from an5Client.python import An5Client, User
72
+
73
+ db = An5Client()
74
+
75
+ # Supports flexible property casing (db.User, db.user, db.Users, db.users)
76
+ users = db.User.find_many(where={"email": {"contains": "@example.com"}})
77
+ user = db.User.create({"email": "john@example.com", "name": "John"})
78
+ ```
79
+
80
+ ### .NET (C#)
81
+
82
+ ```csharp
83
+ using An5Orm;
84
+ using An5Orm.Entities;
85
+
86
+ var db = new An5DbContext(connectionString);
87
+
88
+ // Supports flexible property access (db.User, db.Users)
89
+ var users = db.User.FindMany("Email LIKE '%@example.com%'");
90
+ var count = db.User.Count();
91
+ db.User.Create(new User { Email = "john@example.com", Name = "John" });
92
+ ```
93
+
94
+ ### Golang
95
+
96
+ ```go
97
+ package main
98
+
99
+ import (
100
+ "context"
101
+ "database/sql"
102
+ "fmt"
103
+ "an5Client/golang"
104
+ )
105
+
106
+ func main() {
107
+ db, _ := sql.Open("sqlserver", an5client.GetDefaultConnectionString())
108
+ ctx := an5client.NewAn5DbContext(db)
109
+
110
+ // Supports flexible property access (ctx.User, ctx.Users)
111
+ users, _ := ctx.User.FindMany(context.Background(), "email LIKE ?", "%@example.com%")
112
+ fmt.Printf("Found %d users\n", len(users))
113
+ }
114
+ ```
115
+
116
+ ### Rust
117
+
118
+ ```rust
119
+ use an5_client::{An5Client, StringFilter, UserFindManyArgs, UserWhereInput};
120
+
121
+ #[tokio::main]
122
+ async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
123
+ // Register the sqlx drivers you need before connecting.
124
+ sqlx::any::install_drivers(&[sqlx::sqlite::any::DRIVER])?;
125
+ let db = An5Client::connect("sqlite:file:app.sqlite?mode=rwc").await?;
126
+
127
+ // Typed per-model handle.
128
+ let args = UserFindManyArgs {
129
+ where_: Some(UserWhereInput {
130
+ email: Some(StringFilter {
131
+ contains: Some("@example.com".to_string()),
132
+ ..Default::default()
133
+ }),
134
+ ..Default::default()
135
+ }),
136
+ take: Some(10),
137
+ ..Default::default()
138
+ };
139
+ let users = db.user().find_many(&args).await?;
140
+ println!("{} users", users.len());
141
+
142
+ // Or dynamic access, like `db.User` in TypeScript.
143
+ let all = db.table("User").find_many(&Default::default()).await?;
144
+ println!("{} total", all.len());
145
+ Ok(())
146
+ }
147
+ ```
148
+
149
+ Rust has no dynamic property access, so a generated method (`db.user()`) is
150
+ the equivalent of `db.User` — matching Go, where the generator emits a real
151
+ `ctx.User` field.
152
+
153
+ ## Generation
154
+
155
+ This package is auto-generated by `an5Orm/generator`. Do not edit files manually.
156
+
157
+ ```bash
158
+ # Regenerate from schema
159
+ cd ../an5Orm
160
+ npm run generate
161
+ ```
162
+
163
+ ## Testing
164
+
165
+ The package ships generated sources for multiple languages, so the local checks
166
+ compile each target surface:
167
+
168
+ ```bash
169
+ npm test
170
+ npm run test:package:smoke
171
+ npm run test:python
172
+ npm run test:dotnet
173
+ npm run test:go
174
+ npm run test:rust
175
+ ```
176
+
177
+ ## License
178
+
179
+ MIT
@@ -0,0 +1,7 @@
1
+ README.md
2
+ pyproject.toml
3
+ python/an5_metadata.py
4
+ python/an5_client.egg-info/PKG-INFO
5
+ python/an5_client.egg-info/SOURCES.txt
6
+ python/an5_client.egg-info/dependency_links.txt
7
+ python/an5_client.egg-info/top_level.txt
@@ -0,0 +1 @@
1
+ an5_metadata
@@ -0,0 +1,89 @@
1
+ # This file is auto-generated. Do not edit directly.
2
+
3
+ MODEL_TO_TABLE = {
4
+ "embeddingConfig": "[dbo].[embeddingconfigs]",
5
+ "embedding_config": "[dbo].[embeddingconfigs]",
6
+ "llmConfig": "[dbo].[llmconfigs]",
7
+ "llm_config": "[dbo].[llmconfigs]",
8
+ "user": "[dbo].[users]",
9
+ "order": "[dbo].[orders]",
10
+ }
11
+
12
+ MODEL_DESCRIPTIONS = {
13
+ "embeddingConfig": "Embedding provider configuration. Stores API keys and model settings for RAG features.",
14
+ "embedding_config": "Embedding provider configuration. Stores API keys and model settings for RAG features.",
15
+ "llmConfig": "LLM provider configuration. Stores API keys and model settings for AI features.",
16
+ "llm_config": "LLM provider configuration. Stores API keys and model settings for AI features.",
17
+ "user": "Represents a registered user in the database.",
18
+ "order": "Represents a customer order in the system.",
19
+ }
20
+
21
+ MODEL_FIELDS = {
22
+ "embeddingConfig": [
23
+ { "name": "id", "type": "string", "sql": "NVARCHAR(1000)", "isOptional": False, "hasDefault": True, "isId": True, "description": "Primary key" },
24
+ { "name": "provider", "type": "string", "sql": "NVARCHAR(100)", "isOptional": False, "hasDefault": False, "isId": False, "description": "Embedding provider: openai, cohere, custom" },
25
+ { "name": "apiKey", "type": "string", "sql": "NVARCHAR(4000)", "isOptional": False, "hasDefault": False, "isId": False, "description": "API key for the embedding service" },
26
+ { "name": "model", "type": "string?", "sql": "NVARCHAR(500)", "isOptional": True, "hasDefault": False, "isId": False, "description": "Model name, e.g. text-embedding-3-small" },
27
+ { "name": "endpoint", "type": "string?", "sql": "NVARCHAR(2000)", "isOptional": True, "hasDefault": False, "isId": False, "description": "Custom endpoint URL" },
28
+ { "name": "isActive", "type": "boolean", "sql": "BIT", "isOptional": False, "hasDefault": True, "isId": False, "description": "Whether this config is active" },
29
+ { "name": "createdAt", "type": "Date", "sql": "DATETIME2", "isOptional": False, "hasDefault": True, "isId": False, "description": "Creation timestamp" },
30
+ { "name": "updatedAt", "type": "Date", "sql": "DATETIME2", "isOptional": False, "hasDefault": True, "isId": False, "description": "Last update timestamp" }
31
+ ],
32
+ "embedding_config": [
33
+ { "name": "id", "type": "string", "sql": "NVARCHAR(1000)", "isOptional": False, "hasDefault": True, "isId": True, "description": "Primary key" },
34
+ { "name": "provider", "type": "string", "sql": "NVARCHAR(100)", "isOptional": False, "hasDefault": False, "isId": False, "description": "Embedding provider: openai, cohere, custom" },
35
+ { "name": "apiKey", "type": "string", "sql": "NVARCHAR(4000)", "isOptional": False, "hasDefault": False, "isId": False, "description": "API key for the embedding service" },
36
+ { "name": "model", "type": "string?", "sql": "NVARCHAR(500)", "isOptional": True, "hasDefault": False, "isId": False, "description": "Model name, e.g. text-embedding-3-small" },
37
+ { "name": "endpoint", "type": "string?", "sql": "NVARCHAR(2000)", "isOptional": True, "hasDefault": False, "isId": False, "description": "Custom endpoint URL" },
38
+ { "name": "isActive", "type": "boolean", "sql": "BIT", "isOptional": False, "hasDefault": True, "isId": False, "description": "Whether this config is active" },
39
+ { "name": "createdAt", "type": "Date", "sql": "DATETIME2", "isOptional": False, "hasDefault": True, "isId": False, "description": "Creation timestamp" },
40
+ { "name": "updatedAt", "type": "Date", "sql": "DATETIME2", "isOptional": False, "hasDefault": True, "isId": False, "description": "Last update timestamp" }
41
+ ],
42
+ "llmConfig": [
43
+ { "name": "id", "type": "string", "sql": "NVARCHAR(1000)", "isOptional": False, "hasDefault": True, "isId": True, "description": "Primary key" },
44
+ { "name": "provider", "type": "string", "sql": "NVARCHAR(100)", "isOptional": False, "hasDefault": False, "isId": False, "description": "LLM provider: openai, gemini, custom, azure" },
45
+ { "name": "apiKey", "type": "string", "sql": "NVARCHAR(4000)", "isOptional": False, "hasDefault": False, "isId": False, "description": "API key for the LLM provider" },
46
+ { "name": "model", "type": "string?", "sql": "NVARCHAR(500)", "isOptional": True, "hasDefault": False, "isId": False, "description": "Model name, e.g. gpt-4o, gemini-2.5-flash" },
47
+ { "name": "endpoint", "type": "string?", "sql": "NVARCHAR(2000)", "isOptional": True, "hasDefault": False, "isId": False, "description": "Custom endpoint URL" },
48
+ { "name": "isActive", "type": "boolean", "sql": "BIT", "isOptional": False, "hasDefault": True, "isId": False, "description": "Whether this config is active" },
49
+ { "name": "createdAt", "type": "Date", "sql": "DATETIME2", "isOptional": False, "hasDefault": True, "isId": False, "description": "Creation timestamp" },
50
+ { "name": "updatedAt", "type": "Date", "sql": "DATETIME2", "isOptional": False, "hasDefault": True, "isId": False, "description": "Last update timestamp" }
51
+ ],
52
+ "llm_config": [
53
+ { "name": "id", "type": "string", "sql": "NVARCHAR(1000)", "isOptional": False, "hasDefault": True, "isId": True, "description": "Primary key" },
54
+ { "name": "provider", "type": "string", "sql": "NVARCHAR(100)", "isOptional": False, "hasDefault": False, "isId": False, "description": "LLM provider: openai, gemini, custom, azure" },
55
+ { "name": "apiKey", "type": "string", "sql": "NVARCHAR(4000)", "isOptional": False, "hasDefault": False, "isId": False, "description": "API key for the LLM provider" },
56
+ { "name": "model", "type": "string?", "sql": "NVARCHAR(500)", "isOptional": True, "hasDefault": False, "isId": False, "description": "Model name, e.g. gpt-4o, gemini-2.5-flash" },
57
+ { "name": "endpoint", "type": "string?", "sql": "NVARCHAR(2000)", "isOptional": True, "hasDefault": False, "isId": False, "description": "Custom endpoint URL" },
58
+ { "name": "isActive", "type": "boolean", "sql": "BIT", "isOptional": False, "hasDefault": True, "isId": False, "description": "Whether this config is active" },
59
+ { "name": "createdAt", "type": "Date", "sql": "DATETIME2", "isOptional": False, "hasDefault": True, "isId": False, "description": "Creation timestamp" },
60
+ { "name": "updatedAt", "type": "Date", "sql": "DATETIME2", "isOptional": False, "hasDefault": True, "isId": False, "description": "Last update timestamp" }
61
+ ],
62
+ "user": [
63
+ { "name": "id", "type": "string", "sql": "NVARCHAR(1000)", "isOptional": False, "hasDefault": True, "isId": True, "description": "Primary key for the User table (auto-generated UUID)" },
64
+ { "name": "email", "type": "string", "sql": "NVARCHAR(255)", "isOptional": False, "hasDefault": False, "isId": False, "description": "Unique email address used for login and notifications" },
65
+ { "name": "name", "type": "string?", "sql": "NVARCHAR(255)", "isOptional": True, "hasDefault": False, "isId": False, "description": "Display name of the user" },
66
+ { "name": "createdAt", "type": "Date", "sql": "DATETIME2", "isOptional": False, "hasDefault": True, "isId": False, "description": "Timestamp when the user profile was created" }
67
+ ],
68
+ "order": [
69
+ { "name": "id", "type": "string", "sql": "NVARCHAR(1000)", "isOptional": False, "hasDefault": True, "isId": True, "description": "Primary key for the Order table (auto-generated UUID)" },
70
+ { "name": "userId", "type": "string", "sql": "NVARCHAR(1000)", "isOptional": False, "hasDefault": False, "isId": False, "description": "Foreign key linking to the User model who placed the order" },
71
+ { "name": "total", "type": "number", "sql": "INT", "isOptional": False, "hasDefault": True, "isId": False, "description": "Total cost amount of the order" },
72
+ { "name": "createdAt", "type": "Date", "sql": "DATETIME2", "isOptional": False, "hasDefault": True, "isId": False, "description": "The date and time when the order was created." }
73
+ ],
74
+ }
75
+
76
+ RELATION_MAP = {
77
+ "embeddingConfig": {
78
+ },
79
+ "embedding_config": {
80
+ },
81
+ "llmConfig": {
82
+ },
83
+ "llm_config": {
84
+ },
85
+ "user": {
86
+ },
87
+ "order": {
88
+ },
89
+ }
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+