feat(add templates): add six more templates (reversion, screeenly, staytus, deployer, devise, talk) (#457)

This commit is contained in:
Jonathan Fishner
2024-11-27 16:18:51 +02:00
committed by GitHub
parent d45677e92d
commit ddeef3b134
20 changed files with 7424 additions and 1 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 424 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 497 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 424 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 471 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 KiB

View File

@@ -37,6 +37,12 @@ import { doorkeeperDb } from './templates/doorkeeper-db';
import { orchidDb } from './templates/orchid-db';
import { flipperDb } from './templates/flipper-db';
import { cachetDb } from './templates/cachet-db';
import { reversionDb } from './templates/reversion-db';
import { screeenlyDb } from './templates/screeenly-db';
import { staytusDb } from './templates/staytus-db';
import { deployerDb } from './templates/deployer-db';
import { deviseDb } from './templates/devise-db';
import { talkDb } from './templates/talk-db';
export interface Template {
slug: string;
name: string;
@@ -89,4 +95,10 @@ export const templates: Template[] = [
orchidDb,
flipperDb,
cachetDb,
reversionDb,
screeenlyDb,
staytusDb,
deployerDb,
deviseDb,
talkDb,
];

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,319 @@
import { DatabaseType } from '@/lib/domain/database-type';
import type { Template } from '../templates-data';
import image from '@/assets/templates/devise-db.png';
import imageDark from '@/assets/templates/devise-db-dark.png';
export const deviseDb: Template = {
slug: 'devise-database',
name: 'Devise',
shortDescription: 'Flexible Auth for Rails applications',
description:
'Flexible authentication for Rails based on Warden, MVC with 10 modules, including DB Authenticatable, Registerable, and Recoverable.',
image,
imageDark,
tags: ['Postgres', 'Open Source', 'Rails'],
featured: true,
url: 'https://github.com/heartcombo/devise',
diagram: {
id: 'devise_db',
name: 'devise-database',
createdAt: new Date(),
updatedAt: new Date(),
databaseType: DatabaseType.POSTGRESQL,
tables: [
{
id: 'yha079pwna8c99bb8jawlaej3',
name: 'users',
schema: 'public',
x: 40,
y: 100,
fields: [
{
id: 'tnnbdv2o6svxuz0wm7yp56rhn',
name: 'id',
type: {
id: 'bigint',
name: 'bigint',
},
primaryKey: true,
unique: true,
nullable: false,
createdAt: Date.now(),
},
{
id: 'vkhvag7othohyjh6828ybk3ca',
name: 'email',
type: {
id: 'character_varying',
name: 'character varying',
},
primaryKey: false,
unique: true,
nullable: false,
createdAt: Date.now(),
},
{
id: 'wd49z62mufty2emt4ga95vtes',
name: 'encrypted_password',
type: {
id: 'character_varying',
name: 'character varying',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: '1vz318dy43ajqkltguj4cgu8b',
name: 'reset_password_token',
type: {
id: 'character_varying',
name: 'character varying',
},
primaryKey: false,
unique: true,
nullable: true,
createdAt: Date.now(),
},
{
id: '8ydqdfy4rhuiediufdhirc160',
name: 'reset_password_sent_at',
type: {
id: 'timestamp_without_time_zone',
name: 'timestamp without time zone',
},
primaryKey: false,
unique: false,
nullable: true,
createdAt: Date.now(),
},
{
id: 'eukr07x2egs3477q5bi11df0g',
name: 'remember_created_at',
type: {
id: 'timestamp_without_time_zone',
name: 'timestamp without time zone',
},
primaryKey: false,
unique: false,
nullable: true,
createdAt: Date.now(),
},
{
id: 'raxxzuz5nqbuf63628jmdx5ii',
name: 'sign_in_count',
type: {
id: 'integer',
name: 'integer',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: 'kb3ao9bj6gjab3y5cdwuc7b58',
name: 'current_sign_in_at',
type: {
id: 'timestamp_without_time_zone',
name: 'timestamp without time zone',
},
primaryKey: false,
unique: false,
nullable: true,
createdAt: Date.now(),
},
{
id: 'mm4knih0nyvhd4vvy6vr969dk',
name: 'last_sign_in_at',
type: {
id: 'timestamp_without_time_zone',
name: 'timestamp without time zone',
},
primaryKey: false,
unique: false,
nullable: true,
createdAt: Date.now(),
},
{
id: 'g1y49u7xrq1qu4gvm42f3q25y',
name: 'current_sign_in_ip',
type: {
id: 'character_varying',
name: 'character varying',
},
primaryKey: false,
unique: false,
nullable: true,
createdAt: Date.now(),
},
{
id: 'dutn6db8am2f58u96ou0f4ha3',
name: 'last_sign_in_ip',
type: {
id: 'character_varying',
name: 'character varying',
},
primaryKey: false,
unique: false,
nullable: true,
createdAt: Date.now(),
},
{
id: 'ipxhirbm3blfebww69xrq6rfc',
name: 'confirmation_token',
type: {
id: 'character_varying',
name: 'character varying',
},
primaryKey: false,
unique: true,
nullable: true,
createdAt: Date.now(),
},
{
id: 'q3robth7nuy6qoyncmkyfd2wr',
name: 'confirmed_at',
type: {
id: 'timestamp_without_time_zone',
name: 'timestamp without time zone',
},
primaryKey: false,
unique: false,
nullable: true,
createdAt: Date.now(),
},
{
id: 's0ekzf665nsmkeljo30v36ymq',
name: 'confirmation_sent_at',
type: {
id: 'timestamp_without_time_zone',
name: 'timestamp without time zone',
},
primaryKey: false,
unique: false,
nullable: true,
createdAt: Date.now(),
},
{
id: '6lvgbsqnvdamibmbuhfxrvsp6',
name: 'unconfirmed_email',
type: {
id: 'character_varying',
name: 'character varying',
},
primaryKey: false,
unique: false,
nullable: true,
createdAt: Date.now(),
},
{
id: 'o29wwqt6ycsubf43yzypd40ua',
name: 'failed_attempts',
type: {
id: 'integer',
name: 'integer',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: '2jbu40xg710e63y9p6l292vhl',
name: 'unlock_token',
type: {
id: 'character_varying',
name: 'character varying',
},
primaryKey: false,
unique: true,
nullable: true,
createdAt: Date.now(),
},
{
id: 'ribk8hlz1o926iinrs5ohob0s',
name: 'locked_at',
type: {
id: 'timestamp_without_time_zone',
name: 'timestamp without time zone',
},
primaryKey: false,
unique: false,
nullable: true,
createdAt: Date.now(),
},
{
id: 'q6n7ulzw5qkwr23akuuyd2bzf',
name: 'created_at',
type: {
id: 'timestamp_without_time_zone',
name: 'timestamp without time zone',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: 'a4azxp7ry1q743lgeot5pxz0m',
name: 'updated_at',
type: {
id: 'timestamp_without_time_zone',
name: 'timestamp without time zone',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
],
indexes: [
{
id: '698pbewk499ajavfw1y50tgb4',
name: 'users_pkey',
unique: true,
fieldIds: ['tnnbdv2o6svxuz0wm7yp56rhn'],
createdAt: Date.now(),
},
{
id: '3oq1zywey14y8w67kyiork0zf',
name: 'users_email_unique',
unique: true,
fieldIds: ['vkhvag7othohyjh6828ybk3ca'],
createdAt: Date.now(),
},
{
id: 'jk7nrup4dw6xrx11boprthswy',
name: 'users_reset_password_token_unique',
unique: true,
fieldIds: ['1vz318dy43ajqkltguj4cgu8b'],
createdAt: Date.now(),
},
{
id: 'rh4czfl0w3nzd5xuqnx6bi9vx',
name: 'users_unlock_token_unique',
unique: true,
fieldIds: ['2jbu40xg710e63y9p6l292vhl'],
createdAt: Date.now(),
},
{
id: 'h5vv3jzsud0eeon3xs60xc651',
name: 'users_confirmation_token_unique',
unique: true,
fieldIds: ['ipxhirbm3blfebww69xrq6rfc'],
createdAt: Date.now(),
},
],
color: '#4dee8a',
isView: false,
isMaterializedView: false,
createdAt: Date.now(),
width: 337,
},
],
relationships: [],
dependencies: [],
},
};

View File

@@ -13,7 +13,7 @@ export const orchidDb: Template = {
imageDark,
tags: ['Postgres', 'Open Source', 'Laravel', 'PHP'],
featured: false,
url: 'https://drawsql.app/templates/orchid',
url: 'https://github.com/orchidsoftware/platform',
diagram: {
id: 'orchid_db',
name: 'orchid-database',

View File

@@ -0,0 +1,343 @@
import { DatabaseType } from '@/lib/domain/database-type';
import type { Template } from '../templates-data';
import image from '@/assets/templates/reversion-db.png';
import imageDark from '@/assets/templates/reversion-db-dark.png';
export const reversionDb: Template = {
slug: 'reversion-database',
name: 'Reversion',
shortDescription: 'Version control for model instances',
description:
'Django extension that provides version control for model instances, allowing you to roll back to any point in a model history and recover deleted instances.',
image,
imageDark,
tags: ['Postgres', 'Python', 'Django'],
featured: true,
url: 'https://github.com/etianen/django-reversion',
diagram: {
id: 'reversion_db',
name: 'reversion-database',
createdAt: new Date(),
updatedAt: new Date(),
databaseType: DatabaseType.POSTGRESQL,
tables: [
{
id: '5vbs1o9jcijqaos2r7ufyf3qk',
name: 'django_content_type',
schema: 'public',
x: 813.8339153520599,
y: -167.89819045086784,
fields: [
{
id: 'fz4jkfpns4wgyfdyhw51smsk0',
name: 'id',
type: {
id: 'integer',
name: 'integer',
},
primaryKey: true,
unique: true,
nullable: false,
createdAt: Date.now(),
},
],
indexes: [
{
id: 'pl9jzcxgahlfkkigj9ftgp99m',
name: 'django_content_type_pkey',
unique: true,
fieldIds: ['fz4jkfpns4wgyfdyhw51smsk0'],
createdAt: Date.now(),
},
],
color: '#7175fa',
isView: false,
isMaterializedView: false,
createdAt: Date.now(),
},
{
id: '97rot1dndzf83yt3armaynm66',
name: 'reversion_version',
schema: 'public',
x: 453.0003174647601,
y: -161.63156611283586,
fields: [
{
id: 'oekrmcccwzb4m7yr14sve140y',
name: 'id',
type: {
id: 'integer',
name: 'integer',
},
primaryKey: true,
unique: true,
nullable: false,
createdAt: Date.now(),
},
{
id: '5rcck5wqsezl9mr8y6vwbj9nu',
name: 'object_id',
type: {
id: 'character_varying',
name: 'character varying',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: 'v3ek62rrsh8gdtr7jpnuremi3',
name: 'format',
type: {
id: 'character_varying',
name: 'character varying',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: 'qs80fnu5l0my70mqr8wrxhxpi',
name: 'serialized_data',
type: {
id: 'text',
name: 'text',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: '1tl6ctq3orl37as2egw6as7l2',
name: 'object_repr',
type: {
id: 'text',
name: 'text',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: '754680oc0l4vnc1cltlg2u6j5',
name: 'content_type_id',
type: {
id: 'integer',
name: 'integer',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: '4zgrxtfln1vbn11g1fksoi71n',
name: 'revision_id',
type: {
id: 'integer',
name: 'integer',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: 'poog75wj64fgrb3q1llpb5iua',
name: 'db',
type: {
id: 'character_varying',
name: 'character varying',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
],
indexes: [
{
id: 'dl89wmn0ubu9wtxgcz3lfgwr5',
name: 'reversion_version_db_content_type_id_object_id_revision_id_uniq',
unique: true,
fieldIds: [
'poog75wj64fgrb3q1llpb5iua',
'754680oc0l4vnc1cltlg2u6j5',
'5rcck5wqsezl9mr8y6vwbj9nu',
'4zgrxtfln1vbn11g1fksoi71n',
],
createdAt: Date.now(),
},
{
id: 'zt2sezsi9e79znlazfd321ld3',
name: 'reversion_version_pkey',
unique: true,
fieldIds: ['oekrmcccwzb4m7yr14sve140y'],
createdAt: Date.now(),
},
],
color: '#ff6363',
isView: false,
isMaterializedView: false,
createdAt: Date.now(),
},
{
id: 'hlsk0icz2mso3czxx45g7dcbj',
name: 'auth_user',
schema: 'public',
x: -216.9672275210761,
y: 92.16671957746007,
fields: [
{
id: 'yrh05ijpg4e0g0catmqipbs0b',
name: 'id',
type: {
id: 'integer',
name: 'integer',
},
primaryKey: true,
unique: true,
nullable: false,
createdAt: Date.now(),
},
],
indexes: [
{
id: '0oklodaz95u913bl53xfw2cgw',
name: 'auth_user_pkey',
unique: true,
fieldIds: ['yrh05ijpg4e0g0catmqipbs0b'],
createdAt: Date.now(),
},
],
color: '#ff6363',
isView: false,
isMaterializedView: false,
createdAt: Date.now(),
},
{
id: 'm2bz2erjdddq1gkllitzz85lf',
name: 'reversion_revision',
schema: 'public',
x: 100,
y: -191.39803171848786,
fields: [
{
id: 'n4ck81ah0i122hwo1temykxov',
name: 'id',
type: {
id: 'integer',
name: 'integer',
},
primaryKey: true,
unique: true,
nullable: false,
createdAt: Date.now(),
},
{
id: 'ktyja9ud79wjeyow1e6oqtf9y',
name: 'date_created',
type: {
id: 'timestamp_without_time_zone',
name: 'timestamp without time zone',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: 'slkveui0isgbxsm0ovktp7p4o',
name: 'comment',
type: {
id: 'text',
name: 'text',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: 'l27mx98db22pvpl9wx6a6aptx',
name: 'user_id',
type: {
id: 'integer',
name: 'integer',
},
primaryKey: false,
unique: false,
nullable: true,
createdAt: Date.now(),
},
],
indexes: [
{
id: 'u3rbquia5fbikru96pheubqph',
name: 'reversion_revision_date_created_index',
unique: false,
fieldIds: ['ktyja9ud79wjeyow1e6oqtf9y'],
createdAt: Date.now(),
},
{
id: 'w7eva3mrl7taqschfapaf85sh',
name: 'reversion_revision_pkey',
unique: true,
fieldIds: ['n4ck81ah0i122hwo1temykxov'],
createdAt: Date.now(),
},
],
color: '#ffe374',
isView: false,
isMaterializedView: false,
createdAt: Date.now(),
},
],
relationships: [
{
id: '54riti2nvt8xb6bcpg4ctyz8f',
name: 'reversion_version_revision_id_foreign',
sourceSchema: 'public',
targetSchema: 'public',
sourceTableId: '97rot1dndzf83yt3armaynm66',
targetTableId: 'm2bz2erjdddq1gkllitzz85lf',
sourceFieldId: '4zgrxtfln1vbn11g1fksoi71n',
targetFieldId: 'n4ck81ah0i122hwo1temykxov',
sourceCardinality: 'many',
targetCardinality: 'one',
createdAt: Date.now(),
},
{
id: 'bl05eigbvn8h4rsey6ugs949n',
name: 'reversion_version_content_type_id_foreign',
sourceSchema: 'public',
targetSchema: 'public',
sourceTableId: '97rot1dndzf83yt3armaynm66',
targetTableId: '5vbs1o9jcijqaos2r7ufyf3qk',
sourceFieldId: '754680oc0l4vnc1cltlg2u6j5',
targetFieldId: 'fz4jkfpns4wgyfdyhw51smsk0',
sourceCardinality: 'many',
targetCardinality: 'one',
createdAt: Date.now(),
},
{
id: 'uneee946ch7dq8e6djh40sigv',
name: 'reversion_revision_user_id_foreign',
sourceSchema: 'public',
targetSchema: 'public',
sourceTableId: 'm2bz2erjdddq1gkllitzz85lf',
targetTableId: 'hlsk0icz2mso3czxx45g7dcbj',
sourceFieldId: 'l27mx98db22pvpl9wx6a6aptx',
targetFieldId: 'yrh05ijpg4e0g0catmqipbs0b',
sourceCardinality: 'many',
targetCardinality: 'one',
createdAt: Date.now(),
},
],
dependencies: [],
},
};

View File

@@ -0,0 +1,536 @@
import { DatabaseType } from '@/lib/domain/database-type';
import type { Template } from '../templates-data';
import image from '@/assets/templates/screeenly-db.png';
import imageDark from '@/assets/templates/screeenly-db-dark.png';
export const screeenlyDb: Template = {
slug: 'screeenly-database',
name: 'Screeenly',
shortDescription: 'Capturing high-quality website screenshots',
description:
'An open-source web application that provides a simple API for generating website screenshots.',
image,
imageDark,
tags: ['Postgres', 'Open Source', 'Laravel', 'PHP'],
featured: false,
url: 'https://github.com/stefanzweifel/screeenly',
diagram: {
id: 'screeenly_db',
name: 'screeenly-database',
createdAt: new Date(),
updatedAt: new Date(),
databaseType: DatabaseType.POSTGRESQL,
tables: [
{
id: '8fvrxtp8fkibvean8y4yrrfot',
name: 'password_resets',
schema: 'public',
x: 500,
y: 500,
fields: [
{
id: 'qfl022lduv48ud0fwo6r4cq4w',
name: 'email',
type: {
id: 'character_varying',
name: 'character varying',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: 'ik6kosdk4rqdmos2rcixmb9zb',
name: 'token',
type: {
id: 'character_varying',
name: 'character varying',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: 'uuecnzt95psc38ogftbic40kq',
name: 'created_at',
type: {
id: 'timestamp_without_time_zone',
name: 'timestamp without time zone',
},
primaryKey: false,
unique: false,
nullable: true,
createdAt: Date.now(),
},
],
indexes: [
{
id: 'mwdx35yl99udnttmwyam1x2dl',
name: 'password_resets_email_index',
unique: false,
fieldIds: ['qfl022lduv48ud0fwo6r4cq4w'],
createdAt: Date.now(),
},
{
id: 'rhw4qs22pd3xiiyspzfe60nr0',
name: 'password_resets_token_index',
unique: false,
fieldIds: ['ik6kosdk4rqdmos2rcixmb9zb'],
createdAt: Date.now(),
},
],
color: '#ff6363',
isView: false,
isMaterializedView: false,
createdAt: Date.now(),
},
{
id: 'b5ry73fbil6z7ijb00kd9a49d',
name: 'api_keys',
schema: 'public',
x: 500,
y: 197.97315993202608,
fields: [
{
id: '42oq2j16gxgwupuktzgk60bju',
name: 'id',
type: {
id: 'integer',
name: 'integer',
},
primaryKey: true,
unique: true,
nullable: false,
createdAt: Date.now(),
},
{
id: 'hp74f9yh75felios6qtwrmand',
name: 'name',
type: {
id: 'character_varying',
name: 'character varying',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: '9ek6hdltem6s742jzwy9lhjcw',
name: 'key',
type: {
id: 'character_varying',
name: 'character varying',
},
primaryKey: false,
unique: true,
nullable: false,
createdAt: Date.now(),
},
{
id: 'upy2tuvw9egm4n9jwx4u8vpt4',
name: 'user_id',
type: {
id: 'integer',
name: 'integer',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: '63fkdp9s6xgen1oer643g1qwq',
name: 'created_at',
type: {
id: 'timestamp_without_time_zone',
name: 'timestamp without time zone',
},
primaryKey: false,
unique: false,
nullable: true,
createdAt: Date.now(),
},
{
id: 'u3rkz6nq9ckxlbxsbizyh5fkh',
name: 'updated_at',
type: {
id: 'timestamp_without_time_zone',
name: 'timestamp without time zone',
},
primaryKey: false,
unique: false,
nullable: true,
createdAt: Date.now(),
},
],
indexes: [
{
id: 'v0ash4efnei4edc1xcllkabf2',
name: 'api_keys_key_unique',
unique: true,
fieldIds: ['9ek6hdltem6s742jzwy9lhjcw'],
createdAt: Date.now(),
},
{
id: 'cavfokep5f3eb7lpj6408da57',
name: 'api_keys_pkey',
unique: true,
fieldIds: ['42oq2j16gxgwupuktzgk60bju'],
createdAt: Date.now(),
},
{
id: 'mcjywmwjipakf5zsw2mclqpol',
name: 'api_keys_user_id_index',
unique: false,
fieldIds: ['upy2tuvw9egm4n9jwx4u8vpt4'],
createdAt: Date.now(),
},
],
color: '#b067e9',
isView: false,
isMaterializedView: false,
createdAt: Date.now(),
},
{
id: 'eq3rinbmyqkvn4pp3ai7crdiq',
name: 'users',
schema: 'public',
x: 119.59463198640526,
y: 5.473021582326737,
fields: [
{
id: 'c9v3h1y3dwkhithk1j0vzr0u6',
name: 'id',
type: {
id: 'integer',
name: 'integer',
},
primaryKey: true,
unique: true,
nullable: false,
createdAt: Date.now(),
},
{
id: 'jpawkhjll1flccir6ihv0pm6y',
name: 'email',
type: {
id: 'character_varying',
name: 'character varying',
},
primaryKey: false,
unique: true,
nullable: false,
createdAt: Date.now(),
},
{
id: 'ci1ytk3qjdnh590eokr8owlv6',
name: 'token',
type: {
id: 'character_varying',
name: 'character varying',
},
primaryKey: false,
unique: false,
nullable: true,
createdAt: Date.now(),
},
{
id: 'iz7bu0ywvw2315vkb4zkxw41v',
name: 'provider',
type: {
id: 'character_varying',
name: 'character varying',
},
primaryKey: false,
unique: false,
nullable: true,
createdAt: Date.now(),
},
{
id: 'a2tw1rk4m5w1lomb0riil560c',
name: 'provider_id',
type: {
id: 'character_varying',
name: 'character varying',
},
primaryKey: false,
unique: false,
nullable: true,
createdAt: Date.now(),
},
{
id: '88nfh4wbfkpe4nrcumsygpub0',
name: 'created_at',
type: {
id: 'timestamp_without_time_zone',
name: 'timestamp without time zone',
},
primaryKey: false,
unique: false,
nullable: true,
createdAt: Date.now(),
},
{
id: 'k01wh0624jb25z17dcl2q1ejl',
name: 'updated_at',
type: {
id: 'timestamp_without_time_zone',
name: 'timestamp without time zone',
},
primaryKey: false,
unique: false,
nullable: true,
createdAt: Date.now(),
},
{
id: '5g5bkwo0480o9sps9j0l6z2l4',
name: 'name',
type: {
id: 'character_varying',
name: 'character varying',
},
primaryKey: false,
unique: false,
nullable: true,
createdAt: Date.now(),
},
{
id: 'h2b28wbenke9xw4neelrr2ux7',
name: 'password',
type: {
id: 'character_varying',
name: 'character varying',
},
primaryKey: false,
unique: false,
nullable: true,
createdAt: Date.now(),
},
{
id: '745vls6ns8u1h5vm0a9g0qg4z',
name: 'remember_token',
type: {
id: 'character_varying',
name: 'character varying',
},
primaryKey: false,
unique: false,
nullable: true,
createdAt: Date.now(),
},
],
indexes: [
{
id: '5a2nbtxdq5rp8wdwuqrjmqr4d',
name: 'users_pkey',
unique: true,
fieldIds: ['c9v3h1y3dwkhithk1j0vzr0u6'],
createdAt: Date.now(),
},
{
id: '2h880rrh20ji529gln769go96',
name: 'users_email_unique',
unique: true,
fieldIds: ['jpawkhjll1flccir6ihv0pm6y'],
createdAt: Date.now(),
},
],
color: '#c05dcf',
isView: false,
isMaterializedView: false,
createdAt: Date.now(),
},
{
id: 'kvrc9elo1eruj57f8wbx4f2bu',
name: 'api_log',
schema: 'public',
x: -228.58121195241824,
y: 217.63516878776466,
fields: [
{
id: 'hkznvnetpfhfk4x6wvvscj451',
name: 'id',
type: {
id: 'integer',
name: 'integer',
},
primaryKey: true,
unique: true,
nullable: false,
createdAt: Date.now(),
},
{
id: 'gy3tdo2xnei2glvf684uvpx95',
name: 'user_id',
type: {
id: 'integer',
name: 'integer',
},
primaryKey: false,
unique: false,
nullable: true,
createdAt: Date.now(),
},
{
id: 'gvl7q0o671v4inhnotbbwdsn1',
name: 'api_key_id',
type: {
id: 'integer',
name: 'integer',
},
primaryKey: false,
unique: false,
nullable: true,
createdAt: Date.now(),
},
{
id: '9504kb5mta5gdvneyvbyb2f86',
name: 'images',
type: {
id: 'text',
name: 'text',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: '80y0556noakmgidg3c1m0ly3h',
name: 'created_at',
type: {
id: 'timestamp_without_time_zone',
name: 'timestamp without time zone',
},
primaryKey: false,
unique: false,
nullable: true,
createdAt: Date.now(),
},
{
id: '7q7s2ni6wvgci5v6e2krbvynv',
name: 'updated_at',
type: {
id: 'timestamp_without_time_zone',
name: 'timestamp without time zone',
},
primaryKey: false,
unique: false,
nullable: true,
createdAt: Date.now(),
},
],
indexes: [
{
id: '28m6v8j3gxiwglm7hvn175h8a',
name: 'api_log_user_id_index',
unique: false,
fieldIds: ['gy3tdo2xnei2glvf684uvpx95'],
createdAt: Date.now(),
},
{
id: '7a9amdkmreqnw06iytcahi85o',
name: 'api_log_pkey',
unique: true,
fieldIds: ['hkznvnetpfhfk4x6wvvscj451'],
createdAt: Date.now(),
},
],
color: '#ffe374',
isView: false,
isMaterializedView: false,
createdAt: Date.now(),
},
{
id: 'lj0wibk34sqr1zz9e0kuuvqji',
name: 'migrations',
schema: 'public',
x: 216.48644161631364,
y: 505.8783895959216,
fields: [
{
id: 'ynxooqs5lm3oonb59stpgrzlj',
name: 'id',
type: {
id: 'integer',
name: 'integer',
},
primaryKey: true,
unique: true,
nullable: false,
createdAt: Date.now(),
},
{
id: 'lesnsizfcigcf2l73ksg93v0s',
name: 'migration',
type: {
id: 'character_varying',
name: 'character varying',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: 'rq31fdh4r9c0ko0e35f2b261u',
name: 'batch',
type: {
id: 'integer',
name: 'integer',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
],
indexes: [
{
id: '0hjk4ujpmk2fnuz570duu8pay',
name: 'migrations_pkey',
unique: true,
fieldIds: ['ynxooqs5lm3oonb59stpgrzlj'],
createdAt: Date.now(),
},
],
color: '#7175fa',
isView: false,
isMaterializedView: false,
createdAt: Date.now(),
},
],
relationships: [
{
id: '2hd93u6rohoxdbc9lwdibp104',
name: 'api_keys_user_id_foreign',
sourceSchema: 'public',
targetSchema: 'public',
sourceTableId: 'b5ry73fbil6z7ijb00kd9a49d',
targetTableId: 'eq3rinbmyqkvn4pp3ai7crdiq',
sourceFieldId: 'upy2tuvw9egm4n9jwx4u8vpt4',
targetFieldId: 'c9v3h1y3dwkhithk1j0vzr0u6',
sourceCardinality: 'many',
targetCardinality: 'one',
createdAt: Date.now(),
},
{
id: 'nqopnr1bc8dlavpfr735mzjsr',
name: 'api_log_user_id_foreign',
sourceSchema: 'public',
targetSchema: 'public',
sourceTableId: 'kvrc9elo1eruj57f8wbx4f2bu',
targetTableId: 'eq3rinbmyqkvn4pp3ai7crdiq',
sourceFieldId: 'gy3tdo2xnei2glvf684uvpx95',
targetFieldId: 'c9v3h1y3dwkhithk1j0vzr0u6',
sourceCardinality: 'many',
targetCardinality: 'one',
createdAt: Date.now(),
},
],
dependencies: [],
},
};

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,368 @@
import { DatabaseType } from '@/lib/domain/database-type';
import type { Template } from '../templates-data';
import image from '@/assets/templates/talk-db.png';
import imageDark from '@/assets/templates/talk-db-dark.png';
export const talkDb: Template = {
slug: 'talk-database',
name: 'Talk',
shortDescription: 'Real-time messaging system for Laravel apps',
description:
'Real-time user messaging and chatting, enabling easy integration of a complete messaging system into Laravel',
image,
imageDark,
tags: ['MySQL', 'Open Source', 'Laravel', 'PHP'],
featured: false,
url: 'https://github.com/nahid/talk',
diagram: {
id: 'talk_db',
name: 'talk-database',
createdAt: new Date(),
updatedAt: new Date(),
databaseType: DatabaseType.MYSQL,
tables: [
{
id: 'c7vc8hqi3g685begamoeynk8d',
name: 'conversations',
schema: 't_talk_db',
x: 100,
y: 100,
fields: [
{
id: 'gjppm3s63owtj652n7pg98ge1',
name: 'id',
type: {
id: 'int',
name: 'int',
},
primaryKey: true,
unique: true,
nullable: false,
createdAt: Date.now(),
},
{
id: 's7i8ns3s2s90qnwq0f5bhh3os',
name: 'user_one',
type: {
id: 'int',
name: 'int',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: 'ksw3hnnqf8qcbydiyj8mzr62m',
name: 'user_two',
type: {
id: 'int',
name: 'int',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: 'zlv1x0tkmteanxzkr3257c7wc',
name: 'status',
type: {
id: 'tinyint',
name: 'tinyint',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: 'nbdsdsizrfnwonyfxitlv9h6a',
name: 'created_at',
type: {
id: 'datetime',
name: 'datetime',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: 'f154qz15wvtnf5be9y5di0gt5',
name: 'updated_at',
type: {
id: 'datetime',
name: 'datetime',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
],
indexes: [
{
id: 'zbze18d7ee2fw29v7ehtcpt2h',
name: 'PRIMARY',
unique: true,
fieldIds: ['gjppm3s63owtj652n7pg98ge1'],
createdAt: Date.now(),
},
{
id: '3ki3fnfhjcacver3wxpk82wyo',
name: 'conversations_user_one_foreign',
unique: false,
fieldIds: ['s7i8ns3s2s90qnwq0f5bhh3os'],
createdAt: Date.now(),
},
{
id: '24bjsc5mnqcqx01vidy1hvl3o',
name: 'conversations_user_two_foreign',
unique: false,
fieldIds: ['ksw3hnnqf8qcbydiyj8mzr62m'],
createdAt: Date.now(),
},
],
color: '#ffe374',
isView: false,
isMaterializedView: false,
createdAt: Date.now(),
},
{
id: 'hhzhqg75ww5z6hpcclgt744gp',
name: 'users',
schema: 't_talk_db',
x: 452.2341222932548,
y: 429.1972652762166,
fields: [
{
id: '4zee1a93txjpymyykzffgn0yv',
name: 'id',
type: {
id: 'int',
name: 'int',
},
primaryKey: true,
unique: true,
nullable: false,
createdAt: Date.now(),
},
],
indexes: [
{
id: 'x5bfcqhwf7z54s3vn13hw3m8u',
name: 'PRIMARY',
unique: true,
fieldIds: ['4zee1a93txjpymyykzffgn0yv'],
createdAt: Date.now(),
},
],
color: '#ff6b8a',
isView: false,
isMaterializedView: false,
createdAt: Date.now(),
},
{
id: 'p93y0ksa4riotg9brtg3us955',
name: 'messages',
schema: 't_talk_db',
x: 634.0602484435269,
y: 7.05018392200941,
fields: [
{
id: 'ettweqmom2n5fo0uutyffgnq0',
name: 'id',
type: {
id: 'int',
name: 'int',
},
primaryKey: true,
unique: true,
nullable: false,
createdAt: Date.now(),
},
{
id: 'nm5w9qy0mhqnei6yc1025hwgl',
name: 'message',
type: {
id: 'text',
name: 'text',
},
primaryKey: false,
unique: false,
nullable: false,
collation: 'utf8mb4_0900_ai_ci',
createdAt: Date.now(),
},
{
id: 'lu21oxdkkmgmhcfmitar7t3cn',
name: 'is_seen',
type: {
id: 'tinyint',
name: 'tinyint',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: 'y2jmvh0bst26ambmvbs8g3jbt',
name: 'deleted_from_sender',
type: {
id: 'tinyint',
name: 'tinyint',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: 'e85i74sgx3shtvtew2eavotpa',
name: 'deleted_from_receiver',
type: {
id: 'tinyint',
name: 'tinyint',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: '1xga79r962mnpd944tugdl4op',
name: 'user_id',
type: {
id: 'int',
name: 'int',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: 'chqdcj89fyutwbd3e3t2hsnvf',
name: 'conversation_id',
type: {
id: 'int',
name: 'int',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: 'tk1zdv6msjpuxdo5is0yp66l1',
name: 'created_at',
type: {
id: 'datetime',
name: 'datetime',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
{
id: 'qhto8ms1z0lz4o9hztfe1v548',
name: 'updated_at',
type: {
id: 'datetime',
name: 'datetime',
},
primaryKey: false,
unique: false,
nullable: false,
createdAt: Date.now(),
},
],
indexes: [
{
id: 'zsc4o8e1ipuat9gtvnf763937',
name: 'PRIMARY',
unique: true,
fieldIds: ['ettweqmom2n5fo0uutyffgnq0'],
createdAt: Date.now(),
},
{
id: '0m73imn1n3n3xcnu8qsm8ibdg',
name: 'messages_user_id_foreign',
unique: false,
fieldIds: ['1xga79r962mnpd944tugdl4op'],
createdAt: Date.now(),
},
{
id: 'l1rt2wppy72ihb694ogwz01ep',
name: 'messages_conversation_id_foreign',
unique: false,
fieldIds: ['chqdcj89fyutwbd3e3t2hsnvf'],
createdAt: Date.now(),
},
],
color: '#8eb7ff',
isView: false,
isMaterializedView: false,
createdAt: Date.now(),
},
],
relationships: [
{
id: '4qbxn9c9guxu4s12o2fut1k2b',
name: 'conversations_user_two_foreign',
sourceSchema: 't_talk_db',
targetSchema: 't_talk_db',
sourceTableId: 'c7vc8hqi3g685begamoeynk8d',
targetTableId: 'hhzhqg75ww5z6hpcclgt744gp',
sourceFieldId: 'ksw3hnnqf8qcbydiyj8mzr62m',
targetFieldId: '4zee1a93txjpymyykzffgn0yv',
sourceCardinality: 'many',
targetCardinality: 'one',
createdAt: Date.now(),
},
{
id: '4uof65m5ev39c3dy016tyhguu',
name: 'messages_conversation_id_foreign',
sourceSchema: 't_talk_db',
targetSchema: 't_talk_db',
sourceTableId: 'p93y0ksa4riotg9brtg3us955',
targetTableId: 'c7vc8hqi3g685begamoeynk8d',
sourceFieldId: 'chqdcj89fyutwbd3e3t2hsnvf',
targetFieldId: 'gjppm3s63owtj652n7pg98ge1',
sourceCardinality: 'many',
targetCardinality: 'one',
createdAt: Date.now(),
},
{
id: 'de4p0tsu4gs07m76534tomu9k',
name: 'messages_user_id_foreign',
sourceSchema: 't_talk_db',
targetSchema: 't_talk_db',
sourceTableId: 'p93y0ksa4riotg9brtg3us955',
targetTableId: 'hhzhqg75ww5z6hpcclgt744gp',
sourceFieldId: '1xga79r962mnpd944tugdl4op',
targetFieldId: '4zee1a93txjpymyykzffgn0yv',
sourceCardinality: 'many',
targetCardinality: 'one',
createdAt: Date.now(),
},
{
id: 'ro7uwskdw8b1mj833n9m82yn9',
name: 'conversations_user_one_foreign',
sourceSchema: 't_talk_db',
targetSchema: 't_talk_db',
sourceTableId: 'c7vc8hqi3g685begamoeynk8d',
targetTableId: 'hhzhqg75ww5z6hpcclgt744gp',
sourceFieldId: 's7i8ns3s2s90qnwq0f5bhh3os',
targetFieldId: '4zee1a93txjpymyykzffgn0yv',
sourceCardinality: 'many',
targetCardinality: 'one',
createdAt: Date.now(),
},
],
dependencies: [],
},
};