@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
21 lines • 8.76 kB
JavaScript
import{sql as e}from"kysely";const t=t=>({async up(n){await n.schema.createTable(`lucid_media_folders`).addColumn(`id`,t.getDataType(`primary`),e=>t.primaryKeyColumnBuilder(e)).addColumn(`title`,t.getDataType(`text`),e=>e.notNull()).addColumn(`tenant_key`,t.getDataType(`text`)).addColumn(`parent_folder_id`,t.getDataType(`integer`),e=>e.references(`lucid_media_folders.id`).onDelete(`cascade`)).addColumn(`created_by`,t.getDataType(`integer`),e=>e.references(`lucid_users.id`).onDelete(`set null`)).addColumn(`updated_by`,t.getDataType(`integer`),e=>e.references(`lucid_users.id`).onDelete(`set null`)).addColumn(`created_at`,t.getDataType(`timestamp`),e=>e.defaultTo(t.formatDefaultValue(`timestamp`,t.getDefault(`timestamp`,`now`)))).addColumn(`updated_at`,t.getDataType(`timestamp`),e=>e.defaultTo(t.formatDefaultValue(`timestamp`,t.getDefault(`timestamp`,`now`)))).execute(),await n.schema.createIndex(`idx_lucid_media_folders_tenant_key`).on(`lucid_media_folders`).column(`tenant_key`).execute(),await n.schema.createTable(`lucid_media`).addColumn(`id`,t.getDataType(`primary`),e=>t.primaryKeyColumnBuilder(e)).addColumn(`key`,t.getDataType(`text`),e=>e.unique().notNull()).addColumn(`tenant_key`,t.getDataType(`text`)).addColumn(`folder_id`,t.getDataType(`integer`),e=>e.references(`lucid_media_folders.id`).onDelete(`set null`)).addColumn(`parent_media_id`,t.getDataType(`integer`),e=>e.references(`lucid_media.id`).onDelete(`restrict`)).addColumn(`relation_type`,t.getDataType(`text`)).addColumn(`e_tag`,t.getDataType(`text`)).addColumn(`origin`,t.getDataType(`text`),e=>e.notNull()).addColumn(`public`,t.getDataType(`boolean`),e=>e.notNull().defaultTo(t.formatDefaultValue(`boolean`,t.getDefault(`boolean`,`true`)))).addColumn(`type`,t.getDataType(`text`),e=>e.notNull()).addColumn(`mime_type`,t.getDataType(`text`),e=>e.notNull()).addColumn(`file_extension`,t.getDataType(`text`),e=>e.notNull()).addColumn(`file_name`,t.getDataType(`text`)).addColumn(`file_size`,t.getDataType(`integer`),e=>e.notNull()).addColumn(`width`,t.getDataType(`integer`)).addColumn(`height`,t.getDataType(`integer`)).addColumn(`focal_x`,t.getDataType(`integer`)).addColumn(`focal_y`,t.getDataType(`integer`)).addColumn(`crop_x`,t.getDataType(`real`)).addColumn(`crop_y`,t.getDataType(`real`)).addColumn(`crop_width`,t.getDataType(`real`)).addColumn(`crop_height`,t.getDataType(`real`)).addColumn(`crop_rotation`,t.getDataType(`real`)).addColumn(`crop_skew_x`,t.getDataType(`real`)).addColumn(`crop_skew_y`,t.getDataType(`real`)).addColumn(`blur_hash`,t.getDataType(`text`)).addColumn(`average_color`,t.getDataType(`text`)).addColumn(`base64`,t.getDataType(`text`)).addColumn(`is_dark`,t.getDataType(`boolean`)).addColumn(`is_light`,t.getDataType(`boolean`)).addColumn(`custom_meta`,t.getDataType(`text`)).addColumn(`is_hidden`,t.getDataType(`boolean`),e=>e.notNull().defaultTo(t.formatDefaultValue(`boolean`,t.getDefault(`boolean`,`false`)))).addColumn(`is_deleted`,t.getDataType(`boolean`),e=>e.defaultTo(t.formatDefaultValue(`boolean`,t.getDefault(`boolean`,`false`)))).addColumn(`is_deleted_at`,t.getDataType(`timestamp`)).addColumn(`deleted_by`,t.getDataType(`integer`),e=>e.references(`lucid_users.id`).onDelete(`set null`)).addColumn(`created_at`,t.getDataType(`timestamp`),e=>e.defaultTo(t.formatDefaultValue(`timestamp`,t.getDefault(`timestamp`,`now`)))).addColumn(`updated_at`,t.getDataType(`timestamp`),e=>e.defaultTo(t.formatDefaultValue(`timestamp`,t.getDefault(`timestamp`,`now`)))).addColumn(`updated_by`,t.getDataType(`integer`),e=>e.references(`lucid_users.id`).onDelete(`set null`)).addColumn(`created_by`,t.getDataType(`integer`),e=>e.references(`lucid_users.id`).onDelete(`set null`)).addUniqueConstraint(`lucid_media_parent_media_id_relation_type_unique`,[`parent_media_id`,`relation_type`]).addCheckConstraint(`lucid_media_owned_relation_complete`,e`(
(parent_media_id IS NULL AND relation_type IS NULL) OR
(parent_media_id IS NOT NULL AND relation_type IN ('crop', 'poster'))
)`).addCheckConstraint(`lucid_media_owned_relation_not_self`,e`parent_media_id IS NULL OR parent_media_id <> id`).addCheckConstraint(`lucid_media_owned_relation_no_folder`,e`parent_media_id IS NULL OR folder_id IS NULL`).addCheckConstraint(`lucid_media_owned_relation_image_only`,e`relation_type IS NULL OR type = 'image'`).addCheckConstraint(`lucid_media_crop_state_valid`,e`(
relation_type = 'crop' AND
crop_x IS NOT NULL AND crop_x >= 0 AND crop_x <= 1 AND
crop_y IS NOT NULL AND crop_y >= 0 AND crop_y <= 1 AND
crop_width IS NOT NULL AND crop_width > 0 AND crop_width <= 1 AND
crop_height IS NOT NULL AND crop_height > 0 AND crop_height <= 1 AND
crop_x + crop_width <= 1.000001 AND
crop_y + crop_height <= 1.000001 AND
crop_rotation IS NOT NULL AND crop_rotation >= -180 AND crop_rotation <= 180 AND
crop_skew_x IS NOT NULL AND crop_skew_x >= -45 AND crop_skew_x <= 45 AND
crop_skew_y IS NOT NULL AND crop_skew_y >= -45 AND crop_skew_y <= 45
) OR (
(relation_type IS NULL OR relation_type <> 'crop') AND
crop_x IS NULL AND crop_y IS NULL AND
crop_width IS NULL AND crop_height IS NULL AND
crop_rotation IS NULL AND crop_skew_x IS NULL AND crop_skew_y IS NULL
)`).execute(),await n.schema.createIndex(`idx_lucid_media_key`).on(`lucid_media`).column(`key`).execute(),await n.schema.createIndex(`idx_lucid_media_tenant_key`).on(`lucid_media`).column(`tenant_key`).execute(),await n.schema.createIndex(`idx_lucid_media_parent_media_id`).on(`lucid_media`).column(`parent_media_id`).execute(),await n.schema.alterTable(`lucid_users`).addColumn(`profile_picture_media_id`,t.getDataType(`integer`),e=>e.references(`lucid_media.id`).onDelete(`set null`)).execute(),await n.schema.createIndex(`idx_lucid_users_profile_picture_media_id`).on(`lucid_users`).column(`profile_picture_media_id`).execute(),await n.schema.createTable(`lucid_media_translations`).addColumn(`id`,t.getDataType(`primary`),e=>t.primaryKeyColumnBuilder(e)).addColumn(`media_id`,t.getDataType(`integer`),e=>e.references(`lucid_media.id`).onDelete(`cascade`).notNull()).addColumn(`locale_code`,t.getDataType(`text`),e=>e.references(`lucid_locales.code`).notNull().onDelete(`cascade`).onUpdate(`cascade`)).addColumn(`title`,t.getDataType(`text`)).addColumn(`alt`,t.getDataType(`text`)).addColumn(`description`,t.getDataType(`text`)).addColumn(`summary`,t.getDataType(`text`)).addUniqueConstraint(`lucid_media_translations_media_id_locale_code_unique`,[`media_id`,`locale_code`]).execute(),await n.schema.createIndex(`idx_media_translations_media_id`).on(`lucid_media_translations`).column(`media_id`).execute(),await n.schema.createIndex(`idx_media_translations_locale`).on(`lucid_media_translations`).columns([`media_id`,`locale_code`]).unique().execute(),await n.schema.createTable(`lucid_media_awaiting_sync`).addColumn(`key`,t.getDataType(`text`),e=>e.primaryKey()).addColumn(`timestamp`,t.getDataType(`timestamp`),e=>e.notNull()).execute(),await n.schema.createTable(`lucid_media_upload_sessions`).addColumn(`session_id`,t.getDataType(`text`),e=>e.primaryKey()).addColumn(`key`,t.getDataType(`text`),e=>e.notNull()).addColumn(`adapter_key`,t.getDataType(`text`),e=>e.notNull()).addColumn(`adapter_upload_id`,t.getDataType(`text`)).addColumn(`mode`,t.getDataType(`text`),e=>e.notNull()).addColumn(`status`,t.getDataType(`text`),e=>e.notNull()).addColumn(`file_name`,t.getDataType(`text`),e=>e.notNull()).addColumn(`mime_type`,t.getDataType(`text`),e=>e.notNull()).addColumn(`file_extension`,t.getDataType(`text`)).addColumn(`file_size`,t.getDataType(`integer`),e=>e.notNull()).addColumn(`part_size`,t.getDataType(`integer`)).addColumn(`created_by`,t.getDataType(`integer`),e=>e.references(`lucid_users.id`).onDelete(`set null`)).addColumn(`created_at`,t.getDataType(`timestamp`),e=>e.notNull()).addColumn(`updated_at`,t.getDataType(`timestamp`),e=>e.notNull()).addColumn(`expires_at`,t.getDataType(`timestamp`),e=>e.notNull()).execute(),await n.schema.createIndex(`idx_media_upload_sessions_key`).on(`lucid_media_upload_sessions`).column(`key`).execute(),await n.schema.createIndex(`idx_media_upload_sessions_expires_at`).on(`lucid_media_upload_sessions`).column(`expires_at`).execute(),await n.schema.createTable(`lucid_processed_images`).addColumn(`key`,t.getDataType(`text`),e=>e.primaryKey()).addColumn(`media_key`,t.getDataType(`text`),e=>e.references(`lucid_media.key`).onDelete(`cascade`).onUpdate(`cascade`)).addColumn(`file_size`,t.getDataType(`integer`),e=>e.notNull()).execute(),await n.schema.createIndex(`idx_processed_images_media_key`).on(`lucid_processed_images`).column(`media_key`).execute()},async down(e){}});export{t as default};
//# sourceMappingURL=00000006-media.mjs.map