feat: Add banner management feature and improve event/gallery image handling
- Introduced a new "Banners" feature, enabling banner creation, management, and display across the admin panel and frontend. - Enhanced image handling for events and gallery by converting images to optimized webp format. - Added `banners` table in the database schema for storing announcements. - Integrated new `/api/banners` route in backend for banner operations. - Updated `index.astro` to include banner display component. - Added supporting UI and APIs in the admin panel for banner management.
This commit is contained in:
@ -60,3 +60,14 @@ export const publishHistory = sqliteTable('publish_history', {
|
||||
commitMessage: text('commit_message'),
|
||||
publishedAt: integer('published_at', { mode: 'timestamp' }).default(sql`(unixepoch())`),
|
||||
});
|
||||
|
||||
// Banner table (for announcements like holidays, special info)
|
||||
export const banners = sqliteTable('banners', {
|
||||
id: text('id').primaryKey().$defaultFn(() => crypto.randomUUID()),
|
||||
text: text('text').notNull(),
|
||||
startDate: text('start_date').notNull(), // ISO date string
|
||||
endDate: text('end_date').notNull(), // ISO date string
|
||||
isActive: integer('is_active', { mode: 'boolean' }).default(true),
|
||||
createdAt: integer('created_at', { mode: 'timestamp' }).default(sql`(unixepoch())`),
|
||||
updatedAt: integer('updated_at', { mode: 'timestamp' }).default(sql`(unixepoch())`),
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user