From: Olaf Wintermann Date: Thu, 10 Sep 2026 15:35:38 +0000 (+0200) Subject: add comment entity model X-Git-Url: https://uap-core.de/gitweb/?a=commitdiff_plain;h=b10c6576a9fbce610b563cd1635e046ba2d2fdad;p=note.git add comment entity model --- diff --git a/entity/src/comment.rs b/entity/src/comment.rs new file mode 100644 index 0000000..3421aa2 --- /dev/null +++ b/entity/src/comment.rs @@ -0,0 +1,52 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright 2026 Olaf Wintermann. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +use sea_orm::entity::prelude::*; +use crate::note::NoteType; + +#[sea_orm::model] +#[derive(Clone, Debug, PartialEq, DeriveEntityModel)] +#[sea_orm(table_name = "comment")] +pub struct Model { + #[sea_orm(primary_key)] + pub comment_id: i32, + + pub note_id: i32, + + pub author_name: String, + pub author_email: Option, + pub author_web: Option, + pub author_id: Option, + + pub content: String, + + pub lastmodified: DateTimeWithTimeZone, + pub created: DateTimeWithTimeZone, +} + +impl ActiveModelBehavior for ActiveModel {} diff --git a/entity/src/lib.rs b/entity/src/lib.rs index 9d8afc0..e0c24ec 100644 --- a/entity/src/lib.rs +++ b/entity/src/lib.rs @@ -6,4 +6,5 @@ pub mod notecontent; pub mod repository; pub mod filecontent; pub mod attachment; -pub mod attachmentcontent; \ No newline at end of file +pub mod attachmentcontent; +pub mod comment; \ No newline at end of file diff --git a/migration/src/m20260502_184134_create_settings.rs b/migration/src/m20260502_184134_create_settings.rs index c258f41..f80c4b7 100644 --- a/migration/src/m20260502_184134_create_settings.rs +++ b/migration/src/m20260502_184134_create_settings.rs @@ -177,7 +177,30 @@ impl MigrationTrait for Migration { ) .to_owned(), ) - .await + .await?; + + manager + .create_table( + Table::create() + .table("comment") + .if_not_exists() + .col(pk_auto("comment_id")) + .col(integer("note_id")) + .col(string("author_name")) + .col(string_null("author_email")) + .col(string_null("author_web")) + .col(string("content")) + .col(timestamp_with_time_zone("lastmodified")) + .col(timestamp_with_time_zone("created")) + .foreign_key( + ForeignKey::create() + .name("fk-comment-note") + .from("comment", "note_id") + .to("note", "note_id") + .on_delete(ForeignKeyAction::Cascade) + .on_update(ForeignKeyAction::Cascade)) + .to_owned() + ).await } async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {