@restnfeel/agentc-starter-kit
Version:
한국어 기업용 CMS 모듈 - Task Master AI와 함께 빠르게 웹사이트를 구현할 수 있는 재사용 가능한 컴포넌트 시스템
119 lines • 3.94 kB
TypeScript
export interface CreateSiteData {
name: string;
slug: string;
domain?: string;
subdomain?: string;
description?: string;
templateId: string;
ownerId: string;
}
export interface UpdateSiteData {
name?: string;
description?: string;
domain?: string;
subdomain?: string;
status?: "DRAFT" | "ACTIVE" | "INACTIVE" | "ARCHIVED";
isPublished?: boolean;
settings?: Record<string, unknown>;
templateData?: Record<string, unknown>;
}
export interface SiteListOptions {
ownerId?: string;
status?: "DRAFT" | "ACTIVE" | "INACTIVE" | "ARCHIVED";
search?: string;
page?: number;
pageSize?: number;
sortBy?: "name" | "createdAt" | "updatedAt";
sortOrder?: "asc" | "desc";
}
export interface Site {
id: string;
name: string;
slug: string;
domain?: string | null;
subdomain?: string | null;
description?: string | null;
templateId: string;
templateData?: Record<string, unknown> | null;
status: "DRAFT" | "ACTIVE" | "INACTIVE" | "ARCHIVED";
isPublished: boolean;
publishedAt?: Date | null;
ownerId: string;
settings?: Record<string, unknown> | null;
createdAt: Date;
updatedAt: Date;
_count?: {
siteSections: number;
pages: number;
assets: number;
siteUsers: number;
};
}
export declare class SiteApiService {
getSites(options?: SiteListOptions): Promise<{
sites: Site[];
totalCount: number;
page: number;
pageSize: number;
totalPages: number;
}>;
getSite(siteId: string, includeRelations?: boolean): Promise<Site | null>;
getSiteBySlug(slug: string): Promise<Site | null>;
getSiteByDomain(domain: string): Promise<Site | null>;
createSite(data: CreateSiteData): Promise<Site>;
updateSite(siteId: string, data: UpdateSiteData): Promise<Site>;
deleteSite(siteId: string): Promise<void>;
publishSite(siteId: string): Promise<Site>;
unpublishSite(siteId: string): Promise<Site>;
cloneSite(siteId: string, newData: {
name: string;
slug: string;
ownerId: string;
}): Promise<Site>;
getSiteStats(ownerId?: string): Promise<{
total: number;
published: number;
draft: number;
active: number;
inactive: number;
byTemplate: Record<string, number>;
}>;
searchSites(query: string, ownerId?: string, limit?: number): Promise<{
id: string;
name: string;
slug: string;
domain?: string | null;
}[]>;
}
export declare const siteApiService: SiteApiService;
export declare const createSite: (data: CreateSiteData) => Promise<Site>;
export declare const getSites: (options?: SiteListOptions) => Promise<{
sites: Site[];
totalCount: number;
page: number;
pageSize: number;
totalPages: number;
}>;
export declare const getSite: (id: string, includeRelations?: boolean) => Promise<Site>;
export declare const getSiteBySlug: (slug: string) => Promise<Site>;
export declare const getSiteByDomain: (domain: string) => Promise<Site>;
export declare const updateSite: (id: string, data: UpdateSiteData) => Promise<Site>;
export declare const deleteSite: (id: string) => Promise<void>;
export declare const publishSite: (id: string) => Promise<Site>;
export declare const unpublishSite: (id: string) => Promise<Site>;
export declare const cloneSite: (id: string, newData: Parameters<typeof siteApiService.cloneSite>[1]) => Promise<Site>;
export declare const getSiteStats: (ownerId?: string) => Promise<{
total: number;
published: number;
draft: number;
active: number;
inactive: number;
byTemplate: Record<string, number>;
}>;
export declare const searchSites: (query: string, ownerId?: string, limit?: number) => Promise<{
id: string;
name: string;
slug: string;
domain?: string | null;
}[]>;
//# sourceMappingURL=site-api.d.ts.map