This commit is contained in:
2026-09-02 09:19:43 +03:00
parent 74cb5b6176
commit 962f489142
34 changed files with 1190 additions and 124 deletions
@@ -0,0 +1,20 @@
import { BaseSchema } from '@adonisjs/lucid/schema'
export default class extends BaseSchema {
protected tableName = 'tenants'
async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('id')
table.string('name').notNullable()
table.string('slug').notNullable().unique()
table.string('status').notNullable().defaultTo('active')
table.timestamp('created_at').notNullable().defaultTo(this.now())
table.timestamp('updated_at').nullable()
})
}
async down() {
this.schema.dropTable(this.tableName)
}
}
@@ -0,0 +1,32 @@
import { BaseSchema } from '@adonisjs/lucid/schema'
export default class extends BaseSchema {
protected tableName = 'admin_tenants'
async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('id')
table
.integer('admin_id')
.unsigned()
.notNullable()
.references('id')
.inTable('admins')
.onDelete('CASCADE')
table
.integer('tenant_id')
.unsigned()
.notNullable()
.references('id')
.inTable('tenants')
.onDelete('CASCADE')
table.timestamp('created_at').notNullable().defaultTo(this.now())
table.timestamp('updated_at').nullable()
table.unique(['admin_id', 'tenant_id'])
})
}
async down() {
this.schema.dropTable(this.tableName)
}
}
@@ -0,0 +1,29 @@
import { BaseSchema } from '@adonisjs/lucid/schema'
export default class extends BaseSchema {
protected tableName = 'contacts'
async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('id').notNullable()
table
.integer('tenant_id')
.unsigned()
.notNullable()
.references('id')
.inTable('tenants')
.onDelete('CASCADE')
table.string('display_name').notNullable()
table.string('email').nullable()
table.string('phone').nullable()
table.string('status').notNullable().defaultTo('active')
table.timestamp('created_at').notNullable().defaultTo(this.now())
table.timestamp('updated_at').nullable()
table.index(['tenant_id', 'display_name'])
})
}
async down() {
this.schema.dropTable(this.tableName)
}
}
@@ -0,0 +1,33 @@
import { BaseSchema } from '@adonisjs/lucid/schema'
export default class extends BaseSchema {
protected tableName = 'custom_fields'
async up() {
this.schema.createTable(this.tableName, (table) => {
table.increments('id').notNullable()
table
.integer('tenant_id')
.unsigned()
.notNullable()
.references('id')
.inTable('tenants')
.onDelete('CASCADE')
table.string('entity_type').notNullable()
table.string('name').notNullable()
table.string('key').notNullable()
table.string('field_type').notNullable()
table.boolean('required').notNullable().defaultTo(false)
table.jsonb('options').nullable()
table.string('status').notNullable().defaultTo('active')
table.timestamp('created_at').notNullable().defaultTo(this.now())
table.timestamp('updated_at').notNullable().defaultTo(this.now())
table.unique(['tenant_id', 'entity_type', 'key'])
table.index(['tenant_id', 'entity_type'])
})
}
async down() {
this.schema.dropTable(this.tableName)
}
}