pub struct StoredNotification {
pub id: Uuid,
pub user_id: String,
pub panel: String,
pub tenant: Option<Uuid>,
pub notification: Json<Notification>,
pub read_at: Option<Timestamp>,
pub created_at: Timestamp,
}Expand description
Shipped record of a Notification kept for one panel user: what it says, whose it is, on
which panel and for which tenant, and whether they read it.
Notifications::send writes it and the bell of a panel with
Panel::notifications lists it.
Fields§
§id: Uuid§user_id: StringPanelUser::user_id of the user it is for.
panel: StringThe prefix of the panel whose bell lists it, e.g. /admin.
tenant: Option<Uuid>The tenant it belongs to: the bell lists it only while the user acts for that tenant.
None lists it whichever tenant they act for.
notification: Json<Notification>What it says, as JSON, so a field a later release adds to Notification needs no
migration.
read_at: Option<Timestamp>When the user marked it read; None while unread.
created_at: TimestampImplementations§
Source§impl StoredNotification
impl StoredNotification
Sourcepub fn fields() -> StoredNotificationFields<StoredNotification>
pub fn fields() -> StoredNotificationFields<StoredNotification>
Returns a handle used to reference StoredNotification’s fields when building query expressions.
Sourcepub async fn get_by_id(
executor: &mut dyn Executor,
id: impl IntoExpr<FieldExprTarget<Uuid>>,
) -> Result<StoredNotification>
pub async fn get_by_id( executor: &mut dyn Executor, id: impl IntoExpr<FieldExprTarget<Uuid>>, ) -> Result<StoredNotification>
Fetches the single StoredNotification where id matches, erroring if none exists.
Sourcepub fn update_by_id(
id: impl IntoExpr<FieldExprTarget<Uuid>>,
) -> StoredNotificationUpdate
pub fn update_by_id( id: impl IntoExpr<FieldExprTarget<Uuid>>, ) -> StoredNotificationUpdate
Returns a builder that updates the StoredNotification where id matches.
Sourcepub async fn delete_by_id(
executor: &mut dyn Executor,
id: impl IntoExpr<FieldExprTarget<Uuid>>,
) -> Result<()>
pub async fn delete_by_id( executor: &mut dyn Executor, id: impl IntoExpr<FieldExprTarget<Uuid>>, ) -> Result<()>
Deletes the StoredNotification where id matches.
Sourcepub fn filter_by_id(
id: impl IntoExpr<FieldExprTarget<Uuid>>,
) -> StoredNotificationQuery
pub fn filter_by_id( id: impl IntoExpr<FieldExprTarget<Uuid>>, ) -> StoredNotificationQuery
Returns a query selecting the StoredNotification records where id matches.
Sourcepub async fn get_by_user_id(
executor: &mut dyn Executor,
user_id: impl IntoExpr<FieldExprTarget<String>>,
) -> Result<StoredNotification>
pub async fn get_by_user_id( executor: &mut dyn Executor, user_id: impl IntoExpr<FieldExprTarget<String>>, ) -> Result<StoredNotification>
Fetches the single StoredNotification where user_id matches, erroring if none exists.
Sourcepub fn update_by_user_id(
user_id: impl IntoExpr<FieldExprTarget<String>>,
) -> StoredNotificationUpdate
pub fn update_by_user_id( user_id: impl IntoExpr<FieldExprTarget<String>>, ) -> StoredNotificationUpdate
Returns a builder that updates the StoredNotification where user_id matches.
Sourcepub async fn delete_by_user_id(
executor: &mut dyn Executor,
user_id: impl IntoExpr<FieldExprTarget<String>>,
) -> Result<()>
pub async fn delete_by_user_id( executor: &mut dyn Executor, user_id: impl IntoExpr<FieldExprTarget<String>>, ) -> Result<()>
Deletes the StoredNotification where user_id matches.
Sourcepub fn filter_by_user_id(
user_id: impl IntoExpr<FieldExprTarget<String>>,
) -> StoredNotificationQuery
pub fn filter_by_user_id( user_id: impl IntoExpr<FieldExprTarget<String>>, ) -> StoredNotificationQuery
Returns a query selecting the StoredNotification records where user_id matches.
Sourcepub async fn get_by_user_id_and_panel(
executor: &mut dyn Executor,
user_id: impl IntoExpr<FieldExprTarget<String>>,
panel: impl IntoExpr<FieldExprTarget<String>>,
) -> Result<StoredNotification>
pub async fn get_by_user_id_and_panel( executor: &mut dyn Executor, user_id: impl IntoExpr<FieldExprTarget<String>>, panel: impl IntoExpr<FieldExprTarget<String>>, ) -> Result<StoredNotification>
Fetches the single StoredNotification where user_id and panel match, erroring if none exists.
Sourcepub fn update_by_user_id_and_panel(
user_id: impl IntoExpr<FieldExprTarget<String>>,
panel: impl IntoExpr<FieldExprTarget<String>>,
) -> StoredNotificationUpdate
pub fn update_by_user_id_and_panel( user_id: impl IntoExpr<FieldExprTarget<String>>, panel: impl IntoExpr<FieldExprTarget<String>>, ) -> StoredNotificationUpdate
Returns a builder that updates the StoredNotification where user_id and panel match.
Sourcepub async fn delete_by_user_id_and_panel(
executor: &mut dyn Executor,
user_id: impl IntoExpr<FieldExprTarget<String>>,
panel: impl IntoExpr<FieldExprTarget<String>>,
) -> Result<()>
pub async fn delete_by_user_id_and_panel( executor: &mut dyn Executor, user_id: impl IntoExpr<FieldExprTarget<String>>, panel: impl IntoExpr<FieldExprTarget<String>>, ) -> Result<()>
Deletes the StoredNotification where user_id and panel match.
Sourcepub fn filter_by_user_id_and_panel(
user_id: impl IntoExpr<FieldExprTarget<String>>,
panel: impl IntoExpr<FieldExprTarget<String>>,
) -> StoredNotificationQuery
pub fn filter_by_user_id_and_panel( user_id: impl IntoExpr<FieldExprTarget<String>>, panel: impl IntoExpr<FieldExprTarget<String>>, ) -> StoredNotificationQuery
Returns a query selecting the StoredNotification records where user_id and panel match.
Sourcepub async fn get_by_user_id_and_panel_and_created_at(
executor: &mut dyn Executor,
user_id: impl IntoExpr<FieldExprTarget<String>>,
panel: impl IntoExpr<FieldExprTarget<String>>,
created_at: impl IntoExpr<FieldExprTarget<Timestamp>>,
) -> Result<StoredNotification>
pub async fn get_by_user_id_and_panel_and_created_at( executor: &mut dyn Executor, user_id: impl IntoExpr<FieldExprTarget<String>>, panel: impl IntoExpr<FieldExprTarget<String>>, created_at: impl IntoExpr<FieldExprTarget<Timestamp>>, ) -> Result<StoredNotification>
Fetches the single StoredNotification where user_id and panel and created_at match, erroring if none exists.
Sourcepub fn update_by_user_id_and_panel_and_created_at(
user_id: impl IntoExpr<FieldExprTarget<String>>,
panel: impl IntoExpr<FieldExprTarget<String>>,
created_at: impl IntoExpr<FieldExprTarget<Timestamp>>,
) -> StoredNotificationUpdate
pub fn update_by_user_id_and_panel_and_created_at( user_id: impl IntoExpr<FieldExprTarget<String>>, panel: impl IntoExpr<FieldExprTarget<String>>, created_at: impl IntoExpr<FieldExprTarget<Timestamp>>, ) -> StoredNotificationUpdate
Returns a builder that updates the StoredNotification where user_id and panel and created_at match.
Sourcepub async fn delete_by_user_id_and_panel_and_created_at(
executor: &mut dyn Executor,
user_id: impl IntoExpr<FieldExprTarget<String>>,
panel: impl IntoExpr<FieldExprTarget<String>>,
created_at: impl IntoExpr<FieldExprTarget<Timestamp>>,
) -> Result<()>
pub async fn delete_by_user_id_and_panel_and_created_at( executor: &mut dyn Executor, user_id: impl IntoExpr<FieldExprTarget<String>>, panel: impl IntoExpr<FieldExprTarget<String>>, created_at: impl IntoExpr<FieldExprTarget<Timestamp>>, ) -> Result<()>
Deletes the StoredNotification where user_id and panel and created_at match.
Sourcepub fn filter_by_user_id_and_panel_and_created_at(
user_id: impl IntoExpr<FieldExprTarget<String>>,
panel: impl IntoExpr<FieldExprTarget<String>>,
created_at: impl IntoExpr<FieldExprTarget<Timestamp>>,
) -> StoredNotificationQuery
pub fn filter_by_user_id_and_panel_and_created_at( user_id: impl IntoExpr<FieldExprTarget<String>>, panel: impl IntoExpr<FieldExprTarget<String>>, created_at: impl IntoExpr<FieldExprTarget<Timestamp>>, ) -> StoredNotificationQuery
Returns a query selecting the StoredNotification records where user_id and panel and created_at match.
Sourcepub fn create() -> StoredNotificationCreate
pub fn create() -> StoredNotificationCreate
Returns a builder that inserts a new StoredNotification record.
Typically constructed through the toasty::create! macro.
Sourcepub fn create_many() -> CreateMany<StoredNotification>
pub fn create_many() -> CreateMany<StoredNotification>
Returns a builder that inserts multiple StoredNotification records at once.
Sourcepub fn update(&mut self) -> StoredNotificationUpdate<&mut Self>
pub fn update(&mut self) -> StoredNotificationUpdate<&mut Self>
Returns a builder that updates this StoredNotification record in place.
Sourcepub fn all() -> StoredNotificationQuery
pub fn all() -> StoredNotificationQuery
Returns a query that selects every StoredNotification record.
Source§impl StoredNotification
impl StoredNotification
Sourcepub fn upsert_by_id(
id: impl IntoExpr<FieldExprTarget<Uuid>>,
) -> StoredNotificationUpsertById
pub fn upsert_by_id( id: impl IntoExpr<FieldExprTarget<Uuid>>, ) -> StoredNotificationUpsertById
Returns a builder that creates StoredNotification or updates the record whose id constraint matches.
The target arguments initialize a new record and remain unchanged when an existing record is updated.
Trait Implementations§
Source§impl Assign<StoredNotification> for StoredNotification
impl Assign<StoredNotification> for StoredNotification
Source§fn into_assignment(self) -> Assignment<StoredNotification>
fn into_assignment(self) -> Assignment<StoredNotification>
Assignment<T> value.Source§fn assign(self, assignments: &mut Assignments, projection: Projection)where
Self: Sized,
fn assign(self, assignments: &mut Assignments, projection: Projection)where
Self: Sized,
Assignments] map at
the specified projection.Source§impl Clone for StoredNotification
impl Clone for StoredNotification
Source§impl Debug for StoredNotification
impl Debug for StoredNotification
Source§impl IntoStatement for &StoredNotification
impl IntoStatement for &StoredNotification
Source§type Returning = StoredNotification
type Returning = StoredNotification
Source§fn into_statement(self) -> Statement<StoredNotification>
fn into_statement(self) -> Statement<StoredNotification>
self and produce the Statement.Source§impl IntoStatement for &mut StoredNotification
impl IntoStatement for &mut StoredNotification
Source§type Returning = StoredNotification
type Returning = StoredNotification
Source§fn into_statement(self) -> Statement<StoredNotification>
fn into_statement(self) -> Statement<StoredNotification>
self and produce the Statement.Source§impl IntoStatement for StoredNotification
impl IntoStatement for StoredNotification
Source§type Returning = StoredNotification
type Returning = StoredNotification
Source§fn into_statement(self) -> Statement<StoredNotification>
fn into_statement(self) -> Statement<StoredNotification>
self and produce the Statement.Source§impl Load for StoredNotification
impl Load for StoredNotification
Source§fn ty() -> Type
fn ty() -> Type
stmt::Type that describes values of this type.Source§fn reload(target: &mut Self, value: Value) -> Result<()>
fn reload(target: &mut Self, value: Value) -> Result<()>
Source§fn ty_relation() -> Type
fn ty_relation() -> Type
stmt::Type used when this type appears as a relation
target. The default delegates to ty().Source§impl Model for StoredNotification
impl Model for StoredNotification
Source§type Query<__T> = StoredNotificationQuery<__T>
type Query<__T> = StoredNotificationQuery<__T>
Source§type Update<'a> = StoredNotificationUpdate<&'a mut StoredNotification>
type Update<'a> = StoredNotificationUpdate<&'a mut StoredNotification>
Source§type UpdateQuery = StoredNotificationUpdate
type UpdateQuery = StoredNotificationUpdate
Source§type Path<__Origin> = StoredNotificationFields<__Origin>
type Path<__Origin> = StoredNotificationFields<__Origin>
Origin into this model.Source§type PrimaryKey = Uuid
type PrimaryKey = Uuid
Source§type ManyField<__Origin> = StoredNotificationListFields<__Origin>
type ManyField<__Origin> = StoredNotificationListFields<__Origin>
Source§type OneField<__Origin, __Target> = StoredNotificationFields<__Origin, __Target>
type OneField<__Origin, __Target> = StoredNotificationFields<__Origin, __Target>
Source§fn new_path<__Origin>(path: Path<__Origin, Self>) -> Self::Path<__Origin>
fn new_path<__Origin>(path: Path<__Origin, Self>) -> Self::Path<__Origin>
Path targeting this model.Source§fn new_many_field<__Origin>(
path: Path<__Origin, List<Self>>,
) -> StoredNotificationListFields<__Origin>
fn new_many_field<__Origin>( path: Path<__Origin, List<Self>>, ) -> StoredNotificationListFields<__Origin>
ManyField from a path targeting a list
of this model.Source§fn find_by_primary_key(id: Expr<Self::PrimaryKey>) -> Self::Query<List<Self>>
fn find_by_primary_key(id: Expr<Self::PrimaryKey>) -> Self::Query<List<Self>>
Source§fn wrap_query<__T>(stmt: Query<__T>) -> Self::Query<__T>
fn wrap_query<__T>(stmt: Query<__T>) -> Self::Query<__T>
Query in this model’s
query builder, preserving the result shape T. This is the single
constructor generic code uses to build any query shape; callers narrow
at the statement level (.one(), .first()) before wrapping.Source§fn query_one(query: Self::Query<List<Self>>) -> Self::Query<Self>
fn query_one(query: Self::Query<List<Self>>) -> Self::Query<Self>
Source§fn query_first(query: Self::Query<List<Self>>) -> Self::Query<Option<Self>>
fn query_first(query: Self::Query<List<Self>>) -> Self::Query<Option<Self>>
Source§fn new_root_path() -> Self::Path<Self>
fn new_root_path() -> Self::Path<Self>
Source§fn path_model_list() -> Path<List<Self>, List<Self>>
fn path_model_list() -> Path<List<Self>, List<Self>>
Path rooted at a list of this model, used as the root of
has-many relation scopes.Source§fn new_create() -> Self::Create
fn new_create() -> Self::Create
Source§impl ModelCodegen for StoredNotification
impl ModelCodegen for StoredNotification
Source§fn to_relation_expr(&self, fields: &[&str]) -> Expr
fn to_relation_expr(&self, fields: &[&str]) -> Expr
Source§fn new_one_field<__Origin, __Target>(
path: Path<__Origin, __Target>,
) -> Self::OneField<__Origin, __Target>
fn new_one_field<__Origin, __Target>( path: Path<__Origin, __Target>, ) -> Self::OneField<__Origin, __Target>
Source§impl UpdateTarget for &mut StoredNotification
impl UpdateTarget for &mut StoredNotification
Source§type Returning = StoredNotification
type Returning = StoredNotification
Update<R> statement.Source§fn to_update_stmt(
&mut self,
assignments: Assignments,
) -> Update<StoredNotification>
fn to_update_stmt( &mut self, assignments: Assignments, ) -> Update<StoredNotification>
Source§impl ViaTarget for StoredNotification
impl ViaTarget for StoredNotification
Source§type Query = StoredNotificationQuery
type Query = StoredNotificationQuery
Source§type Path<__Origin> = <StoredNotification as Model>::ManyField<__Origin>
type Path<__Origin> = <StoredNotification as Model>::ManyField<__Origin>
#[has_many(via = …)] field’s accessor returns,
parameterized by the origin model. Mirrors Model::Path for the
via-many case. Read moreSource§fn new_path<__Origin>(
path: Path<__Origin, List<StoredNotification>>,
) -> Self::Path<__Origin>
fn new_path<__Origin>( path: Path<__Origin, List<StoredNotification>>, ) -> Self::Path<__Origin>
Path handle from the typed path reaching this
terminal. A model terminal wraps the path in its chainable ManyField; a
scalar terminal is a leaf, so the path is the handle.Source§fn via_field_ty(singular: Name, path: Path) -> FieldTy
fn via_field_ty(singular: Name, path: Path) -> FieldTy
FieldTy::Via for a #[has_many(via = …)] field whose
terminal element type is Self. Read moreSource§fn make_via_query(assoc: Association<List<StoredNotification>>) -> Self::Query
fn make_via_query(assoc: Association<List<StoredNotification>>) -> Self::Query
Auto Trait Implementations§
impl Freeze for StoredNotification
impl RefUnwindSafe for StoredNotification
impl Send for StoredNotification
impl Sync for StoredNotification
impl Unpin for StoredNotification
impl UnsafeUnpin for StoredNotification
impl UnwindSafe for StoredNotification
Blanket Implementations§
Source§impl<T> Assign<Arc<T>> for Twhere
T: IntoExpr<T>,
impl<T> Assign<Arc<T>> for Twhere
T: IntoExpr<T>,
Source§fn into_assignment(self) -> Assignment<Arc<T>>
fn into_assignment(self) -> Assignment<Arc<T>>
Assignment<T> value.Source§fn assign(self, assignments: &mut Assignments, projection: Projection)where
Self: Sized,
fn assign(self, assignments: &mut Assignments, projection: Projection)where
Self: Sized,
Assignments] map at
the specified projection.Source§impl<T> Assign<Box<T>> for Twhere
T: IntoExpr<T>,
impl<T> Assign<Box<T>> for Twhere
T: IntoExpr<T>,
Source§fn into_assignment(self) -> Assignment<Box<T>>
fn into_assignment(self) -> Assignment<Box<T>>
Assignment<T> value.Source§fn assign(self, assignments: &mut Assignments, projection: Projection)where
Self: Sized,
fn assign(self, assignments: &mut Assignments, projection: Projection)where
Self: Sized,
Assignments] map at
the specified projection.Source§impl<T> Assign<Option<T>> for Twhere
T: IntoExpr<T>,
impl<T> Assign<Option<T>> for Twhere
T: IntoExpr<T>,
Source§fn into_assignment(self) -> Assignment<Option<T>>
fn into_assignment(self) -> Assignment<Option<T>>
Assignment<T> value.Source§fn assign(self, assignments: &mut Assignments, projection: Projection)where
Self: Sized,
fn assign(self, assignments: &mut Assignments, projection: Projection)where
Self: Sized,
Assignments] map at
the specified projection.Source§impl<T> Assign<Rc<T>> for Twhere
T: IntoExpr<T>,
impl<T> Assign<Rc<T>> for Twhere
T: IntoExpr<T>,
Source§fn into_assignment(self) -> Assignment<Rc<T>>
fn into_assignment(self) -> Assignment<Rc<T>>
Assignment<T> value.Source§fn assign(self, assignments: &mut Assignments, projection: Projection)where
Self: Sized,
fn assign(self, assignments: &mut Assignments, projection: Projection)where
Self: Sized,
Assignments] map at
the specified projection.Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T> CloneAny for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<M> RelationOneField for Mwhere
M: Model,
impl<M> RelationOneField for Mwhere
M: Model,
Source§type One = <M as Model>::Query<M>
type One = <M as Model>::Query<M>
<Target as Model>::Query<Target>; for nullable impls it is
<Target as Model>::Query<Option<Target>>.Source§type Expr = M
type Expr = M
Self::Target for non-nullable impls and
Option<Self::Target> for nullable impls.Source§fn make_one(
query: <<M as RelationOneField>::Target as Model>::Query<List<<M as RelationOneField>::Target>>,
) -> <M as RelationOneField>::One
fn make_one( query: <<M as RelationOneField>::Target as Model>::Query<List<<M as RelationOneField>::Target>>, ) -> <M as RelationOneField>::One
Query<Model> for non-nullable impls and
Query<Option<Model>> for nullable impls. Read moreSource§fn reload(target: &mut Self, value: Value) -> Result<(), Error>
fn reload(target: &mut Self, value: Value) -> Result<(), Error>
Source§fn belongs_to_relation_field_ty(foreign_key: ForeignKey) -> FieldTy
fn belongs_to_relation_field_ty(foreign_key: ForeignKey) -> FieldTy
FieldTy for a BelongsTo relation field, given the
foreign key resolved from the field’s #[belongs_to(...)] attribute.