130 lines
7.2 KiB
Python
130 lines
7.2 KiB
Python
from tortoise import migrations
|
|
from tortoise.migrations import operations as ops
|
|
from orjson import loads
|
|
from tortoise.fields.base import OnDelete
|
|
from tortoise.fields.data import JSON_DUMPS
|
|
from tortoise import fields
|
|
|
|
class Migration(migrations.Migration):
|
|
initial = True
|
|
|
|
operations = [
|
|
ops.CreateModel(
|
|
name='Model',
|
|
fields=[
|
|
('id', fields.IntField(generated=True, primary_key=True, unique=True, db_index=True)),
|
|
('name', fields.CharField(max_length=255)),
|
|
('kind', fields.CharField(max_length=50)),
|
|
('value', fields.JSONField(null=True, encoder=JSON_DUMPS, decoder=loads)),
|
|
],
|
|
options={'table': 'model', 'app': 'models', 'pk_attr': 'id'},
|
|
bases=['Model'],
|
|
),
|
|
ops.CreateModel(
|
|
name='User',
|
|
fields=[
|
|
('id', fields.IntField(generated=True, primary_key=True, unique=True, db_index=True)),
|
|
('email', fields.CharField(max_length=255)),
|
|
('username', fields.CharField(max_length=100)),
|
|
('password', fields.CharField(max_length=255)),
|
|
],
|
|
options={'table': 'users', 'app': 'models', 'pk_attr': 'id'},
|
|
bases=['Model'],
|
|
),
|
|
ops.CreateModel(
|
|
name='Chat',
|
|
fields=[
|
|
('id', fields.IntField(generated=True, primary_key=True, unique=True, db_index=True)),
|
|
('user', fields.ForeignKeyField('models.User', source_field='user_id', db_constraint=True, to_field='id', related_name='chats', on_delete=OnDelete.CASCADE)),
|
|
('name', fields.CharField(max_length=255)),
|
|
('description', fields.TextField(null=True, unique=False)),
|
|
('picture', fields.TextField(null=True, unique=False)),
|
|
('ordering', fields.IntField(null=True)),
|
|
('last_message_preview', fields.TextField(null=True, unique=False)),
|
|
('last_message_time', fields.BigIntField(null=True)),
|
|
],
|
|
options={'table': 'chats', 'app': 'models', 'pk_attr': 'id'},
|
|
bases=['Model'],
|
|
),
|
|
ops.CreateModel(
|
|
name='Agent',
|
|
fields=[
|
|
('id', fields.IntField(generated=True, primary_key=True, unique=True, db_index=True)),
|
|
('user', fields.ForeignKeyField('models.User', source_field='user_id', db_constraint=True, to_field='id', related_name='agents', on_delete=OnDelete.CASCADE)),
|
|
('agentname', fields.CharField(null=True, max_length=100)),
|
|
('visibility', fields.IntField(default=0)),
|
|
('permissions', fields.TextField(default='', unique=False)),
|
|
('main_chat', fields.ForeignKeyField('models.Chat', source_field='main_chat_id', null=True, db_constraint=True, to_field='id', related_name='main_agents', on_delete=OnDelete.CASCADE)),
|
|
('name', fields.CharField(max_length=255)),
|
|
('description', fields.TextField(null=True, unique=False)),
|
|
('picture', fields.TextField(null=True, unique=False)),
|
|
('ordering', fields.IntField(null=True)),
|
|
('kind', fields.CharField(max_length=50)),
|
|
('data', fields.JSONField(default={}, encoder=JSON_DUMPS, decoder=loads)),
|
|
],
|
|
options={'table': 'agents', 'app': 'models', 'pk_attr': 'id'},
|
|
bases=['Model'],
|
|
),
|
|
ops.CreateModel(
|
|
name='AgentResource',
|
|
fields=[
|
|
('id', fields.IntField(generated=True, primary_key=True, unique=True, db_index=True)),
|
|
('agent', fields.ForeignKeyField('models.Agent', source_field='agent_id', db_constraint=True, to_field='id', related_name='resources', on_delete=OnDelete.CASCADE)),
|
|
('kind', fields.CharField(max_length=50)),
|
|
('key', fields.CharField(max_length=100)),
|
|
('value', fields.JSONField(null=True, encoder=JSON_DUMPS, decoder=loads)),
|
|
],
|
|
options={'table': 'agent_resources', 'app': 'models', 'pk_attr': 'id'},
|
|
bases=['Model'],
|
|
),
|
|
ops.CreateModel(
|
|
name='Membership',
|
|
fields=[
|
|
('id', fields.IntField(generated=True, primary_key=True, unique=True, db_index=True)),
|
|
('agent', fields.ForeignKeyField('models.Agent', source_field='agent_id', db_constraint=True, to_field='id', related_name='memberships', on_delete=OnDelete.CASCADE)),
|
|
('chat', fields.ForeignKeyField('models.Chat', source_field='chat_id', db_constraint=True, to_field='id', related_name='memberships', on_delete=OnDelete.CASCADE)),
|
|
],
|
|
options={'table': 'memberships', 'app': 'models', 'pk_attr': 'id'},
|
|
bases=['Model'],
|
|
),
|
|
ops.CreateModel(
|
|
name='Thread',
|
|
fields=[
|
|
('id', fields.IntField(generated=True, primary_key=True, unique=True, db_index=True)),
|
|
('chat', fields.ForeignKeyField('models.Chat', source_field='chat_id', db_constraint=True, to_field='id', related_name='threads', on_delete=OnDelete.CASCADE)),
|
|
('name', fields.CharField(null=True, max_length=255)),
|
|
('description', fields.TextField(null=True, unique=False)),
|
|
],
|
|
options={'table': 'threads', 'app': 'models', 'pk_attr': 'id'},
|
|
bases=['Model'],
|
|
),
|
|
ops.CreateModel(
|
|
name='Message',
|
|
fields=[
|
|
('id', fields.IntField(generated=True, primary_key=True, unique=True, db_index=True)),
|
|
('chat', fields.ForeignKeyField('models.Chat', source_field='chat_id', db_constraint=True, to_field='id', related_name='messages', on_delete=OnDelete.CASCADE)),
|
|
('thread', fields.ForeignKeyField('models.Thread', source_field='thread_id', null=True, db_constraint=True, to_field='id', related_name='messages', on_delete=OnDelete.CASCADE)),
|
|
('sender', fields.CharField(max_length=100)),
|
|
('time', fields.BigIntField()),
|
|
('last_edit', fields.BigIntField()),
|
|
('kind', fields.CharField(max_length=50)),
|
|
('subkind', fields.CharField(null=True, max_length=50)),
|
|
('format', fields.CharField(null=True, max_length=20)),
|
|
('content', fields.TextField(unique=False)),
|
|
],
|
|
options={'table': 'messages', 'app': 'models', 'pk_attr': 'id'},
|
|
bases=['Model'],
|
|
),
|
|
ops.CreateModel(
|
|
name='MessageDatum',
|
|
fields=[
|
|
('id', fields.IntField(generated=True, primary_key=True, unique=True, db_index=True)),
|
|
('message', fields.ForeignKeyField('models.Message', source_field='message_id', db_constraint=True, to_field='id', related_name='data', on_delete=OnDelete.CASCADE)),
|
|
('user', fields.ForeignKeyField('models.User', source_field='user_id', db_constraint=True, to_field='id', related_name='message_data', on_delete=OnDelete.CASCADE)),
|
|
('value', fields.JSONField(null=True, encoder=JSON_DUMPS, decoder=loads)),
|
|
],
|
|
options={'table': 'message_data', 'app': 'models', 'pk_attr': 'id'},
|
|
bases=['Model'],
|
|
),
|
|
]
|