IContactSubmissionRepository
in
Contract for persisting and retrieving contact form submissions.
Table of Contents
Methods
- create() : int
- Insert a submission and return its new id.
- delete() : bool
- Delete a submission by id.
- findById() : array<string, mixed>|null
- Find a submission by id.
- formKeys() : array<int, string>
- Distinct form keys present in stored submissions (for filter UI).
- markDelivered() : bool
- Mark a submission as delivered (sets delivered + delivered_at).
-
paginate()
: array{items: array
>, total: int, page: int, per_page: int, pages: int} - Return a page of submissions, newest first, optionally filtered by form key.
Methods
create()
Insert a submission and return its new id.
public
create(array<string, mixed> $data) : int
Parameters
- $data : array<string, mixed>
-
Row data (payload should already be json_encoded)
Return values
int —The inserted row id
delete()
Delete a submission by id.
public
delete(int $id) : bool
Parameters
- $id : int
Return values
boolfindById()
Find a submission by id.
public
findById(int $id) : array<string, mixed>|null
Parameters
- $id : int
Return values
array<string, mixed>|null —Associative row, or null when not found
formKeys()
Distinct form keys present in stored submissions (for filter UI).
public
formKeys() : array<int, string>
Return values
array<int, string>markDelivered()
Mark a submission as delivered (sets delivered + delivered_at).
public
markDelivered(int $id) : bool
Parameters
- $id : int
Return values
boolpaginate()
Return a page of submissions, newest first, optionally filtered by form key.
public
paginate([int $page = 1 ][, int $perPage = 25 ][, string|null $formKey = null ]) : array{items: array>, total: int, page: int, per_page: int, pages: int}
Parameters
- $page : int = 1
-
Page number (1-based)
- $perPage : int = 25
-
Items per page
- $formKey : string|null = null
-
Optional form key filter