feat(shard): ✨ Ban people with over 3 warns, even if the moderator specifies a warn.
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
from tortoise import BaseDBAsyncClient
|
||||
|
||||
|
||||
async def upgrade(db: BaseDBAsyncClient) -> str:
|
||||
return """
|
||||
CREATE TABLE IF NOT EXISTS "warn" (
|
||||
"id" SERIAL NOT NULL PRIMARY KEY,
|
||||
"user_id" BIGINT NOT NULL,
|
||||
"reason" TEXT,
|
||||
"created_at" TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"created_by_id" BIGINT NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE,
|
||||
"report_id" BIGINT REFERENCES "report" ("id") ON DELETE CASCADE
|
||||
);
|
||||
COMMENT ON TABLE "warn" IS 'A warn.';"""
|
||||
|
||||
|
||||
async def downgrade(db: BaseDBAsyncClient) -> str:
|
||||
return """
|
||||
DROP TABLE IF EXISTS "warn";"""
|
||||
@@ -144,6 +144,16 @@ class User(models.Model):
|
||||
)
|
||||
|
||||
|
||||
class Warn(models.Model):
|
||||
"""A warn."""
|
||||
|
||||
user_id = fields.BigIntField()
|
||||
report = fields.ForeignKeyField("models.Report", null=True)
|
||||
reason = fields.TextField(null=True, default=None)
|
||||
created_at = fields.DatetimeField(auto_now_add=True)
|
||||
created_by = fields.ForeignKeyField("models.User", related_name="created_warns")
|
||||
|
||||
|
||||
class Ban(models.Model):
|
||||
"""
|
||||
A ban.
|
||||
|
||||
Reference in New Issue
Block a user