diff --git a/backend/alembic/env.py b/backend/alembic/env.py index b8396353..4221f8ba 100644 --- a/backend/alembic/env.py +++ b/backend/alembic/env.py @@ -20,7 +20,7 @@ from backend.plugin.tools import get_plugin_models # import your new model here from backend.app.admin.model import * # noqa: F401 -from backend.app.generator.model import * # noqa: F401 +from backend.plugin.code_generator.model import * # noqa: F401 # import plugin model for cls in get_plugin_models(): diff --git a/backend/app/generator/model/__init__.py b/backend/app/generator/model/__init__.py deleted file mode 100644 index 5a74fa1c..00000000 --- a/backend/app/generator/model/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -from backend.app.generator.model.gen_business import GenBusiness -from backend.app.generator.model.gen_model import GenModel diff --git a/backend/app/router.py b/backend/app/router.py index f6341709..afd5968a 100644 --- a/backend/app/router.py +++ b/backend/app/router.py @@ -3,11 +3,9 @@ from fastapi import APIRouter from backend.app.admin.api.router import v1 as admin_v1 -from backend.app.generator.api.router import v1 as generator_v1 from backend.app.task.api.router import v1 as task_v1 router = APIRouter() router.include_router(admin_v1) -router.include_router(generator_v1) router.include_router(task_v1) diff --git a/backend/common/enums.py b/backend/common/enums.py index cdc5fe6a..d4c3bbb8 100644 --- a/backend/common/enums.py +++ b/backend/common/enums.py @@ -119,153 +119,3 @@ class FileType(StrEnum): image = 'image' video = 'video' - - -class GenModelMySQLColumnType(StrEnum): - """代码生成模型列类型(MySQL)""" - - # Python 类型映射 - BIGINT = 'int' - BigInteger = 'int' # BIGINT - BINARY = 'bytes' - BLOB = 'bytes' - BOOLEAN = 'bool' # BOOL - Boolean = 'bool' # BOOL - CHAR = 'str' - CLOB = 'str' - DATE = 'date' - Date = 'date' # DATE - DATETIME = 'datetime' - DateTime = 'datetime' # DATETIME - DECIMAL = 'Decimal' - DOUBLE = 'float' - Double = 'float' # DOUBLE - DOUBLE_PRECISION = 'float' - Enum = 'Enum' # Enum() - FLOAT = 'float' - Float = 'float' # FLOAT - INT = 'int' # INTEGER - INTEGER = 'int' - Integer = 'int' # INTEGER - Interval = 'timedelta' # DATETIME - JSON = 'dict' - LargeBinary = 'bytes' # BLOB - NCHAR = 'str' - NUMERIC = 'Decimal' - Numeric = 'Decimal' # NUMERIC - NVARCHAR = 'str' # String - PickleType = 'bytes' # BLOB - REAL = 'float' - SMALLINT = 'int' - SmallInteger = 'int' # SMALLINT - String = 'str' # String - TEXT = 'str' - Text = 'str' # TEXT - TIME = 'time' - Time = 'time' # TIME - TIMESTAMP = 'datetime' - Unicode = 'str' # String - UnicodeText = 'str' # TEXT - UUID = 'str | UUID' - Uuid = 'str' # CHAR(32) - VARBINARY = 'bytes' - VARCHAR = 'str' # String - - # sa.dialects.mysql 导入 - BIT = 'bool' - ENUM = 'Enum' - LONGBLOB = 'bytes' - LONGTEXT = 'str' - MEDIUMBLOB = 'bytes' - MEDIUMINT = 'int' - MEDIUMTEXT = 'str' - SET = 'list[str]' - TINYBLOB = 'bytes' - TINYINT = 'int' - TINYTEXT = 'str' - YEAR = 'int' - - -class GenModelPostgreSQLColumnType(StrEnum): - """代码生成模型列类型(PostgreSQL)""" - - # Python 类型映射 - BIGINT = 'int' - BigInteger = 'int' # BIGINT - BINARY = 'bytes' - BLOB = 'bytes' - BOOLEAN = 'bool' - Boolean = 'bool' # BOOLEAN - CHAR = 'str' - CLOB = 'str' - DATE = 'date' - Date = 'date' # DATE - DATETIME = 'datetime' - DateTime = 'datetime' # TIMESTAMP WITHOUT TIME ZONE - DECIMAL = 'Decimal' - DOUBLE = 'float' - Double = 'float' # DOUBLE PRECISION - DOUBLE_PRECISION = 'float' # DOUBLE PRECISION - Enum = 'Enum' # Enum(name='enum') - FLOAT = 'float' - Float = 'float' # FLOAT - INT = 'int' # INTEGER - INTEGER = 'int' - Integer = 'int' # INTEGER - Interval = 'timedelta' # INTERVAL - JSON = 'dict' - LargeBinary = 'bytes' # BYTEA - NCHAR = 'str' - NUMERIC = 'Decimal' - Numeric = 'Decimal' # NUMERIC - NVARCHAR = 'str' # String - PickleType = 'bytes' # BYTEA - REAL = 'float' - SMALLINT = 'int' - SmallInteger = 'int' # SMALLINT - String = 'str' # String - TEXT = 'str' - Text = 'str' # TEXT - TIME = 'time' # TIME WITHOUT TIME ZONE - Time = 'time' # TIME WITHOUT TIME ZONE - TIMESTAMP = 'datetime' # TIMESTAMP WITHOUT TIME ZONE - Unicode = 'str' # String - UnicodeText = 'str' # TEXT - UUID = 'str | UUID' - Uuid = 'str' - VARBINARY = 'bytes' - VARCHAR = 'str' # String - - # sa.dialects.postgresql 导入 - ARRAY = 'list' - BIT = 'bool' - BYTEA = 'bytes' - CIDR = 'str' - CITEXT = 'str' - DATEMULTIRANGE = 'list[date]' - DATERANGE = 'tuple[date, date]' - DOMAIN = 'str' - ENUM = 'Enum' - HSTORE = 'dict' - INET = 'str' - INT4MULTIRANGE = 'list[int]' - INT4RANGE = 'tuple[int, int]' - INT8MULTIRANGE = 'list[int]' - INT8RANGE = 'tuple[int, int]' - INTERVAL = 'timedelta' - JSONB = 'dict' - JSONPATH = 'str' - MACADDR = 'str' - MACADDR8 = 'str' - MONEY = 'Decimal' - NUMMULTIRANGE = 'list[Decimal]' - NUMRANGE = 'tuple[Decimal, Decimal]' - OID = 'int' - REGCLASS = 'str' - REGCONFIG = 'str' - TSMULTIRANGE = 'list[datetime]' - TSQUERY = 'str' - TSRANGE = 'tuple[datetime, datetime]' - TSTZMULTIRANGE = 'list[datetime]' - TSTZRANGE = 'tuple[datetime, datetime]' - TSVECTOR = 'str' diff --git a/backend/core/path_conf.py b/backend/core/path_conf.py index de16c5e6..8b9808b2 100644 --- a/backend/core/path_conf.py +++ b/backend/core/path_conf.py @@ -17,9 +17,6 @@ STATIC_DIR = BASE_PATH / 'static' # 上传文件目录 UPLOAD_DIR = STATIC_DIR / 'upload' -# jinja2 模版文件路径 -JINJA2_TEMPLATE_DIR = BASE_PATH / 'templates' / 'generator' - # 插件目录 PLUGIN_DIR = BASE_PATH / 'plugin' diff --git a/backend/app/generator/README.md b/backend/plugin/code_generator/README.md similarity index 100% rename from backend/app/generator/README.md rename to backend/plugin/code_generator/README.md diff --git a/backend/app/generator/__init__.py b/backend/plugin/code_generator/__init__.py similarity index 100% rename from backend/app/generator/__init__.py rename to backend/plugin/code_generator/__init__.py diff --git a/backend/app/generator/api/__init__.py b/backend/plugin/code_generator/api/__init__.py similarity index 100% rename from backend/app/generator/api/__init__.py rename to backend/plugin/code_generator/api/__init__.py diff --git a/backend/app/generator/api/router.py b/backend/plugin/code_generator/api/router.py similarity index 58% rename from backend/app/generator/api/router.py rename to backend/plugin/code_generator/api/router.py index fb568bda..5f755adf 100644 --- a/backend/app/generator/api/router.py +++ b/backend/plugin/code_generator/api/router.py @@ -2,10 +2,10 @@ # -*- coding: utf-8 -*- from fastapi import APIRouter -from backend.app.generator.api.v1.gen import router as gen_router -from backend.app.generator.api.v1.gen_business import router as gen_business_router -from backend.app.generator.api.v1.gen_model import router as gen_model_router from backend.core.conf import settings +from backend.plugin.code_generator.api.v1.gen import router as gen_router +from backend.plugin.code_generator.api.v1.gen_business import router as gen_business_router +from backend.plugin.code_generator.api.v1.gen_model import router as gen_model_router v1 = APIRouter(prefix=f'{settings.FASTAPI_API_V1_PATH}/gen', tags=['代码生成']) diff --git a/backend/app/generator/api/v1/__init__.py b/backend/plugin/code_generator/api/v1/__init__.py similarity index 100% rename from backend/app/generator/api/v1/__init__.py rename to backend/plugin/code_generator/api/v1/__init__.py diff --git a/backend/app/generator/api/v1/gen.py b/backend/plugin/code_generator/api/v1/gen.py similarity index 92% rename from backend/app/generator/api/v1/gen.py rename to backend/plugin/code_generator/api/v1/gen.py index 3713db31..e41f538a 100644 --- a/backend/app/generator/api/v1/gen.py +++ b/backend/plugin/code_generator/api/v1/gen.py @@ -5,13 +5,13 @@ from typing import Annotated from fastapi import APIRouter, Depends, Path, Query from fastapi.responses import StreamingResponse -from backend.app.generator.conf import generator_settings -from backend.app.generator.schema.gen import ImportParam -from backend.app.generator.service.gen_service import gen_service from backend.common.response.response_schema import ResponseModel, ResponseSchemaModel, response_base from backend.common.security.jwt import DependsJwtAuth from backend.common.security.permission import RequestPermission from backend.common.security.rbac import DependsRBAC +from backend.plugin.code_generator.conf import generator_settings +from backend.plugin.code_generator.schema.gen import ImportParam +from backend.plugin.code_generator.service.gen_service import gen_service router = APIRouter() diff --git a/backend/app/generator/api/v1/gen_business.py b/backend/plugin/code_generator/api/v1/gen_business.py similarity index 89% rename from backend/app/generator/api/v1/gen_business.py rename to backend/plugin/code_generator/api/v1/gen_business.py index 33975a23..c364bc8f 100644 --- a/backend/app/generator/api/v1/gen_business.py +++ b/backend/plugin/code_generator/api/v1/gen_business.py @@ -4,18 +4,18 @@ from typing import Annotated from fastapi import APIRouter, Depends, Path -from backend.app.generator.schema.gen_business import ( - CreateGenBusinessParam, - GetGenBusinessDetail, - UpdateGenBusinessParam, -) -from backend.app.generator.schema.gen_model import GetGenModelDetail -from backend.app.generator.service.gen_business_service import gen_business_service -from backend.app.generator.service.gen_model_service import gen_model_service from backend.common.response.response_schema import ResponseModel, ResponseSchemaModel, response_base from backend.common.security.jwt import DependsJwtAuth from backend.common.security.permission import RequestPermission from backend.common.security.rbac import DependsRBAC +from backend.plugin.code_generator.schema.gen_business import ( + CreateGenBusinessParam, + GetGenBusinessDetail, + UpdateGenBusinessParam, +) +from backend.plugin.code_generator.schema.gen_model import GetGenModelDetail +from backend.plugin.code_generator.service.gen_business_service import gen_business_service +from backend.plugin.code_generator.service.gen_model_service import gen_model_service router = APIRouter() diff --git a/backend/app/generator/api/v1/gen_model.py b/backend/plugin/code_generator/api/v1/gen_model.py similarity index 91% rename from backend/app/generator/api/v1/gen_model.py rename to backend/plugin/code_generator/api/v1/gen_model.py index 2b1b9750..f0e771f2 100644 --- a/backend/app/generator/api/v1/gen_model.py +++ b/backend/plugin/code_generator/api/v1/gen_model.py @@ -4,12 +4,12 @@ from typing import Annotated from fastapi import APIRouter, Depends, Path -from backend.app.generator.schema.gen_model import CreateGenModelParam, GetGenModelDetail, UpdateGenModelParam -from backend.app.generator.service.gen_model_service import gen_model_service from backend.common.response.response_schema import ResponseModel, ResponseSchemaModel, response_base from backend.common.security.jwt import DependsJwtAuth from backend.common.security.permission import RequestPermission from backend.common.security.rbac import DependsRBAC +from backend.plugin.code_generator.schema.gen_model import CreateGenModelParam, GetGenModelDetail, UpdateGenModelParam +from backend.plugin.code_generator.service.gen_model_service import gen_model_service router = APIRouter() diff --git a/backend/app/generator/conf.py b/backend/plugin/code_generator/conf.py similarity index 100% rename from backend/app/generator/conf.py rename to backend/plugin/code_generator/conf.py diff --git a/backend/app/generator/crud/__init__.py b/backend/plugin/code_generator/crud/__init__.py similarity index 100% rename from backend/app/generator/crud/__init__.py rename to backend/plugin/code_generator/crud/__init__.py diff --git a/backend/app/generator/crud/crud_gen.py b/backend/plugin/code_generator/crud/crud_gen.py similarity index 99% rename from backend/app/generator/crud/crud_gen.py rename to backend/plugin/code_generator/crud/crud_gen.py index d789da26..d95efc8a 100644 --- a/backend/app/generator/crud/crud_gen.py +++ b/backend/plugin/code_generator/crud/crud_gen.py @@ -12,7 +12,7 @@ class CRUDGen: """代码生成 CRUD 类""" @staticmethod - async def get_all_tables(db: AsyncSession, table_schema: str) -> list[str]: + async def get_all_tables(db: AsyncSession, table_schema: str) -> Sequence[str]: """ 获取所有表名 diff --git a/backend/app/generator/crud/crud_gen_business.py b/backend/plugin/code_generator/crud/crud_gen_business.py similarity index 92% rename from backend/app/generator/crud/crud_gen_business.py rename to backend/plugin/code_generator/crud/crud_gen_business.py index 80ea8bc9..99aab067 100644 --- a/backend/app/generator/crud/crud_gen_business.py +++ b/backend/plugin/code_generator/crud/crud_gen_business.py @@ -5,8 +5,8 @@ from typing import Sequence from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy_crud_plus import CRUDPlus -from backend.app.generator.model import GenBusiness -from backend.app.generator.schema.gen_business import CreateGenBusinessParam, UpdateGenBusinessParam +from backend.plugin.code_generator.model import GenBusiness +from backend.plugin.code_generator.schema.gen_business import CreateGenBusinessParam, UpdateGenBusinessParam class CRUDGenBusiness(CRUDPlus[GenBusiness]): diff --git a/backend/app/generator/crud/crud_gen_model.py b/backend/plugin/code_generator/crud/crud_gen_model.py similarity index 92% rename from backend/app/generator/crud/crud_gen_model.py rename to backend/plugin/code_generator/crud/crud_gen_model.py index 9db1fcd9..b7b3bfa4 100644 --- a/backend/app/generator/crud/crud_gen_model.py +++ b/backend/plugin/code_generator/crud/crud_gen_model.py @@ -5,8 +5,8 @@ from typing import Sequence from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy_crud_plus import CRUDPlus -from backend.app.generator.model import GenModel -from backend.app.generator.schema.gen_model import CreateGenModelParam, UpdateGenModelParam +from backend.plugin.code_generator.model import GenModel +from backend.plugin.code_generator.schema.gen_model import CreateGenModelParam, UpdateGenModelParam class CRUDGenModel(CRUDPlus[GenModel]): diff --git a/backend/plugin/code_generator/enums.py b/backend/plugin/code_generator/enums.py new file mode 100644 index 00000000..65c18b15 --- /dev/null +++ b/backend/plugin/code_generator/enums.py @@ -0,0 +1,153 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +from backend.common.enums import StrEnum + + +class GenModelMySQLColumnType(StrEnum): + """代码生成模型列类型(MySQL)""" + + # Python 类型映射 + BIGINT = 'int' + BigInteger = 'int' # BIGINT + BINARY = 'bytes' + BLOB = 'bytes' + BOOLEAN = 'bool' # BOOL + Boolean = 'bool' # BOOL + CHAR = 'str' + CLOB = 'str' + DATE = 'date' + Date = 'date' # DATE + DATETIME = 'datetime' + DateTime = 'datetime' # DATETIME + DECIMAL = 'Decimal' + DOUBLE = 'float' + Double = 'float' # DOUBLE + DOUBLE_PRECISION = 'float' + Enum = 'Enum' # Enum() + FLOAT = 'float' + Float = 'float' # FLOAT + INT = 'int' # INTEGER + INTEGER = 'int' + Integer = 'int' # INTEGER + Interval = 'timedelta' # DATETIME + JSON = 'dict' + LargeBinary = 'bytes' # BLOB + NCHAR = 'str' + NUMERIC = 'Decimal' + Numeric = 'Decimal' # NUMERIC + NVARCHAR = 'str' # String + PickleType = 'bytes' # BLOB + REAL = 'float' + SMALLINT = 'int' + SmallInteger = 'int' # SMALLINT + String = 'str' # String + TEXT = 'str' + Text = 'str' # TEXT + TIME = 'time' + Time = 'time' # TIME + TIMESTAMP = 'datetime' + Unicode = 'str' # String + UnicodeText = 'str' # TEXT + UUID = 'str | UUID' + Uuid = 'str' # CHAR(32) + VARBINARY = 'bytes' + VARCHAR = 'str' # String + + # sa.dialects.mysql 导入 + BIT = 'bool' + ENUM = 'Enum' + LONGBLOB = 'bytes' + LONGTEXT = 'str' + MEDIUMBLOB = 'bytes' + MEDIUMINT = 'int' + MEDIUMTEXT = 'str' + SET = 'list[str]' + TINYBLOB = 'bytes' + TINYINT = 'int' + TINYTEXT = 'str' + YEAR = 'int' + + +class GenModelPostgreSQLColumnType(StrEnum): + """代码生成模型列类型(PostgreSQL)""" + + # Python 类型映射 + BIGINT = 'int' + BigInteger = 'int' # BIGINT + BINARY = 'bytes' + BLOB = 'bytes' + BOOLEAN = 'bool' + Boolean = 'bool' # BOOLEAN + CHAR = 'str' + CLOB = 'str' + DATE = 'date' + Date = 'date' # DATE + DATETIME = 'datetime' + DateTime = 'datetime' # TIMESTAMP WITHOUT TIME ZONE + DECIMAL = 'Decimal' + DOUBLE = 'float' + Double = 'float' # DOUBLE PRECISION + DOUBLE_PRECISION = 'float' # DOUBLE PRECISION + Enum = 'Enum' # Enum(name='enum') + FLOAT = 'float' + Float = 'float' # FLOAT + INT = 'int' # INTEGER + INTEGER = 'int' + Integer = 'int' # INTEGER + Interval = 'timedelta' # INTERVAL + JSON = 'dict' + LargeBinary = 'bytes' # BYTEA + NCHAR = 'str' + NUMERIC = 'Decimal' + Numeric = 'Decimal' # NUMERIC + NVARCHAR = 'str' # String + PickleType = 'bytes' # BYTEA + REAL = 'float' + SMALLINT = 'int' + SmallInteger = 'int' # SMALLINT + String = 'str' # String + TEXT = 'str' + Text = 'str' # TEXT + TIME = 'time' # TIME WITHOUT TIME ZONE + Time = 'time' # TIME WITHOUT TIME ZONE + TIMESTAMP = 'datetime' # TIMESTAMP WITHOUT TIME ZONE + Unicode = 'str' # String + UnicodeText = 'str' # TEXT + UUID = 'str | UUID' + Uuid = 'str' + VARBINARY = 'bytes' + VARCHAR = 'str' # String + + # sa.dialects.postgresql 导入 + ARRAY = 'list' + BIT = 'bool' + BYTEA = 'bytes' + CIDR = 'str' + CITEXT = 'str' + DATEMULTIRANGE = 'list[date]' + DATERANGE = 'tuple[date, date]' + DOMAIN = 'str' + ENUM = 'Enum' + HSTORE = 'dict' + INET = 'str' + INT4MULTIRANGE = 'list[int]' + INT4RANGE = 'tuple[int, int]' + INT8MULTIRANGE = 'list[int]' + INT8RANGE = 'tuple[int, int]' + INTERVAL = 'timedelta' + JSONB = 'dict' + JSONPATH = 'str' + MACADDR = 'str' + MACADDR8 = 'str' + MONEY = 'Decimal' + NUMMULTIRANGE = 'list[Decimal]' + NUMRANGE = 'tuple[Decimal, Decimal]' + OID = 'int' + REGCLASS = 'str' + REGCONFIG = 'str' + TSMULTIRANGE = 'list[datetime]' + TSQUERY = 'str' + TSRANGE = 'tuple[datetime, datetime]' + TSTZMULTIRANGE = 'list[datetime]' + TSTZRANGE = 'tuple[datetime, datetime]' + TSVECTOR = 'str' diff --git a/backend/plugin/code_generator/model/__init__.py b/backend/plugin/code_generator/model/__init__.py new file mode 100644 index 00000000..f27da140 --- /dev/null +++ b/backend/plugin/code_generator/model/__init__.py @@ -0,0 +1,4 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +from backend.plugin.code_generator.model.gen_business import GenBusiness +from backend.plugin.code_generator.model.gen_model import GenModel diff --git a/backend/app/generator/model/gen_business.py b/backend/plugin/code_generator/model/gen_business.py similarity index 96% rename from backend/app/generator/model/gen_business.py rename to backend/plugin/code_generator/model/gen_business.py index d0b47e77..8e54a3ca 100644 --- a/backend/app/generator/model/gen_business.py +++ b/backend/plugin/code_generator/model/gen_business.py @@ -10,7 +10,7 @@ from sqlalchemy.orm import Mapped, mapped_column, relationship from backend.common.model import Base, id_key if TYPE_CHECKING: - from backend.app.generator.model import GenModel + from backend.plugin.code_generator.model import GenModel class GenBusiness(Base): diff --git a/backend/app/generator/model/gen_model.py b/backend/plugin/code_generator/model/gen_model.py similarity index 96% rename from backend/app/generator/model/gen_model.py rename to backend/plugin/code_generator/model/gen_model.py index 5433469d..8f17e2b0 100644 --- a/backend/app/generator/model/gen_model.py +++ b/backend/plugin/code_generator/model/gen_model.py @@ -10,7 +10,7 @@ from sqlalchemy.orm import Mapped, mapped_column, relationship from backend.common.model import DataClassBase, id_key if TYPE_CHECKING: - from backend.app.generator.model import GenBusiness + from backend.plugin.code_generator.model import GenBusiness class GenModel(DataClassBase): diff --git a/backend/plugin/code_generator/path_conf.py b/backend/plugin/code_generator/path_conf.py new file mode 100644 index 00000000..c4acdc10 --- /dev/null +++ b/backend/plugin/code_generator/path_conf.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +from backend.core.path_conf import PLUGIN_DIR + +# jinja2 模版文件路径 +JINJA2_TEMPLATE_DIR = PLUGIN_DIR / 'code_generator' / 'templates' diff --git a/backend/plugin/code_generator/plugin.toml b/backend/plugin/code_generator/plugin.toml new file mode 100644 index 00000000..3bc9b08d --- /dev/null +++ b/backend/plugin/code_generator/plugin.toml @@ -0,0 +1,2 @@ +[app] +router = ['v1'] diff --git a/backend/app/generator/schema/__init__.py b/backend/plugin/code_generator/schema/__init__.py similarity index 100% rename from backend/app/generator/schema/__init__.py rename to backend/plugin/code_generator/schema/__init__.py diff --git a/backend/app/generator/schema/gen.py b/backend/plugin/code_generator/schema/gen.py similarity index 100% rename from backend/app/generator/schema/gen.py rename to backend/plugin/code_generator/schema/gen.py diff --git a/backend/app/generator/schema/gen_business.py b/backend/plugin/code_generator/schema/gen_business.py similarity index 100% rename from backend/app/generator/schema/gen_business.py rename to backend/plugin/code_generator/schema/gen_business.py diff --git a/backend/app/generator/schema/gen_model.py b/backend/plugin/code_generator/schema/gen_model.py similarity index 93% rename from backend/app/generator/schema/gen_model.py rename to backend/plugin/code_generator/schema/gen_model.py index 14e24a69..a3fccce4 100644 --- a/backend/app/generator/schema/gen_model.py +++ b/backend/plugin/code_generator/schema/gen_model.py @@ -3,7 +3,7 @@ from pydantic import ConfigDict, Field, field_validator from backend.common.schema import SchemaBase -from backend.utils.generator.type_conversion import sql_type_to_sqlalchemy +from backend.plugin.code_generator.utils.type_conversion import sql_type_to_sqlalchemy class GenModelSchemaBase(SchemaBase): diff --git a/backend/app/generator/service/__init__.py b/backend/plugin/code_generator/service/__init__.py similarity index 100% rename from backend/app/generator/service/__init__.py rename to backend/plugin/code_generator/service/__init__.py diff --git a/backend/app/generator/service/gen_business_service.py b/backend/plugin/code_generator/service/gen_business_service.py similarity index 88% rename from backend/app/generator/service/gen_business_service.py rename to backend/plugin/code_generator/service/gen_business_service.py index c2062f2b..23d27758 100644 --- a/backend/app/generator/service/gen_business_service.py +++ b/backend/plugin/code_generator/service/gen_business_service.py @@ -2,11 +2,11 @@ # -*- coding: utf-8 -*- from typing import Sequence -from backend.app.generator.crud.crud_gen_business import gen_business_dao -from backend.app.generator.model import GenBusiness -from backend.app.generator.schema.gen_business import CreateGenBusinessParam, UpdateGenBusinessParam from backend.common.exception import errors from backend.database.db import async_db_session +from backend.plugin.code_generator.crud.crud_gen_business import gen_business_dao +from backend.plugin.code_generator.model import GenBusiness +from backend.plugin.code_generator.schema.gen_business import CreateGenBusinessParam, UpdateGenBusinessParam class GenBusinessService: diff --git a/backend/app/generator/service/gen_model_service.py b/backend/plugin/code_generator/service/gen_model_service.py similarity index 87% rename from backend/app/generator/service/gen_model_service.py rename to backend/plugin/code_generator/service/gen_model_service.py index 541f89a4..aaa6ddbd 100644 --- a/backend/app/generator/service/gen_model_service.py +++ b/backend/plugin/code_generator/service/gen_model_service.py @@ -2,13 +2,13 @@ # -*- coding: utf-8 -*- from typing import Sequence -from backend.app.generator.crud.crud_gen_model import gen_model_dao -from backend.app.generator.model import GenModel -from backend.app.generator.schema.gen_model import CreateGenModelParam, UpdateGenModelParam -from backend.common.enums import GenModelMySQLColumnType from backend.common.exception import errors from backend.database.db import async_db_session -from backend.utils.generator.type_conversion import sql_type_to_pydantic +from backend.plugin.code_generator.crud.crud_gen_model import gen_model_dao +from backend.plugin.code_generator.enums import GenModelMySQLColumnType +from backend.plugin.code_generator.model import GenModel +from backend.plugin.code_generator.schema.gen_model import CreateGenModelParam, UpdateGenModelParam +from backend.plugin.code_generator.utils.type_conversion import sql_type_to_pydantic class GenModelService: diff --git a/backend/app/generator/service/gen_service.py b/backend/plugin/code_generator/service/gen_service.py similarity index 92% rename from backend/app/generator/service/gen_service.py rename to backend/plugin/code_generator/service/gen_service.py index 021ee3f1..39da49b1 100644 --- a/backend/app/generator/service/gen_service.py +++ b/backend/plugin/code_generator/service/gen_service.py @@ -10,19 +10,19 @@ import aiofiles from pydantic.alias_generators import to_pascal -from backend.app.generator.crud.crud_gen import gen_dao -from backend.app.generator.crud.crud_gen_business import gen_business_dao -from backend.app.generator.crud.crud_gen_model import gen_model_dao -from backend.app.generator.model import GenBusiness -from backend.app.generator.schema.gen import ImportParam -from backend.app.generator.schema.gen_business import CreateGenBusinessParam -from backend.app.generator.schema.gen_model import CreateGenModelParam -from backend.app.generator.service.gen_model_service import gen_model_service from backend.common.exception import errors from backend.core.path_conf import BASE_PATH from backend.database.db import async_db_session -from backend.utils.generator.gen_template import gen_template -from backend.utils.generator.type_conversion import sql_type_to_pydantic +from backend.plugin.code_generator.crud.crud_gen import gen_dao +from backend.plugin.code_generator.crud.crud_gen_business import gen_business_dao +from backend.plugin.code_generator.crud.crud_gen_model import gen_model_dao +from backend.plugin.code_generator.model import GenBusiness +from backend.plugin.code_generator.schema.gen import ImportParam +from backend.plugin.code_generator.schema.gen_business import CreateGenBusinessParam +from backend.plugin.code_generator.schema.gen_model import CreateGenModelParam +from backend.plugin.code_generator.service.gen_model_service import gen_model_service +from backend.plugin.code_generator.utils.gen_template import gen_template +from backend.plugin.code_generator.utils.type_conversion import sql_type_to_pydantic class GenService: diff --git a/backend/templates/generator/python/api.jinja b/backend/plugin/code_generator/templates/python/api.jinja similarity index 100% rename from backend/templates/generator/python/api.jinja rename to backend/plugin/code_generator/templates/python/api.jinja diff --git a/backend/templates/generator/python/crud.jinja b/backend/plugin/code_generator/templates/python/crud.jinja similarity index 100% rename from backend/templates/generator/python/crud.jinja rename to backend/plugin/code_generator/templates/python/crud.jinja diff --git a/backend/templates/generator/python/model.jinja b/backend/plugin/code_generator/templates/python/model.jinja similarity index 100% rename from backend/templates/generator/python/model.jinja rename to backend/plugin/code_generator/templates/python/model.jinja diff --git a/backend/templates/generator/python/schema.jinja b/backend/plugin/code_generator/templates/python/schema.jinja similarity index 100% rename from backend/templates/generator/python/schema.jinja rename to backend/plugin/code_generator/templates/python/schema.jinja diff --git a/backend/templates/generator/python/service.jinja b/backend/plugin/code_generator/templates/python/service.jinja similarity index 100% rename from backend/templates/generator/python/service.jinja rename to backend/plugin/code_generator/templates/python/service.jinja diff --git a/backend/utils/generator/__init__.py b/backend/plugin/code_generator/utils/__init__.py similarity index 100% rename from backend/utils/generator/__init__.py rename to backend/plugin/code_generator/utils/__init__.py diff --git a/backend/utils/generator/gen_template.py b/backend/plugin/code_generator/utils/gen_template.py similarity index 95% rename from backend/utils/generator/gen_template.py rename to backend/plugin/code_generator/utils/gen_template.py index ab6a96fc..1d5e3f95 100644 --- a/backend/utils/generator/gen_template.py +++ b/backend/plugin/code_generator/utils/gen_template.py @@ -5,9 +5,9 @@ from typing import Sequence from jinja2 import Environment, FileSystemLoader, Template, select_autoescape from pydantic.alias_generators import to_pascal, to_snake -from backend.app.generator.model import GenBusiness, GenModel from backend.core.conf import settings -from backend.core.path_conf import JINJA2_TEMPLATE_DIR +from backend.plugin.code_generator.model import GenBusiness, GenModel +from backend.plugin.code_generator.path_conf import JINJA2_TEMPLATE_DIR class GenTemplate: diff --git a/backend/utils/generator/type_conversion.py b/backend/plugin/code_generator/utils/type_conversion.py similarity index 90% rename from backend/utils/generator/type_conversion.py rename to backend/plugin/code_generator/utils/type_conversion.py index 1c6de58d..9520f2a7 100644 --- a/backend/utils/generator/type_conversion.py +++ b/backend/plugin/code_generator/utils/type_conversion.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -from backend.common.enums import GenModelMySQLColumnType, GenModelPostgreSQLColumnType from backend.core.conf import settings +from backend.plugin.code_generator.enums import GenModelMySQLColumnType, GenModelPostgreSQLColumnType def sql_type_to_sqlalchemy(typing: str) -> str: