1from __future__ import annotations
2
3from datetime import datetime
4
5from plain import postgres
6from plain.postgres import types
7
8__all__ = ["SupportFormEntry"]
9
10
11@postgres.register_model
12class SupportFormEntry(postgres.Model):
13 user = types.ForeignKeyField(
14 "users.User",
15 on_delete=postgres.SET_NULL,
16 allow_null=True,
17 required=False,
18 )
19 name: str = types.TextField(max_length=255)
20 email: str = types.EmailField()
21 message: str = types.TextField()
22 created_at: datetime = types.DateTimeField(create_now=True)
23 form_slug: str = types.TextField(max_length=255)
24 # referrer? source? session?
25 # extra_data
26
27 query: postgres.QuerySet[SupportFormEntry] = postgres.QuerySet()
28
29 model_options = postgres.Options(
30 ordering=["-created_at"],
31 indexes=[
32 postgres.Index(
33 name="plainsupport_supportformentry_created_at_idx",
34 fields=["created_at"],
35 ),
36 postgres.Index(
37 name="plainsupport_supportformentry_user_id_idx",
38 fields=["user"],
39 ),
40 ],
41 )