- monorepo: pnpm workspace + go.work + pyproject.toml + commitlint/husky - infra: docker-compose (minimal + full profiles) + init-sql + prometheus - arch-scan: multi-language scanner skeleton (TS/Go/Python/Proto) - shared-proto: buf v2 + classes.proto (ClassService CRUD contract) - api-gateway: Go/Gin + JWT HS256 auth + reverse proxy + request ID - classes: NestJS golden template (error system + observability + middleware + CRUD + tests) - teacher-portal: Next.js + paper-feel UI design system - CI/CD: 4 workflows (go/ts/py/proto) - docs: migration guide + project_rules + coding-standards + git-workflow + ui-design-system + 004 + 9 module READMEs + known-issues + spec/plan migration + roadmap
15 lines
633 B
TypeScript
15 lines
633 B
TypeScript
import { mysqlTable, varchar, text, timestamp, char } from 'drizzle-orm/mysql-core';
|
|
|
|
export const classes = mysqlTable('classes', {
|
|
id: char('id', { length: 36 }).notNull().primaryKey(),
|
|
name: varchar('name', { length: 100 }).notNull(),
|
|
gradeId: char('grade_id', { length: 36 }).notNull(),
|
|
headTeacherId: char('head_teacher_id', { length: 36 }),
|
|
description: text('description'),
|
|
createdAt: timestamp('created_at').notNull().defaultNow(),
|
|
updatedAt: timestamp('updated_at').notNull().defaultNow().onUpdateNow(),
|
|
});
|
|
|
|
export type Class = typeof classes.$inferSelect;
|
|
export type NewClass = typeof classes.$inferInsert;
|