use distributed::ReadModel;
use serde::{Deserialize, Serialize};
use super::BoardView;
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct CardPayload {
pub labels: Vec<String>,
pub assignee: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize, ReadModel)]
#[table("cards")]
#[readmodel(primary_key = ["board_id", "card_id"])]
pub struct CardView {
#[readmodel(foreign_key = "boards.board_id", delegated_from = "BoardView.board_id")]
pub board_id: String,
pub card_id: String,
pub column: String,
pub title: String,
#[readmodel(jsonb)]
pub payload: CardPayload,
#[readmodel(belongs_to = "BoardView", foreign_key = "board_id")]
pub board: Option<BoardView>,
}