26 lines
857 B
TypeScript
26 lines
857 B
TypeScript
import { model } from "@medusajs/framework/utils";
|
|
|
|
import { AttributeUIComponent } from "@mercurjs/framework";
|
|
import AttributePossibleValue from "./attribute-possible-value";
|
|
import AttributeValue from "./attribute-value";
|
|
|
|
const Attribute = model
|
|
.define("attribute", {
|
|
id: model.id({ prefix: "attr" }).primaryKey(),
|
|
name: model.text().searchable(),
|
|
description: model.text().nullable(),
|
|
is_filterable: model.boolean().default(true),
|
|
handle: model.text().unique(),
|
|
metadata: model.json().nullable(),
|
|
ui_component: model
|
|
.enum(Object.values(AttributeUIComponent))
|
|
.default(AttributeUIComponent.SELECT),
|
|
values: model.hasMany(() => AttributeValue),
|
|
possible_values: model.hasMany(() => AttributePossibleValue),
|
|
})
|
|
.cascades({
|
|
delete: ["values", "possible_values"],
|
|
});
|
|
|
|
export default Attribute;
|