Files
thetool/db/migrations/20250819112354_create_email_log.php
2025-08-22 17:49:54 +02:00

80 lines
3.5 KiB
PHP

<?php
declare(strict_types=1);
use Phinx\Migration\AbstractMigration;
final class CreateEmailLog extends AbstractMigration
{
public function up(): void
{
if($this->getEnvironment() == "thetool") {
$el = $this->table("EmailLog");
$el->addColumn("object_type", "string", ["null" => false, "length" => 255]);
$el->addColumn("object_id", "integer", ["null" => false]);
$el->addColumn("object_data", "string", ["null" => false, "length" => 255]);
$el->addColumn("from", "string", ["null" => false, "length" => 255]);
$el->addColumn("to", "string", ["null" => false, "length" => 255]);
$el->addColumn("headers", "json", ["null" => false]);
$el->addColumn("subject", "string", ["null" => false, "length" => 255]);
$el->addColumn("body_text", "text", ["null" => true, "length" => Phinx\Db\Adapter\MysqlAdapter::TEXT_LONG]);;
$el->addColumn("body_html", "text", ["null" => true, "length" => Phinx\Db\Adapter\MysqlAdapter::TEXT_LONG]);
$el->addColumn("create_by", "integer", ["null" => false]);
$el->addColumn("edit_by", "integer", ["null" => false]);
$el->addColumn("create", "integer", ["null" => false]);
$el->addColumn("edit", "integer", ["null" => false]);
$el->addIndex(["object_type"]);
$el->addIndex(["object_id"]);
$el->addIndex(["object_data"]);
$el->addIndex(["from"]);
$el->addIndex(["to"]);
$el->addIndex(["subject"]);
$el->create();
$ela = $this->table("EmailLogAttachment");
$ela->addColumn("emaillog_id", "integer", ["null" => false]);
$ela->addColumn("content_id", "string", ["null" => false, "length" => 255]);
$ela->addColumn("filename", "string", ["null" => false, "length" => 255]);
$ela->addColumn("create_by", "integer", ["null" => false]);
$ela->addColumn("edit_by", "integer", ["null" => false]);
$ela->addColumn("create", "integer", ["null" => false]);
$ela->addColumn("edit", "integer", ["null" => false]);
$ela->addIndex(["emaillog_id"]);
$ela->addIndex(["content_id"]);
$ela->addIndex(["filename"]);
$ela->create();
$elad = $this->table("EmailLogAttachmentContent");
$elad->addColumn("mimetype", "string", ["null" => false, "length" => 255]);
$elad->addColumn("filesize", "integer", ["null" => false]);
$elad->addColumn("sha256", "string", ["null" => false, "length" => 255]);
$elad->addColumn("content", "blob", ["null" => false, "length" => Phinx\Db\Adapter\MysqlAdapter::BLOB_LONG]);
$elad->addColumn("create_by", "integer", ["null" => false]);
$elad->addColumn("edit_by", "integer", ["null" => false]);
$elad->addColumn("create", "integer", ["null" => false]);
$elad->addColumn("edit", "integer", ["null" => false]);
$elad->addIndex(["sha256"]);
$elad->create();
}
if($this->getEnvironment() == "addressdb") {
}
}
public function down(): void
{
if($this->getEnvironment() == "thetool") {
$this->table("EmailLog")->drop()->save();
$this->table("EmailLogAttachment")->drop()->save();
$this->table("EmailLogAttachmentContent")->drop()->save();
}
if($this->getEnvironment() == "addressdb") {
}
}
}